Modern IoT controllers and microcomputers

Modern IoT controllers and microcomputers

If you need to assemble an IoT project and you are faced with the choice of a hardware platform for the client's side, there is currently a wide choice of boards and solutions for building an efficient and inexpensive system using ready-made modules.  In the distant time when the first electronic devices appeared, the first enthusiasts created electronic devices from the available elements. These were the first electromechanical devices. After that, vacuum tube devices appeared that made it possible to build simple electronic devices, such as a radio receiver, at home. With the development of technology, a new class of electronic devices such as transistors appeared, making it possible for DIY enthusiasts to create more complex solutions.  Thus it became possible to create a wide range of home devices including high-quality audio amplifiers circuit light controls, electronic doorbells, Christmas tree light controllers. And already in the epoch of  VLSI microcircuits, the possibility of assembling even more complex devices including home computers, such as Sinclair, and custom solutions in electronics, has expanded considerably. The possibilities of creating various devices for the Internet of Things have been incredibly expanded by using special microcontroller boards with the ability to use high-level programming languages and even Linux, Windows, and Android operating systems. The number of expansion boards and various sensors, video cameras, Internet connection via Ethernet, WiFi, and Bluetooth provides a wide range of possibilities for building practically any solution on this component base.  The building can be done within a small budget with minimal time with the use of large blocks and ready-made libraries for programming IoT. Let’s consider some of the available solutions for microcontroller boards and microcomputers that are now fairly common and available in various markets. Keep in mind that microcomputers use operating systems and microcontrollers use firmware on C or other language compiled to processor code.

What is a microcontroller?

A microcontroller is a microchip or board with a microchip for solving IoT projects’ client parts. Usually, you can program microcontrollers with a high-level programming language, like C, C++, Python, etc. Some projects in IoT are easiest to solve on microcontrollers. They support a lot of input and output standards, work with less power and cost less compared to microcomputers. The disadvantage is less computing power and the absence of an operating system by default. The most popular microcontrollers are Atmel, STM, ESP (or instance, Arduino boards), ESP8266, ESP32, etc.

What is a microcomputer?

A microcomputer is usually a system on a chip, including classical von Neuman architecture with a central processor(s), video card, RAM memory, WiFI/Bluetooth networks, and input-output ports. Modern microcomputers use operating systems like Linux and Windows. Usually, microcomputers have more computation power than microcontrollers, video output to HDMI, high-speed WiFi and Bluetooth, connection to flash memory cards and M.2, etc. The disadvantage of microcomputers is a higher price and higher power consumption compared to microcontrollers. Microcomputers are used in IoT projects if you need to perform high-level tasks, including video streaming, complex information systems, mini servers, etc.

How to select an IoT controller for your project.

How to choose the right set of hardware to build your IoT solution? This decision primarily depends on the size of the tasks to be performed on the client's side. In any case, you need to focus on the best quality and cheapest solution for building the client's side. The market now offers quite powerful microprocessor boards that can be easily integrated even with Bluetooth and WiFi plus HTTP protocols. These solutions can range in price from a few dollars per controller to $35 (or $50 for a version with 4Gb of memory) per electronic board.

ESP8266

The most affordable and most interesting solution is ESP8266. It is a miniature WiFi module based on the ESP8266 chip with a built-in TCP/IP protocol stack and AT control commands. The chip is designed for use in smart sockets, mesh networks, IP cameras, wireless sensors, wearable electronics, and so on. This module supports 802.11 b/g/n WiFi protocols, Wi-Fi Direct (P2P), soft-AP, SDIO 2.0, SPI, UART, STBC, 1x1 MIMO, 2x1 MIMO with standby consumption up to 1.0 mW (DTIM3) and has dimensions of 24.5х14 mm. ESP8266 controller Fig.1. ESP8266 controller The board successfully works as a Wi-Fi client, can run as a Soft-AP, and you can build a TCP server on the module for receiving and sending data, or a TCP client.

Arduino

The most popular DIY platform for the Internet of Things. There are many types of Arduino boards, and a special advantage is a set of various expansion shields with sensors, interfaces, control relays and the widest range of additional devices. Arduino Mega 2560 is one of the top microcontroller boards from Arduino and is  based on the powerful ATmega2560 chip (16 MHz). It has 54 digital inputs/outputs, 14 of which can work in PWM mode, 16 analog inputs, 4 hardware UART serial ports for communication with a computer and other devices, a USB connector, and an external power connector. Arduino controller Fig.2. Arduino controller Another advantage of this solution is a free Arduino IDE, with which you can write controller firmware in the C language. Additionally, it has a huge number of stackable extension boards (GSM, GPS, PID controllers, sensors, etc.).

STM

