49

I am trying to build a cheap asset tracker that can be powered by a battery pack. All I need the IoT device to do, is to connect to known WiFi network access points. I have access to the backend system that manages the WiFi access points.

I considered a CHIP computer or PiZero W but both have processing power that I don't need. Looking for a complete board with Wi-Fi.

10
  • 5
    If your primary concern about the Raspberry Pi Zero W is power consumption, check out this site: raspi.tv/2017/how-much-power-does-pi-zero-w-use -- it uses a miniscule 100-150mA! Commented Aug 30, 2017 at 17:30
  • 3
    @DanEsparza Thanks for the link. Although power consumption is a concern, I don't need the processing power. It's an overkill for my needs. I just need a small IoT device that I can program to connect to known WiFi access points. Similar to what Tile or TrackR does but connect to WiFi.
    – rams
    Commented Aug 31, 2017 at 11:14
  • 8
    @DanEsparza I'd regard anything over 5mA as being very power hungry for a device performing roughly no work (i.e. occasional phone home pings rate limited by sensor activity). Commented Aug 31, 2017 at 14:48
  • 2
    Other than power consumption, why do you care if there is more processing power available than you need?
    – user20574
    Commented Sep 1, 2017 at 1:18
  • 4
    @immibis - Exacly for power consumption. If your platform is running Linux, it will not be low power. A <200 MHz part running an RTOS is the appropriate choice here, and the focus for a good answer should be on how to select a good device (rather than a specific part). Commented Sep 1, 2017 at 7:35

9 Answers 9

38

Check out ESP modules. I've 3 NodeMCU boards running at home checking temperature and humidity, and controlling power sockets and led strips. NodeMCU can be found for about 4-5$.

If you want proper support and the chance to change the code from everyplace, take a look at Particle Photon, it's a bit more (about 20$) but works really really nice.

If you want to go on the cheap, get the NodeMCU, but the Photon it's a great board to tinker with.

6
  • 6
    If you're looking for a reference on the ESP8266 (probably one of the more well known of the ESP modules), The Internet of Things with ESP8266 is useful to read and has a lot of detail about purchase locations etc.
    – Aurora0001
    Commented Aug 30, 2017 at 12:46
  • 4
    Worth nothing that ESP8266 (the usual boards you can get) are capable of running a modified version of Arduino - which greatly contributes to making them easy to get into.
    – Knetic
    Commented Aug 30, 2017 at 20:56
  • 4
    Naked ESP8266 boards are less than 2$.
    – Codo
    Commented Aug 31, 2017 at 8:48
  • 2
    @codo - depends on the quality of the board, of course. The ESP01 is dirt cheap, maybe as cheap as $1 if you buy in bulk, but it only has 2 GPIOs and both of those need pulling to specific values during bootup, so aren't especially useful for actual interactions with the world. OTOH, I've just bought a bunch of ESP201s, which are much nicer: 7 GPIOs, 1 of which can be used as an ADC, and an optional external antenna connection. Plus they use single-row pin headers so can be used in breadboard easily, which the ESP01s can't. I paid about $3 each for them, and they're definitely worth it.
    – Jules
    Commented Sep 1, 2017 at 0:01
  • 3
    There are small boards with an ESP8266 module, 22 soldering points and an antenna for less than $2.
    – Codo
    Commented Sep 1, 2017 at 5:59
18

There is Omega2 from the company Onion. They cost 5$. They are still crowdfunding, therefore I'm not sure about their reliability and I haven't used one..

As @Aurora0001 pointed out, Onion completed their crowdfunding and they managed to pledge a funding 45 times more than their initial goal, which IMO makes them reliable.

It has a 580 MHz CPU, 64 MB of DDR2 memory and b/g/n Wi-Fi. They describe the board as an IoT computer in their Kickstarter:

Introducing the Omega2, the $5 IoT computer.

