So often today, I see the Internet of Things (IoT) as being associated with small form-factor general-purpose computers, like the Raspberry Pi 2, the Intel Galileo, and the MinnowBoard MAX. Don’t get me wrong: these are all great platforms for prototyping just about anything, offering fast multi-core processors, a reasonable amount of RAM by today’s standards, a plethora of I/O, and external removable storage (i.e., SD card) all at a reasonable cost if you are buying one or two… but at $35, $45, and $145, these are a little on the expensive side for most simple projects, or when you need many devices for your project.
Moving to a microcontroller-based platform results in a far lower price for hardware. But, the tradeoff is a lower processing speed, less RAM to work with, and often no external storage (or at least no removable storage, such as SD cards). Arduino devices typically start around $25 from American retailers (e.g., the Uno-R3 from SparkFun), but some manufacturers are making no-frills boards for as low as $10 (like SparkFun’s Arduino Pro Mini 328). Since Arduino is open source hardware, clones are available from Asian retailers with much better pricing, such as a $6 Uno-R3 from Banggood.com. An issue that I have with Arduino, though, is that network connectivity is not a first-class citizen that is included with the platform. That’s a little bit of a problem, given that the “I” in IoT stands for “Internet”.
Of course, there are Arduino devices with network interfaces built-in, like the Arduino Yun which pairs a classic Arduino Leonardo with a separate small Wi-Fi enabled Linux machine all on the same PCB (runs about $75). Or, you can buy Arduino shields that provide network connectivity (SparkFun sells one for $85). To me, the point of using something like Arduino is to have an easy way to interface with sensors in order to collect data. I’m sorry, but spending $50-100 to build a simple networked device to monitor the weather outside is not going to happen in my household.
Fortunately, there are platforms that come in at a much lower price point. The Particle Proton family is a nice compromise of hardware power and Wi-Fi connectivity all at a $19 price (for a development board – their core module is also available in the $10 range). Particle describes themselves as a software company that happens to sell a piece of hardware, so their focus is actually on providing a set of software and services to program and maintain your device over its deployed life cycle via their Particle Cloud. This is attractive to me from a prototyping standpoint, but the price is still a bit high for my budget (if I want to deploy 5 devices, then I’m into that $100+ range again).
So, is there anything out there that has a decent amount of processing power, RAM, network connectivity, operates on low power, and is inexpensive enough to accidentally burn up without causing despair? Not that I’ve ever ruined a microcontroller in the name of science or anything. –cough–
As it turns out, there is! Chinese manufacturer Expressif debuted the ESP8266EX in the summer of 2014. This 80 MHz microcontroller is based on the Tensilica Xtensa LX106, and includes 802.11 b/g/n hardware directly on the chip’s silicon. For comparison, most other network-enabled platforms (such as the Particle) use two separate chips for the microcontroller and a dedicated Wi-Fi unit.
Another Chinese manufacturer, AI-Thinker, has created modules that pairs the ESP8266EX with flash memory and antennas. While they have released several versions of this module, one in particular stands out as an awesomely cheap IoT enabler: the ESP8266-12E module that is available in the $3.50 range from Asian retailers, like Banggood.com, or typically in the $7 range from American companies like Adafruit. These modules sport a PCB Trace antenna, and are also FCC/CE certified (an important consideration if you are thinking about manufacturing a consumer device).
Of course, the AI-Thinker modules are similar to the Particle P0 and P1: they are intended to be cores that need to be soldered onto a PCB in order to be useful, so that’s not very friendly to most people hacking on hardware at home. Fortunately, there are several pre-built breakout boards available that combine the ESP8266-12E module with a power supply, serial interface, and header pins to enable breadboard-based prototyping. Among these is the Adafruit Huzzah ($10) and many implementations of the open source NodeMcu Development board ($6.50 and up is typical).
Okay, so there’s cheap hardware out there. What can we do with it? In the next part, we’ll look at the hardware of the ESP8266.
UPDATE 26-Nov-2015: Since it fits in well with this story, Raspberry Pi has just announced their $5 Raspberry Pi Zero. This is an amazing price point for that level of functionality, and here at Falafel, we cannot wait to evaluate it for our future IoT project needs. But one thing that stands out right away is that there is no network connectivity, and the only USB port is a micro-USB (so a dongle, at least, is required to connect a USB WiFi adapter).
Latest posts by Falafel Posts (see all)
- Matching Complex Query String Rewrite Rule in IIS - March 22, 2017
- Using Google Services in UWP C# Apps – Part 2 - February 7, 2017
- Using Google Services in UWP C# Apps – Part 1 - February 6, 2017
- Redis Caching in the Google Cloud Platform - February 3, 2017
- Entity Framework with Google Cloud SQL - February 2, 2017