Home Software The development of the industrial IoT gains momentum with the Arduino platform

The development of the industrial IoT gains momentum with the Arduino platform

Known for establishing a creative movement and generating renewed interest in electronics, the Arduino community has come a long way since the first board hit the market ten years ago. Initially aimed at hobbyists and educational applications, the Arduino family of microcontrollers gained interest among professional engineers as a low-cost method of validating designs and building prototypes quickly. While the first generation of boards incorporated a single Atmel AVR microcontroller, recent updates, now going to the third generation of Arduino, also have a Linux-based wireless microprocessor, an example being the Arduino Industrial 101 board. Arduino combines ease of use with the ability to connect to the real world using microprocessors that are powerful and capable of handling switching and communication tasks, this is what has captured the attention of embedded device developers working on industrial applications and IoT devices. Often constrained by available budget, physical space, and wireless needs, developers can face time and budget challenges trying to build their own embedded platform, even before starting work on the application they need.

The availability of a compact, well-supported, open-source platform significantly streamlines any design in the application development stages, avoiding the hassle of chasing wireless certifications and writing low-level drivers. The concept behind the Arduino Industrial 101 board is the development of the 101 LGA module manufactured by Chiwawa. This module has a Qualcomm Atheros AR9331 MIPS microprocessor running at 400 MHz, 64 MB DDR2 and 16 MB flash memory, with an 802.11 b/g/n wireless transceiver. 10/100 Mb/s Ethernet connection support pins are also provided, although additional connectors are required. Preloaded with the Linino operating system, a Linux-based OpenWRT distribution, it supports the Linino IO subsystem that allows microcontrollers to share GPIOs with the MPU, opening up real-world connectivity with Linux. Figure 2 illustrates a block diagram of the hardware environment of a board. On the Arduino side, the microcontroller is an Atmel ATmega8u32 AVR 4-bit device running at 16 MHz. The peripheral set, running at 5 V, includes three GPIOs, two of which can be used as PWM outputs and four analog inputs. A micro USB connector provides a fast USB 2.0 interface for programming with the Arduino IDE. Additionally, the Arduino Standard On Circuit Programmer (ICSP) provides SPI connectivity for both the ATmega32u4 and AR9331. The latest in the Arduino Studio IDE is based on Adobe's Brackets editor, which supports multiple boards, different architectures, and larger code sizes. The Arduino Industrial 101 board measures 42 x 51 mm and weighs 120 grams, has a consumption of 130 mA and requires a 5 VDC supply supplied through the USB jack.

An on-board regulator provides a 3.3 VDC supply for the AR9331 microprocessor and up to 50 mA to drive sensors, LEDs, and other devices. According to other Arduino boards, there is an LED connected to digital pin 13 and other LEDs indicate the status of power, Wi-Fi, WAN and TX/RX. Four miniature push buttons provide individual reset capability for the AR9331 microprocessor. With the default settings, Wi-Fi works as a hotspot so laptops or PCs can connect directly to it. By establishing a local connection and pointing the browser to the panel configuration of the Industrial 101 panel (by default 192.168.240.1) you can enter the desired Wi-Fi network to join it. Once connected to the network, traditional tools such as putty or a terminal can be used to access the Linino OS command line. The interest that designers of industrial IoT applications have comes from the ease with which Linux applications run on the MIPS processor. This strength comes from the integration of the Linino IO protocol and the Linino OS operating system.

Linino OS, see Figure 3, is ideal for use in IoT-based applications, thanks to the optimized kernel and file system for popular languages ​​commonly used in IoT applications such as Node.js, Java, and C. Linino IO enables the I/O peripheral of the microcontroller appears as a microprocessor. Using a generic communication protocol, it defines the ways to read and write a memory space in the microprocessor. This way any application running Linino OS can access and control the data, either from a sensor or from an actuator attached to the GPIO pins like a Linux I/O device. The transport protocol is completely independent, requiring either a physical cable or a bidirectional wireless channel. Figure 4 shows how the Linino IO protocol works. It must be considered that outside the Arduino Industrial 101 board, the link between Linino OS and Linino IO can be one to many, so Linino OS can communicate with more than one Linino IO controller. In addition, Arduino provides two component libraries that facilitate communication between microcontrollers and microprocessors. Initially created for the Arduino Yun board, which also has a microcontroller and microprocessor, the Bridge library simplifies two-way communication between the ATmega32U4 and AR9331. It basically acts as an interface to the Linux command line so programs can be called from the Arduino microcontroller, creating a shared data space as well as passing the commands back to the microcontroller. The provisioning of internet connectivity is in the second of the two Arduino Ciao libraries. This open source library – see Figure 5 – allows to establish bidirectional communication using Linino OS through three communication functions of READ, WRITE and WRITERESPONSE. Armed with its real-world analog and digital interface with cloud connectivity, the open source Arduino Industrial 101 board enables embedded developers to quickly deploy their Industrial IoT applications.

Tags
arduino platform; arduino microprocessor; industrial arduino; industrial arduino