What the heck is an IoT computer? It is a Linux computer designed specifically for building connected hardware applications. It combines the tiny form factor and power-efficiency of the Arduino, with the power and flexibilities of the Raspberry Pi.

5
  • 5
    Getting 45 times their initial goal just says that lots of people thought the product looked sexy. It says nothing about how reliably they can actually produce it now that they have the money. The Zano micro-drone is a famous example: it was Europe's biggest ever Kickstarter and raised £2,300,000 (~$3M at current exchange rates), about 18 times their initial goal. The company failed and no product was ever delivered that met the claimed specs. Commented Aug 31, 2017 at 11:38
  • 1
    @DavidRicherby True, but the Omega2 is in stock for immediate purchase via Amazon warehouses; so they have a shipping product. Reaching that milestone is ofc no guarantee that they'll still be available several years from now; but the only way to answer that is to wait several years and see what happens. If the OPs only planning to build a small finite number of devices with these, it might make sense to hedge bets buy ordering all that will be needed in a single transaction now. Commented Aug 31, 2017 at 20:18
  • 1
    Read their own forums, and you'll see that these boards - and especially their software - have had many problems. They are also entirely unsuited to long duration battery power. Commented Sep 4, 2017 at 6:05
  • A great little board, with Linux in flash, rather than on SD card. There is also user flash for your programs, and you can get models with SD card.
    – Mawg
    Commented Oct 11, 2018 at 8:42
  • I love these boards, BUT they are not ARM based, and setting up the C/C++ toolchain is a real pain. They are great for Python, or HTML & JS, though.
    – Mawg
    Commented Aug 22, 2019 at 7:30
13

One that I have been keeping an eye on, but haven't tried yet, is VoCore. It was also crowdfunded like the Omega2.

It promises a $4-$18 device, but the ones available start at $17.99. What is relevant about VoCore is that it has fully open source hardware and software. So you can, in theory, get to a low per-unit price at scale. Technical details and source are here.

Tiny Size: One square inch, easy to embed to devices.

OpenWrt/LEDE: Easy to code, compile; stable system.

Low Cost: $4~$18 for each, unmatched performance.

Interfaces: Hardware support USB, Ethernet, I2C, SPI etc.

OpenSource: Both software and hardware, totally FREE

1
  • This is not really suited to long duration battery power, given the high consumption when running and long bootup time that would be suffered even if some sort of low quiescent power supervisor could be added to periodically activate it. Commented Sep 4, 2017 at 6:08
13

As an even cheaper alternative to the NodeMCU from Luis answer I would like to mention the the bare ESP-12E or ESP-12F*, the module that is used on the NodeMCU. They are even cheaper than the NodeMCU, draw less power (because they are lacking the USB converter) and can be powered directly from a 3V battery. You'll need one USB-to-serial converter (3.3V**, for example a CP2102) and you're gonna have to solder wires to them (or pins if you get the adapter board) to program them.

* The only difference seems to be the shape of the antenna
** Right now I can't confirm that it works with a 5V one

5
  • 1
    Yes, using a bare esp will be cheaper, but also it's more difficult and you need to get into solder and pcb design (at least on breadboard or perfboard), but thanks for pointing that out
    – Luis Diaz
    Commented Aug 30, 2017 at 18:15
  • 1
    "You'll need one USB-to-serial converter" -- note that you need one that supports 3.3v outputs, as the ESP8266 chip isn't ttl-friendly.
    – Jules
    Commented Sep 1, 2017 at 0:06
  • 1
    @LuisDiaz - you can purchase the ESP-12F ready mounted on a breadboard-compatible breakout board for about half the cost of the NodeMCU.
    – Jules
    Commented Sep 1, 2017 at 0:08
  • 1
    @Jules Cool! I didn't see that one before! Nice to know :)
    – Luis Diaz
    Commented Sep 1, 2017 at 5:39
  • 1
    Although the ESP8266 appears to be 5V-tolerant, the CP2102 I'm using is a 3.3V converter, so I added the information as long as I haven't confirmed otherwise.
    – AndreKR
    Commented Sep 1, 2017 at 5:53
