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:
MQTT facilitates the efficient transmission of telemetry data from sensors or IoT devices.
InfluxDB acts as the repository for this time-series data, allowing for efficient storage and retrieval.
Node-RED provides the logic for processing this data, implementing workflows, and integrating with other systems.
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-RED | Flow-based development tool for visual programming. | free | Node-RED |
InfluxDB | Time series database for storing machine telemetry data. | free | InfluxDB |
Mosquitto MQTT | Lightweight MQTT broker for machine communication. | free | Mosquitto |
Grafana | Dashboard and graph composer for visualizing data. | free | Grafana |
Ignition Edge Panel | Industrial application platform for HMI, SCADA, and IIoT. | $1,850 | Ignition Edge |
Ignition Designer | Design tool for creating applications within Ignition. | free | Ignition Designer |
MQTT Explorer (optional) | GUI tool for inspecting MQTT messages. | free | MQTT Explorer |
PuTTY (optional) | SSH and telnet client for remote connections. | free | PuTTY |
Modbus Poll (optional) | Tool for testing and debugging Modbus communication. | free | Modbus Poll |
Drive Wizard | Software for configuring Yaskawa VFDs. | free | Drive Wizard |
Docker | Platform for developing, shipping, and running applications in containers. | free | Docker |
GitHub (optional) | Version control and collaboration platform for code. | free | GitHub |
Raspbian OS | Operating system for Raspberry Pi. | free | Raspbian |
XRDP Viewer (optional) | Remote desktop protocol client. | free | XRDP Viewer |
Notepad++ (optional) | Text editor for code and other files. | free | Notepad++ |
Total Cost | $1,850 |