Coming up with an idea for an Internet-connected device is great, but how does one go about implementing it? There are so many boards and frameworks, so choosing one for a project might be very difficult.
Determine the Purpose
There are countless projects one can make with an Internet-connected device, such as a smart thermostat or WiFi-enabled robot. The main question when coming up with a project plan is “What is going to be the ‘brain?’” In the last few years, hundreds of new IoT development boards and kits have sprung up, leaving many hobbyists wondering how to utilize them in the best way. Below are three main factors to consider when choosing a board.
First, begin by listing all the functionality you want your project to have. Should it control a simple switch? Or, will it be responsible for activating six lights and monitoring the weather? Ensure that the number of GPIO pins is large enough for your project.
Next, think about speed, cost, and features. As with most thing in life, there are trade-offs that must be made. A new board with a powerful processor and all the bells-and-whistles will have a very high price tag. If what’s being created doesn’t perform a time-sensitive function or does something simple, consider going with the cheaper option.
Last, consider the complexity and ease of development. Using boards from a popular ecosystem ensures plenty of support and help when developing a project. Additionally, these boards usually have many libraries that greatly decrease development complexity and time. The Arduino ecosystem with its hundreds of libraries is a great example of this.
Don’t always go for the most popular board at the moment, but when deciding between two equally-matched boards, go for the popular one. As stated earlier, they usually have much more support and a smaller development time. Currently, Espressif, Raspberry Pi, Arduino, and Particle make the most popular kits and ICs.
Some Common Boards
While browsing sites such as Hackster.io and Instructables.com, I found that a majority of IoT projects use the NodeMCU ESP12e, Raspberry Pi 3 B+, and the Particle Photon, along with several variations of the ESP8266. Nearly all of these can be programmed with the Arduino IDE, which is one of the main reasons they are so popular.
When writing code for an embedded IoT device, keep in mind how portable the program is to other boards and ecosystems. Generally, programs written in the Arduino IDE will be compatible with many ESP and Arduino WiFi boards, whereas a program for an Azure Sphere device is very tough to port.
A Small Selection
Below, I have rounded up a small selection of the most popular hobbyist development boards. Many of them have several different variations that have diverse features. There are many more boards not discussed, so feel free to explore the slew of development boards which might meet your needs better.
These ICs are cheap and plentiful. One of the most common form-factors for the ESP8266 has 8 pins and features just 2 GPIO. Because of this, its price and functionality are very low. There are also boards produced by Sparkfun and Adafruit that breakout more of the GPIO pins and allow USB flashing.
Still need a low-cost IoT board but also require many GPIO pins and a fast processor? The ESP32 features 34 GPIO pins that can support functions such as interrupts, I2C, SPI, capacitive touch, and much more. It also has BLE connectivity, making direct device-to-phone connections much easier. Some popular boards that have the ESP32 chip include DFRobot’s ESP32 Firebeetle, Sparkfun’s ESP32 Thing, and Adafruit’s HUZZAH32.
Particle Photon / Mesh
The Particle Photon is a $19 IoT development board that is very easy to create programs for and integrate with IFTTT. The Particle IDE also has a great VS Code extension that allows for the creation of large-scale projects. Since the Particle Cloud is also enterprise focused, it is extremely easy to go from a few prototypes to an entire fleet of devices.
Particle Mesh boards are even more advanced. They are able to connect to each other and form a mesh network via Bluetooth. The Argon board provides a way to connect the network to WiFi, enabling any other board in the mesh network to receive updates Over-the-Air. The Boron can connect to 2G or 3G cellular networks, enabling devices to go far beyond the reach of WiFi.
Arduino WiFi Boards
Arduino has come out with several WiFi-enabled boards, most notably the Arduino MKR WiFi 1010 and Arduino Nano 33 IoT. These boards tie in closely with the Arduino Cloud and are very simple to program and monitor. The Arduino Cloud allows for the creation of “Things” which can have different properties, letting users read and set variable values with ease.
The Raspberry Pi differs from the other boards on this list in that it is a full Linux computer. It supports keyboards, mice, displays via HDMI, and much more. The Pi uses a flavor of Debian called Raspbian, and can run nearly any Debian-supported program. This makes it extremely versatile, as you can create programs in nearly any language, and there are plenty of HATs you can add for extra functionality. The newest member of the Pi family, the Raspberry Pi 4, has a quad-core ARM Cortex-A72 clocked at 1.5GHz, onboard WiFi and Bluetooth, and up to 4GB of RAM.
This board is primarily for commercial prototyping, and its purpose is to provide tight security and close integration with Microsoft’s Azure Cloud services. Each module contains a unique-ID, along with Microsoft’s Pluton security subsystem. This ensures all data sent to the cloud is cryptographically secure, unlike most of the other IoT boards on this list, which can be hacked fairly easily.
This is one of the lesser-known IoT boards, but it is still a great choice for makers who are looking for a way to integrate their devices with a powerful microprocessor with GPS and LTE capabilities. Although fairly expensive at around $100, it more than pays for itself with its suite of connectivity options.
This guide is to be used as a general starting point to help decide on which IoT development board to use. If you feel if one is insufficient, try the next one you feel is better for what you’re trying to accomplish. Almost all of these development boards are easy to program and connect to outside cloud services.