11

Defining battery life (and perhaps battery size) will tell you how long your thing has to last. That may then lead you to decide to only switch it on when (a) you need to take a reading and (b) when to transmit data.

If you only want to wake up say, hourly, then you want something with a Real Time Clock (RTC) or something counting seconds either on board, or available as a slave unit to tell you micro controller to get working.

The RTC could then tell the wifi to switch on, detect if it is within range of its permitted network, log on and transmit data.

The other side of that coin is just letting something like a GPS constantly get fixes (every second) and polling wifi constantly. With this scenario a small battery could last just hours instead of weeks or months had you been using your current wisely.

In a nutshell, that would be your initial dilemma.

I did what I thought was some careful diligence before embarking on this kind of similar thing, and I'd recommend you look at the Espruino microcontroller. If you have existing JS skills then you can get results real fast - you will feel right at home. Espruino's have RTCs, are already 3.3v and use low current by design. Slapping on a GPS is laughably easy.

I'd suggest you get a normal green Espruino to fiddle about with and then try the new Espruino Wifi instead of fighting to add on an ESP8266 yourself (I have not tried these, BTW). Espruinos are not the cheapest, but they are well made (IMO) and enjoy good support. On their forum you can usually get acknowledgement from the guy who creates them.

This info is probably more helpful to you if you have JS skills, and negligible EE skills (like me).

1
  • 3
    This is the critical part of the answer - describing the features which are necessary to help in the selection. Idle power is the important thing - and probably that means that you really want as much integration in a single SoC as possible. Look for newer devices - this is an emerging demand. Commented Sep 1, 2017 at 7:31
9

AWS IoT Button

The AWS IoT Button is a programmable button based on the Amazon Dash Button hardware. This simple Wi-Fi device is easy to configure and designed for developers to get started with AWS IoT, AWS Lambda, Amazon DynamoDB, Amazon SNS, and many other Amazon Web Services without writing device-specific code.

I think this would be the simplest programmable Iot device for me

In this article, Ted Benson talks about how he hacked a $5 Amazon Dash button to do things when the device booted up and connected to the network (on click).

The device only turns on and connects to Wi-Fi when pressed, though, and it contains a battery that cannot be replaced easily.

1
2

I recommend you to use FireBeetle ESP32 Board by DFRobot. This is specially designed for IoT. Although NodeMCU may also be used but it still consume more power even when in deep sleep mode. I have faced problem reducing current consumption in deep sleep mode using NodeMCU. Whereas FireBeetle is suitable for Low Power IoT devices as it is specially optimized for this purpose. So you don't need extra efforts. Just connect the battery and put it in deep sleep when no sensing is required. It is also easy to program.

1

You can have a look at Texas Insturment's SimpleLink™ Wi-Fi® family that has a complete ecosystem, including boards, SDKs, IDEs, flashing tools, radio testing tools, etc. In general SimpleLink controllers are Arm® MCUs with built in support for various wireless technology, including Wi-Fi.

Here is a quite detailed document about the low power aspect: Low-power Internetconnectivity over Wi-Fi®. This is useful independently of TI's products as it generally describes:

  • Communication protocols
  • Energy sensitive parameters
  • Traffic model
  • Network properties
  • Concrete example: Case study – temperature sensor
    • Temperature sensor application energy consumption breakdown
    • Reconnect vs. stay connected application energy consumption
1

Blindly you can choose Node MCU , especially ESP8266 , that’s one of the easiest wifi module that we can connect and that’s the cheapest in market,hardly you can get it for 400 Rupees and the good thing is ESP 8266 having full TCP/IP stack and required power is 3.3V ,it has 16 GPIO pins so that you can connect multiple sensors with it, don’t forget to give external power source if you add more number of I/O devices

Not the answer you're looking for? Browse other questions tagged or ask your own question.