IoT modules for Industrial Use Cases
IT and embedded is a core part of modern industrial plants and facilities as microcontrollers and processors are able to control a large portion of manufacturing processes. Industrial IoT - or short IIoT - is the term describing the industrial subset of the Internet of Thing. Many solutions have been around for years to measure and monitor various aspects of manufacturing processes. These data items form the foundation for additional functions such as predictive maintenance etc.
What’s new for industrial companies is that data and control is not only done locally any more, but also from remote locations such as on-premise data centers or services from cloud providers. Especially Big Data is a buzzword which is usually associated with cloud services, and all big cloud vendors offer services in that direction.
So part of this change is - among other things - that data items which have been transferred and processed locally, e.g. via field busses - have now to travel to backend systems, and thus the IIoT solutions somehow have to deal with network and application challenges at internet scale:
- connecting to the cloud, via proxies, cellular or LPWAN
- registering devices, and managing them
- secure updates,
- and many more.
At ThingForward, we’ve been looking at plenty of connectivity options between small microcontrollers and cloud services, so it’s about time to apply this to the industrial IoT part and share out knowledge. In this post, we’re taken a closer look at boards and modules which are suitable for applications in an industrial setting and we’re trying to give pro’s and con’s for a number of applications. Let’s see :)
Functional aspects of an Industrial IoT setting
Compared to the maker space, industrial IoT isn’t of a setup like „let’s take board, connect a LiPo pack and attach some sensors“. Instead a number of requirements have to be met for a successful implementation. PLCs - or programmable logic controllers - typicall are an integral part of industrial manufactoring processes. They collect data points from discrete inputs (is a gate open or closed, has something passed a photo sensor), and they can control actuators such as a stepper motor. Quiet many processes demand real-time execution, meaning that result must have been calculated within a given time frame (e.g. some milliseconds). So processing power is a must.
Form factors are very important too. Industrial components typically have to fit on a DIN rail or some 19“ rack. And they’re powered using 12V or 24V DC. Modules typically ruggedized so they’re able to operate in environments, where conditions regarding dust, heat or moisture may be harsher than normal.
Connectivity is an important topic for PLCs - not only analog and digital inputs, but also a plethora of bus systems such as CAN, MBUS, Profinet, Profibus, MODBUS and more. These are used for communication to machines on the floor, and for the future they also need communication to machines in the cloud, adhering to (different) internet standards.
From the perspective of modern IoT architectures and solutions, what are functionality aspects which needed to be brought to industrial modules? First and foremost, internet connectivity in the sense of IP networks. This can be done with wired, wireless or cellular interfaces. TCP/IP and UDP/IP are the foundation for any upper-layer application protocol that can be understood by cloud backends, typically one of HTTPS, MQTT, CoAP and more. Security is a must, so the ability to initiate (D)TLS sessions is crucial. Tightly bound to TLS support is the ability to securly store digital certificate and to process keys, certificates and cryptographic primitives and functions such as SHA256, AES or ECDSA (just to name a few, but support for cipher suites is important: If your devices does not support the cipher suites that your cloud connector requires, you’re somehow stuck).
So that’s a bunch of things to watch out for, from both sides. Let’s look a three modules from this space. They’re all a bit of PLCs, a bit of freely programmable boards (some with roots in the maker space) and might fit into some application setups, where classic PLC solutions would be too oversized or too expensive.
Industruino's IND.I/O with an Ethernet connector module
First in line is the Industruino. It’s an Arduino-compatible device in a DIN-rail enclosure with many industrial-like features. It comes in different flavors and with different connectivity companion boards. It has an onboard LCD display for text/graphics and some buttons to implement simple control or configuration mechanisms in combination with the display. We’ll focus on the IND.I/O variant here, the main connectivity features are:
- 6.5-32V Vin
- 8x digital I/O (can drive pins to Vin max, e.g. 24V)
- 4x analog in (up to 18bit ADC), 2x analog out (12bit ADC). All analog i/o 0-10V, 4-20mA
- RS485 on board
- Ethernet or GSM/GPRS via expansion module. Expansion modules additionally offer FRAM and an SD-Card slot.
- Analog and Digital I/O zones are isolated from the compute part, a SAMD21G18 @48 MHz
For those familiar with the Arduino platform, this might be the easiest entry into an industrial solution. The board is supported by the Arduino IDE, and it’s typically only minutes from sketch to running example. One drawback as of today, and one that it shares with many other boards from the Arduino world: It does not have a crypto processor, and library support for cryptographic primitives is fairly limited. So securely connecting the Industruino to a public cloud using HTTPS or MQTT+TLS is quite demanding. The MCU however is powerful enough to do encryption, so you can roll your own crypto and implement secure transport in a custom fashion. We hope that future version include better TLS support. ANywy, the GitHub repository contains many samples for all features, so it's very easy to get started with it.
Conclusion: Great board to start prototyping for industrial, right from the Arduino IDE. Fun to program and use, comes with many code samples.
Kunbus' Revolution Pi with a DI module and a power supply
The Industruino above includes a 32bit processor at 48MHz speed, which is ok but sometimes not powerful enough to process all the incoming data. The Revolution Pi from Kunbus is a series of products around an industrial-grade ruggedized version of the RaspberryPi. At the core is a module based on RaspberryPi 3, with a 4-core 64bit Broadcom BCM2837 processor running at 1.2GHz. So lots of processing power available! It has the following features:
- 10-28.8V Vin
- 2x USB, 1x Micro USB, 1x MicroHMDI, 1x Ethernet
- Default OS is Raspbian (Stretch) including a realtime patch
The core module has a feature connector which connects to I/O modules or gateways. I/O modules can pick up digital and analog signals (ADC up to 24bit) and drive digital signals, analog voltages and currents. Gateways are available to connect the RevPi to various industrial field busses.
Furthermore, RevPi comes with a software package for various tasks. And since it’s Linux with full root access, you can program everything you want.
Conclusion: a IIoT power work horse, suitable for many industrial interface/gateway applications, with real-time requirements. Best connectivity options.
We have another module in our bag: the 4ZeroBox from the italy-based company „Things On Internet SRL“. And it’s not only for the module, they’re offering the 4ZeroPlatform as a complete solution with module, visualization, apps and connectivity to cloud services.
The 4ZeroBox is based on the popular ESP32, a dual core microcontroller with 240MHz, a lot of I/O features and crpytographic features built in. While many makers use this board to run Arduino sketches on it, 4ZeroBox runs Python on the ESP32! Thanks to Zerynth and their python-based ecosystems for embedded boards it’s possible to use the expression power and libraries of Python to speed up development. We’ll see later why, but first some features of the board:
- 24V Vin, DIN Rail
- 2x digital in, 2x isolated digital in, 2x digital out with relays
- 1x Ethernet
- Analog current (3x) and resistive (4x) in, 4x analog v in
- RS485, RS232, CAN
- 2x MikroBUS slots
The last feature is a real killer: Yes you can choose among over 500 clickboards from MikroElektronika, and integrate these with the 4ZeroBox. How cool is that?
Python on Embedded might still be regarded as a bit new and some may question the readiness of these languages for embedded boards. There are definitely some things that need be considered, e.g. when it comes to processing speed and throughput. But one major advantage should be pointed out here: Library development is much simpler than in C/C++, and Zerynth offers a great standard library as well as great official libraries for many use cases.
Among these use cases are standard connectors to AWS IoT, Azure IoT Hub, Google IoT Core and IBM Cloud Watson, all for free, all secure and ready to be used. So if you want to forward data points from industrial facilities to your cloud backend, this is the most easiest way to do!
Conclusion: Modern solution with many connectivity features, ready for cloud integration. Python and MikroBUS FTW!
This was just a rough overview of these three products. In future blogposts, we’re going into more details. As a snapshot, our opinion about these boards:
- Industruino: Great board to start prototyping for industrial, right from the Arduino IDE. Fun to program and use, comes with many code samples.
- Kunbus RevPi: IIoT power work horse, suitable for many industrial interface/gateway applications, with real-time requirements. Best connectivity options.
- 4ZeroBox: Modern solution with many connectivity features, ready for cloud integration. Python and MikroBUS FTW!