Thinking of using MQTT protocol in your next IoT project but you don’t know which development board to select. There are number of development boards available and it gets difficult to choose a suitable one. Don’t worry you will know by the end of this blog. In this blog, I will share 7 development boards for IoT and MQTT project.
The selection of device depends on your requirements. Therefore, I am going to explain different parameters before giving you a recommendations. If you have been following my MQTT series, you will notice that I have been implementing MQTT protocol in different embedded devices and programming languages.
Since MQTT protocol is IoT protocol, the first thing to consider is the device should be able to connect with Internet or network. Therefore, all the devices that i am going to suggest will at-least have WiFi, or Ethernet port, or can connect to any cellular network using any extra module. Also, I am considering all the boards that are easy to use for beginners and easily available.
Before comparison, let’s define the other parameters before selecting the right development board. We will be considering following parameters,
Technical comparison
- Memory
- Processing power
- Wireless capabilities
- Size
- Power
Depending on the above parameters, following table compare all the development boards.
Development boards | Memory | Processing power | Wireless capabilities | Size | Power |
---|---|---|---|---|---|
ESP8266 Nodemcu Easy to get started | ● 4 MB Flash ● 64 KB SRAM | ● 80/160MHz | ● 802.11 b/g/n WiFI | ● 49 x 26 mm | ● 49.5 mW idle ● 1.3 W active |
ESP32 DEV KIT DOIT Easy to get started + BLE | ● 4 MB Flash ● 520 KiB SRAM | ● dual core (32 bits) ● upto 240 MHz | ● 802.11 b/g/n WiFI ● Bluetooth 4.2, BLE | ● 51.8 x 28.2 mm | ● 2.64 mW idle ● 528-858 mW active |
Raspberry pi 4 model B processing power + Ethernet | ● 1, 2, 4 or 8GB SDRAM ● Micro-SD card | ● Quad core ● 64-bit SoC @ 1.5GHz | ● 802.11ac WiFi ● Bluetooth 5.0, BLE ● Gigabit Ethernet | ● 3.4 x 2.2 x 0.4 in | ● 3.8 W-4.0 W idle ● 6.0 W active |
Raspberry pi zero W processing power + Size | ● 512MB RAM ● Micro-SD card slot | ● 1GHz single-core CPU ● single-core processor | ● 802.11 b/g/n WiFi ● Bluetooth 4.1, BLE | ● 65 x 30 mm | ● 1.3 W idle ● 1.8 W busy |
Raspberry pi pico programmable IO | ● 264KB SRAM | ● Arm Cortex-M0+ processor | ● 802.11 b/g/n WiFi | ● 51 x 21 mm | ● 6.5 mW idle ● 465 mW Active |
Arduino MKR WiFi 1010 low powered | ● 32 KB SRAM ● 256 KB Flash | ● 48 MHz ● 32bit low power ARM MCU | ● Wi-Fi 802.11b/g/n ● Bluetooth v4.2, BLE | ● 61.5 x 25 mm | ● 150 mW idle ● 465 mW Active |
Arduino Nano 33 IoT low powered + small size | ● 32 KB SRAM ● 256 KB Flash | ● 48MHz ● 32bit low power ARM MCU | ● Wi-Fi 802.11b/g/n ● Bluetooth v4.2, BLE | ● 45 x 18 mm | ● 62.7 mW idle ● 155 mW Active |
Quick top 3 development boards for IoT and MQTT
Depending on the above comparison table, here are my top 3 picks.
1. ESP32 DEV KIT DOIT
ESP32 Devkit offers everything we need to use MQTT protocol in our projects. This development board is very easy to setup and its community makes it one of the most popular IoT development board in these times. You can also connect other devices using bluetooth low energy (BLE) or bluetooth classic and the it is a low powered IoT development board which supports deep sleep. Another reason for making it to the top of list is its peripherals. ESP32 provides number of Input and output connection options. The peripherals includes capacitive touch, Analog-to-digital (ADC), Digital-to-Analog (DACs), UART, SPI, I2C, I2S, PWM and many more. Compaitibilty with Arduino “programming language” and Micro python which is version of python for embedded system help this board win Easy to get started. In summary following are the reasons for selecting ESP32 for IoT or specifically MQTT projects,
- Arduino and Micropython compaitibility
- BLE
- low powered IoT device
2. Raspberry Pi Zero W
When we talk about IoT or MQTT protocol, Raspberry pi boards always make it to the list. The small cardboard sized computer is a best choice for implementing IoT and MQTT projects. Pi Zero W provides 512 MB of RAM and using micro SD slot gives you the option of adjusting the storage. The other boards in the list are microcontrollers but Pi uses a microprocessor that means you can perform many verstile functions on this small development board. Another reason for selecting this board is its peripherals, which includes mini HDMI port, CSI camera connector, 40 pins (28 GPIOs) also including SPI, I2C and UART ports. In summart following are the reasons for selecting Raspberry pi for IoT and MQTT projects.
- Processing Power
- Small Size
- Can be used as MQTT broker
- Camera support
- HDMI display support, Can be helpful for controlling MQTT devices using GUI.
- Officially uses LInux OS i.e. Python, C, NodeRed and many other languages can be supported.
3. Arduino Nano 33 IoT
Arduino Nano 33 IoT makes it to our list because of its less power consumption and small size . The size of 45 x 18 mm makes it perfect for applications that require small size boards and less power consumption means that board can be powered for days with a battery without worrying about battery getting drained. Also this board is capable of providing secure WiFi and BLE connection and has onboard 6 axis IMU. The reasons for selecting this board in top 3 are as follows,
- Almost same functionalty as ESP32 but Less power consumption than ESP32.
- Smaller size.
- Arduino community.
Buying guide
Development board | Amazon (US) | Ali express |
---|---|---|
ESP32 | ||
Raspberry pi zero | ||
Arduino Nano 33 IoT |
Development boards for IoT and MQTT
This section provides a complete information about the development boards that we have compared earlier.
1. ESP8266 NodeMCU
NodeMCU is a development board and open-source Lua-based firmware that is specifically designed for Internet of Things (IoT) applications. It has hardware based on the ESP-12 module and firmware that runs on Espressif Systems’ ESP8266 Wi-Fi SoC.
Esp8266 Features and Specifications
- Tensilica 32-bit RISC CPU Xtensa LX106 microcontroller
- operating voltage: 3.3V
- 7–12 volts as input
- 16 digital I/O pins, 1 analog input pin, 1 each of the following: UART, SPI, and I2C
- 4 MB Flash Memory
- 64 KB SRAM
- Speed of Clock: 80 MHz
- There is an inbuilt USB-TTL based on CP2102 that enables Plug n Play PCB Antenna.
- A little module that will cleverly fit within your IoT projects
Programming Guidance for ESP8266 Nodemcu
ESP8266 can be programmerd using Micro python, circuit python, Arduino Programming language and ESP-iDF. Follow this tutorial for using ESP8266 with MQTT protocol.
Datasheet of ESP8266 can be accessed from here: ESP8266 Nodemcu
2. ESP32
Espressif Systems, the same company that created the well-known ESP8266 SoC, offers the inexpensive ESP32 System on Chip (SoC) Microcontroller. The 32-bit Xtensa LX6 Microprocessor by Tensilica is a replacement for the ESP8266 SoC and features built-in Wi-Fi and Bluetooth. It is available in single-core and dual-core versions.
The advantage of ESP32 is that it has inbuilt RF components such a power amplifier, a low-noise receiver amplifier, an antenna switch, filters, and an RF balun, similar to ESP8266. As a result, it is very simple to construct hardware around the ESP32 since minimal external components are needed.
The fact that ESP32 is produced utilizing TSMC’s ultra-low-power 40 nm technology is another crucial information to be aware of. Therefore, employing ESP32 should make it very simple to create battery-powered applications like as wearables, audio equipment, baby monitors, smart watches, etc.
Esp32 Features and Specifications
- 32-bit LX6 single- or dual-core processor with a 240 MHz clock speed.
- ROM, 448 KB of SRAM, and 16 KB of RTC SRAM total 520 KB.
- supports up to 150 Mbps 802.11 b/g/n Wi-Fi connectivity.
- support for BLE requirements as well as Classic Bluetooth v4.2.
- 34 GPIOs.
- two channels of 8-bit DAC and up to 18 channels of 12-bit SAR ADC.
- Four SPI, two I2C, two I2S, and three UART are used for serial connectivity.
- For physical LAN communication, use Ethernet MAC (requires external PHY).
- One SD/SDIO/MMC host controller and one SDIO/SPI slave controller.
- PWM for motors and up to 16 LED channels.
- Flash Encryption and Secure Boot.
- Hardware acceleration for AES, Hash (SHA-2), RSA, ECC, and RNG cryptographic algorithms.
Programming Guidance for ESP32
ESP32 can be programmerd using Micro python, platform IO,LUA , JAvascript , Arduino IDE and ESP-iDF. Follow this tutorial for using ESP32 with MQTT protocol.
Datasheet of ESP32 can be accessed from here: ESP32 Nodemcu
3. Raspberry Pi 4
The newest model of the well-known Raspberry Pi line of computers is the Raspberry Pi 4 Model B. In comparison to the Raspberry Pi 3 Model B+ of the previous generation, it delivers revolutionary improvements in processor speed, multimedia performance, memory, and connection while maintaining backward compatibility and a similar level of power consumption. The desktop performance of the Raspberry Pi 4 Model B is comparable to that of entry-level x86 PC systems for the user.
A high-performance 64-bit quad-core processor, hardware video decoding at up to 4Kp60, dual-display support at resolutions up to 4K via a pair of micro-HDMI ports, up to 4GB of RAM, dual-band 2.4/5.0 GHz wireless LAN, Bluetooth 5.0, Gigabit Ethernet, USB 3.0, and PoE capability are some of the main features of this product (via a separate PoE HAT add-on).
Raspberry pi 4 Features and Specifications
- Cortex-A72, quad-core Broadcom BCM2711 (ARM v8).
- Depending on Model 1GB, 2GB, 4GB, or 8GB LPDDR4-3200 SDRAM, 64-bit SoC, 1.5GHz
- IEEE 802.11ac WiFi operating at 2.4 and 5.0 GHz, Bluetooth 5.0, BLE, and gigabit Ethernet
- 2 USB 3.0 connectors and two USB 2.0 ports.
- 40-pin GPIO standard header for the Raspberry Pi (fully backwards compatible with previous boards)
- Micro-HDMI ports in two (up to 4kp60 supported)
- MIPI DSI display port with two lanes
- Port for a 2-lane MIPI CSI camera
- Composite video port with 4-pole stereo audio
- H264 and H.265 (4kp60 decode) (1080p60 decode, 1080p30 encode)
- Micro-SD card port for loading the operating system and data storage, OpenGL ES 3.1
- PoE (Power over Ethernet) support (requires separate PoE HAT)
MQTT for Raspberry pi
I have made number of tutorial for using MQTT protocol in Raspberry pi. Make MQTT broker , ESP8266 and Pi communication using MQTT or make MQTT GUI using python.
4. Raspberry Pi Zero
The Raspberry Pi Zero is a stick-sized computer that aims to be as affordable as possible. The Pi Zero is small enough to be embedded in a project and inexpensive enough to be left there with dimensions of just 2.6 x 1.2 x 0.2 inches (66.0mm x 30.5mm x 5.0mm), or roughly the size of a USB Flash drive. The Raspberry Pi Zero runs the same Raspberry Pi OS and software as larger Pis like the Raspberry Pi 4, however the smaller board cannot support the new, 64-bit OS. Even though the Pi Zero only has a single core, it has more than enough power to complete the task.
Raspberry pi Zero Features and Specifications
- 512MB RAM and a single-core, 1GHz Processor
- HDMI mini-port
- port for Micro-USB on-the-go
- power through Micro-USB
- 40-pin header compatible with HAT
- CSI camera connector, composite video, and reset headers.
- Bluetooth 4.0 and 802.11n wireless LAN.
Ref: Raspberry Pi Zero W
5. Raspberry Pi Pico
The Pico acts as a microcontroller rather than a single-board computer, setting it apart from the rest of the Raspberry Pi series (SBC).
Raspberry pi Pico Features and Specifications
- Arm Cortex M0+ processor has two cores and a variable clock speed of up to 133 MHz.
- SRAM memory of 264 kB and on-board flash memory of 2 MB
- Support for host and device in USB 1.1
- Dormant and low-power sleep modes
- programming utilizing drag and drop and USB mass storage
- 26 GPIO pins with many functions
- SPI, I2C, UART, 3 12-bit ADCs, and 16 programmable PWM channels are all included.
- On-chip accurate clock and timing
- Temperature gauge
- On-chip accelerated floating-point libraries
- 8 Custom peripheral support using programmable I/O (PIO) state machines
- 802.11n wireless, single-band (2.4 GHz)
- WPA3
- Up to four clients are supported by a soft access point.
Ref : Raspberry Pi Pico and Pico W
6. Arduino MKR 1010 WiFi
Any beginner, maker, or expert looking to get started with the Internet of Things should choose the MKR WiFi 1010. (IoT). It includes the well-known 32-bit Arm® Cortex®-M0 SAMD21 CPU as well as the ECC508 crypto-chip for security. The board is a member of the MKR family, where you may pick from a wide range of shields to quickly and easily construct projects!
Arduino MKR 1010 WiFi Features and Specifications
- Cortex-M0+ SAMD21 microcontroller Low-power 32-bit ARM® MCU
- radio module: NINA-W102 by u-Blox
- USB/VIN Board Power Supply: 5V
- ATECC508 Secure Element
- Li-Po Single Cell, 3.7V, 1024mAh, Supported Battery 3.3V is the bare minimum circuit operating voltage.
- 8 PWM digital I/O pins 13 pins and 7 analog input pins
- UART, SPI, I2C
- 10 external interrupts
- DC I/O pin current: 7 mA
- CPU Memory: 256 KB Flash (internal), 32 KB SRAM
- No Clock in EEPROM Speed: 48 MHz LED, 32.768 kHz (RTC) 6 BUILTIN
- Full-Speed USB USB Device with integrated Host Dimensions.
- 61.5 mm x 25 mm and 32 g
7. Arduino Nano 33 IoT
A pre-certified ESP32-based WiFi and Bluetooth module from u-blox and an Arm Cortex-M0+ microprocessor give the Nano 33 IoT from the new 3.3V iteration of the family sophisticated connectivity in a small package. Because it has an ECC608A crypto processor, it also provides IoT security features that are unusually expensive.
Arduino Nano 33 IoT WiFi Features and Specifications
- Connectivity for WiFi and Bluetooth is now available, along with high security, for all of the Arduino Nano apps.
- Due to its modest weight and tiny size, the on-board IMU can be used to remotely monitor the vibration, orientation, and rotational speed of small objects
- Directly powered by high-voltage lead or lithium-ion multi-cell batteries, delivering 3.3V power supply to peripherals at a sizable output current.
Ref : Arduino Nano is back with WiFi ! – Nano 33 IoT
Buying guide
Development Board | Amazon (US) | Ali express |
---|---|---|
ESP8266 | ||
ESP32 | ||
Raspberry pi 4 | ||
Raspberry pi zero | ||
Raspberry pi Pico | ||
Arduino MKR 1010 WiFi | ||
Arduino Nano 33 IoT |
Conclusion
I hope this comparison blog will help you select a suitable development board for your IoT and MQTT project. The final selection depends on your requirements, Some of the boards are low power but their processing power is limited and some of them have more processing power but you will have to compromise on the size and power. I would love to know in comments which is your favorite IoT board.