If you need a more powerful solution than Arduino, you can use STM which is a family of microcontrollers with low power consumption. For instance, the STM32 Nucleo development board has the ability to connect shields from Arduino. The board is made on the 32-bit ARM microcontroller STM32F411. Nucleo is a family of boards supporting the mbed online development environment. Fortunately, it's very easy to get to know the capabilities of the mbed environment. STM Fig.3. STM32 controller This specific board consists of Cortex-M4 100 MHz controller core,  512 KB of program memory, 128 KB data memory and a built-in programmer option.

ESP32

ESP32 is an excellent microcontroller with a dual-core 32-bit processor, a clock frequency of 160 or 240 MHz and a performance up to 600 DMIPS. This microcontroller has support for dual-mode Bluetooth: “classic” and BLE, Wi-Fi speed: 802.11 b / g / n up to 150 Mbps, Wi-Fi mode support: client, access point, Wi-Fi Direct with minimum sensitivity is -98 dBm, and a wide range of operating temperatures: -40° C ... + 125° C wherein power consumption of the circuit can fall to 5mkA (deep sleep mode). Internet of Things Mongoose OS is an operating system for microcontroller boards that is programmable with JavaScript or C. It is a recommended platform for Espressif Systems, AWS IoT, and Google Cloud IoT. A very interesting solution based on ESP32 is the M5Stack board, which can be extended on the stack one by one. It allows building a very interesting application, with GSM/Internet connections, displays, power unit, etc. It works like Arduino extension boards but is designed especially for ESP32.

Asus Tinker Board S (TINKER BOARD S/2G/16G)

ASUS Tinker Board is a high-performance single-board computer from a global brand. Built on the basis of a powerful 4-core Rockchip RK3288 with Cortex-A17 cores, it has Mali-T764 graphics. Tinker Board is equipped with 2GB RAM LPDDR3, Gigabit Ethernet, built-in WiFi and Bluetooth 4.0. The board supports hardware acceleration when playing video in H.264 and H.265 formats, and has HD Audio audio codec with support for formats up to 192 KHz/24bit. Thanks to its excellent features, ASUS Tinker Board is able to solve many tasks: to become a high-class media center, a gaming machine, a home server, and also an indispensable miniature assistant in industrial and entertainment applications.  Asus Thinker board. Fig. 4. Asus Thinker board

Raspberry PI

The Raspberry Pi 3 Model B + is a microcomputer from the Raspberry Pi Foundation which operates on the basis of an updated 4-core 64-bit SoC Broadcom BCM2837B0 and an increased clock frequency of 1.4GHz. The wireless module also received updates: Wi-Fi has become the dual-band standard IEEE 802.11ac, and Bluetooth 4.2 BLE. The new "raspberry" has a Gigabit Ethernet, working through a USB 2.0 bus, which will provide data transfer speeds up to 300Mbps. The former kept the amount of RAM - 1GB RAM, the form factor and the location of all ports, which ensures compatibility with most existing accessories. Raspberry Pi 3 Model B +, like its predecessors, is distinguished by a high level of reliability, ease of setup, a huge community, and the highest quality performance. The computer with the size of a credit card has become even smaller in the Raspberry Pi Zero V1.3 version and is still the board you know and love, but with a reduced size of up to 65 mm in length and 30 mm in width and at a very attractive price. Raspberry Pi Zero is ideal for creating embedded online project Things (IoT). On the Pi Zero V1.3 board, the main mini-connectors and non-soldered GPIO pins are compactly placed, allowing you to use only what your project requires. In the updated version (1.3) a CSI connector for connecting Pi-video cameras was added But that is not all. The Raspberry Pi 4 microcomputer board recently came out and has  USB-C power, 4 GB of memory, the ability to connect M.2 disks, a powerful processor, two micro HDMI, image output to two 4K monitors, two USB 3, and Gigabit Ethernet. The version with 1 Gb of memory costs $35, and the version with 4Gb of memory costs $55. Raspberry PI Image source. Fig. 5. Raspberry Pi 4, the greatest microcomputer ever This is a fantastic opportunity to use Linux, Android or other operating system and have a desktop computer or media center replaced.

Conclusion

Even with the use of small controllers and minimal knowledge about programming and using electronic devices, you can now create the most interesting and most useful projects for the Internet of Things at home. If you need to decide between a microcomputer vs microcontroller, the price of the board is key. Then consider the power of the system and the available operating systems if you are considering advancing to microcomputers. You do not need to write hundreds of thousands of lines of code, work with a soldering iron for many hours, coordinate communication interfaces, or write server solutions for connecting IoT devices because community support and open code for microcontrollers and microcomputers are now widespread. In principle, it is easy to quickly get comfortable with the construction of these devices in the Internet of Things and successfully use them, both for individual needs and for small to medium-sized businesses... Often with a budget less than $10 or $55.