Implementing the MING Stack for Industrial IoT with Raspberry Pi and Ignition



What is the MING-Stack?

MING Stack for Industrial IoT: MQTT + InfluxDB + Node-Red + Grafana



The MING Stack for Industrial IoT is an acronym that stands for a technology stack composed of MQTT, InfluxDB, Node-RED, and Grafana, each serving a distinct role in the collection, processing, storage, and visualization of data for Internet of Things (IoT) applications, particularly in industrial environments. Here’s a detailed look at each component:

MQTT (Message Queuing Telemetry Transport)

  • Role: Data transmission

  • Description: A lightweight, broker-based, publish-subscribe network protocol for transporting messages between devices. MQTT is highly useful in IoT contexts where multiple devices need to send data to a server or communicate amongst themselves efficiently and reliably. See how to set it up here.

InfluxDB

  • Role: Data storage

  • Description: InfluxDB is an open-source time-series database designed to handle high write and query loads. It is an important component for IoT and analytics applications that need to process large volumes of time-stamped data. InfluxDB is optimized for fast, high-availability storage and retrieval of time-series data in fields such as operations monitoring, application metrics, IoT sensor data, and real-time analytics. See how to set it up here.

Node-RED

  • Role: Data processing and workflow automation

  • Description: Node-RED is a programming tool for wiring together hardware devices, APIs, and online services. It provides a browser-based flow editor that makes it easy to wire together flows using the wide range of nodes in the palette. Node-RED is particularly suited for IoT applications where devices need to be interlinked and their data processed and acted upon in real time. See here for setup on Raspberry Pi and here for setup on your computer.

Grafana

  • Role: Data visualization

  • Description: Grafana is an open-source platform for monitoring and visualization. Grafana allows users to query, visualize, and understand their metrics no matter where they are stored. With Grafana, you can create and share dashboards. It's extensively used for time-series analytics and monitoring of IoT applications. See how to set it up here.

How the MING Stack Works Together

In the context of Industrial IoT (IIoT), these components can work together to create a comprehensive system for managing and analyzing data:

  1. MQTT facilitates the efficient transmission of telemetry data from sensors or IoT devices.

  2. InfluxDB acts as the repository for this time-series data, allowing for efficient storage and retrieval.

  3. Node-RED provides the logic for processing this data, implementing workflows, and integrating with other systems.

  4. Grafana presents this data in an easily digestible form, allowing users to monitor, analyze, and gain insights into the operational aspects of their IoT deployment.

This stack is very useful in industrial settings for retrofitting legacy machinery with sensors and IoT capabilities, enabling such equipment to become part of a modern, connected infrastructure without significant overhaul. Overall, the components are easy to use and flexible, making them a great choice for this project.

Ignition Edge Panel

For dynamic work instructions, we decided to use Ignition. Ignition by Inductive Automation is a versatile IoT platform often used in HMI and SCADA applications. For this project, we used the Edge Panel version to develop dynamic work instructions. You can find more on Ignition here.

System Architecture

The graphic below illustrates the System Architecture implemented throughout the project, encompassing the three Use Cases described here. The system includes three instances: The Lathe on the left, the Raspberry Pi in the middle, and the Server on the right.

  • Data Acquisition: The DRO captures axis data, and the VFD provides spindle data.

  • Data Processing: The Raspberry Pi runs Node-RED, which processes and parses the data received from the DRO and VFD.

  • Data Communication: The processed data is published using regular MQTT for Grafana, MQTT Sparkplug for Ignition, and is logged in InfluxDB.

  • Data Storage: InfluxDB stores historical machine telemetry.

  • Data Visualization: Grafana is used to display real-time and historical telemetry.

  • Dynamic Work Instructions: Node-RED sends the Sparkplug-formatted data to the MQTT broker, which Ignition is subscribed to. Ignition then uses that data for the dynamic work instructions which can be accessed over the network by a web browser.

Hardware and Software used

Below is a list that includes all the hardware and software that was used throughout the project. It is notable that most of the software tools are Open Source and can be used for free, underlining a frugal approach that can be especially interesting for SMEs.

Hardware List

Item Description Price Link
Raspberry Pi 5 Single Board Computer (8GB) Essential for running Node-RED, InfluxDB, and other software. $89.58 Amazon
KKSB DIN Rail Clip Mount Bracket for Raspberry Pi Mounts the Raspberry Pi securely to a DIN rail. $13.00 Amazon
4K Micro HDMI to HDMI Cable Adapter 3FT Connects Raspberry Pi to a monitor. $8.99 Amazon
Amazon Basics Micro SDXC Memory Card, 128 GB Storage for the Raspberry Pi OS and software. $12.99 Amazon
Gearmo USB to Serial RS-232 Adapter Connects RS-232 devices to USB ports. $22.88 Amazon
GeeekPi Active Cooler for Raspberry Pi 5 Keeps the Raspberry Pi cool during operation. $11.99 Amazon
GeeekPi 27W Power Supply for Raspberry Pi 5 Power adapter for the Raspberry Pi 5. $12.99 Amazon
Waveshare USB to RS485 Converter (2x) Converts USB to RS485 for communication with devices. $31.98 Amazon
15-pin male D-sub to 9-pin female D-sub Cable Connects the DRO to the computer or Raspberry Pi. $31.00 AutomationDirect
Total Cost $235.40

Software List

Software Description Price Link
Node-REDFlow-based development tool for visual programming.freeNode-RED
InfluxDBTime series database for storing machine telemetry data.freeInfluxDB
Mosquitto MQTTLightweight MQTT broker for machine communication.freeMosquitto
GrafanaDashboard and graph composer for visualizing data.freeGrafana
Ignition Edge PanelIndustrial application platform for HMI, SCADA, and IIoT.$1,850Ignition Edge
Ignition DesignerDesign tool for creating applications within Ignition.freeIgnition Designer
MQTT Explorer (optional)GUI tool for inspecting MQTT messages.freeMQTT Explorer
PuTTY (optional)SSH and telnet client for remote connections.freePuTTY
Modbus Poll (optional)Tool for testing and debugging Modbus communication.freeModbus Poll
Drive WizardSoftware for configuring Yaskawa VFDs.freeDrive Wizard
DockerPlatform for developing, shipping, and running applications in containers.freeDocker
GitHub (optional)Version control and collaboration platform for code.freeGitHub
Raspbian OSOperating system for Raspberry Pi.freeRaspbian
XRDP Viewer (optional)Remote desktop protocol client.freeXRDP Viewer
Notepad++ (optional)Text editor for code and other files.freeNotepad++
Total Cost$1,850