4 versatile boards for fast, inexpensive IoT development

514 readers like this.
One lightbulb lit out of several

Opensource.com

Want to develop wearable or very compact applications, networked applications, Internet of Things (IoT) devices, and prototype your brainstorms quickly and inexpensively? Then this roundup of versatile open source hardware boards is for you. All you need is a few pieces of hardware, basic soldering skills, and some JavaScript know-how.

With the commoditization of chips for connecting to networks, more and more devices can now be controlled via the Internet to do everything from remote temperature sensing to turning off lights in your home while you’re halfway around the world. In years past, however, if you were a JavaScript developer and wanted prototype network-connected devices, you either needed to learn how to develop firmware using a vendor’s custom tool chain, master C or C++ to write Arduino sketches, or partner with a hardware engineer.

Thankfully, with the proliferation of IoT platforms, a vibrant community has emerged and tools have been developed with which anyone can create prototypes using only a few pieces of hardware, some basic soldering skills, and JavaScript code.

Let's take a look at four excellent popular platforms: MbientLab MetaWear, ESP8266, Arduino, and Raspberry Pi.

MbientLab MetaWear

MetaWear is one of the best choices on the market for developing a wearable or compact application that requires a very small power draw. These boards are not much larger than a stack of quarters, support Bluetooth Low Energy (LE) for communication, and are equipped with a number of different sensors, including an accelerometer, galvanic skin response, gyroscope, ambient temperature sensor, and GPIO pins for attaching additional devices. For JavaScript developers there are two mechanisms for prototyping with this board. The first is an open source Apache Cordova plugin that supports both iOS and Android, whereas the second, a Node.js plugin, is still a bit more rudimentary. Both of these solutions allow you to interact with the device over Bluetooth, but no JavaScript is directly executed on the device. Prices start at $45.

ESP8266

For applications with connectivity needs that extend beyond Bluetooth LE, the ESP8266 is a great option. These boards are slightly bigger than MetaWear, and have a more open design with several output pins and built-in Wi-Fi. Their most compelling selling point is support for Espruino, a JavaScript framework for microcontrollers that runs JavaScript directly on the board. Arduino firmware has been ported to the board, which means that you can use it as a standalone Arduino unit. Boards cost as little as $3 for a basic module, and $6 for a developer's kit.

Arduino

Arduino was one of the first user-accessible open source platforms for working with Internet of Things (IoT) applications. Although the most efficient code written for Arduino is C++-based, you can flash sketches on devices that support the Firmata protocol, which specifies how a host computer communicates with a microcontroller. Once Firmata is installed there are a number of frameworks in languages like JavaScript, Python, and Ruby that interact with the board from an USB-attached computer. While there are wireless Firmata options available, support is better and more reliable via hardwired connections to the host computer. The most popular platform for JavaScript support is Johnny-Five, a framework that allows you to leverage all of the power of Node.js for controlling different sensors or lights. Arduino boards can be purchased for as little as $4.

Raspberry Pi

It is important to note that the MetaWear, ESP8266, and Arduino are microcontrollers: low-powered computers that are designed to run one program at a time. They have the advantage of consuming less power and are often less expensive than a full computer. Most have less than 4MB flash memory and equally small amounts of RAM, which means that they cannot run the large operating systems that we're accustomed to. But, what if you need to create a device that can do multiple things at once?

This is where the Raspberry Pi comes in. It is a small computer that supports Linux and Windows 10. Depending on the model, it has 256, 512, or 1024MB of RAM, and supports most microSD cards. If you have a project that requires interaction with digital sensors you can use Node.js along with custom drivers to control them directly from the Pi. If you have an analog sensor (see Analog vs. Digital), it can be combined with Arduino and Johnny-Five. Raspberry Pi units start at $5 and typically average about $15 if you include an SD card and Wi-Fi adapter, which makes them a very inexpensive segue into IoT development.

Lance Gleason will be speaking about this topic at All Things Open in Raleigh on October 26.

User profile image.
Lance has been a computer nut ever since his dad bought him a computer when he was a kid. After getting a BS and MS in Computer Science, he worked on a number of large projects as a Java developer and architect for companies like Kodak, CNN, and GE. These days he is the CEO and founder of Polyglot Programming LLC. which focuses on Mobile and wearable software development.

1 Comment

My advice to start developing sketchs at Arduino is to use http://circuits.io

Creative Commons LicenseThis work is licensed under a Creative Commons Attribution-Share Alike 4.0 International License.