Projects

IIoT Hub

An Industry 4.0 edge hub for factories: it collects readings from the machines on the floor, keeps them safe through internet outages and streams them to an Azure data lake for big-data analytics.

Published

Built with

  • Blazor
  • Azure IoT Hub
  • Azure Data Explorer
IIoT Hub: a plant floor dashboard with machines gated to the cloudA monitor showing the plant dashboard: a map of three machine cards linked to the hub and to Azure, one machine with an active alarm, an activity strip of run, idle and off time with utilisation, and a button that sends a machine's readings to the cloud.Saw 1Running, 1 450 rpmMill 2IdleSaw 3Alarm: air pressureIIoT HubAzure IoT HubSend to cloudTodayUtilisation 68%Plant overviewConnectorsAlarms
From the plant floor to the data lakeArnitek built IIoT Hub. Factory machines sends readings to IIoT Hub. IIoT Hub sends store and forward to Azure IoT Hub. Azure IoT Hub feeds Data lake and analytics.Factory machinesCNC saws and machiningcentresIIoT Hubedge service, localbuffer, dashboardAzure IoT Hubone device identityper machineData lake andanalyticstwo years of history,optional analyticsreadingsstore andforward
From the plant floor to the data lake

Factories run a mixed fleet of machines, each with its own protocol and its own idea of what a reading looks like. IIoT Hub is the piece that sits between those machines and the cloud. It turns every source into one standard reading (device, tag, timestamp, value, quality), keeps a local copy, and streams the data to Azure where it can be analysed at scale.

One service on the plant floor

The hub is a single .NET process that installs as a Windows service on a box inside the plant network. There is no Kubernetes to run and no container platform to maintain. Connectors for the machines are configured from the dashboard and applied without a restart. The first site runs CNC saws and machining centres, so the hub ships with a CNC tag catalogue: a shared naming contract for power-supply quality, air pressure, temperatures, spindle speed, machine state, production orders, part and tool cycles, and alarms. OPC UA, Modbus and MQTT connectors are written per plant against the machines that are actually there.

Nothing is lost when the line goes offline

Every reading lands first in a local SQLite buffer that doubles as seven days of history. The buffer is an outbox: data that has not reached the cloud is never purged, and when the connection returns the hub replays it in order. Each machine keeps its own cursor and its own backoff, so one slow device never holds up the rest.

Every machine is its own device in Azure

Each machine gets its own identity in Azure IoT Hub, provisioned automatically through the Device Provisioning Service with a single secret held on site. Nothing reaches the cloud until an operator enables that machine from the dashboard. From there the hub sends one message per device per second over MQTT, and IoT Hub routes the JSON into Azure Data Lake Storage, where it moves from hot to cool to cold storage and is kept for two years. An optional analytics add-on adds Azure Data Explorer with streaming ingestion and a live workbook dashboard. The whole cloud side is infrastructure as code: one Bicep deployment per customer subscription, no custom cloud code, access through managed identity only.

A dashboard that works without the internet

The on-site dashboard, built with Blazor, shows a map of machine cards linked to the hub and to Azure, history charts per device, alarms with severity that operators can clear, and an activity strip of run, idle and off time with utilisation for the day. It runs on the box itself and keeps working when the plant is cut off.

What this gives a factory

  • Readings from every machine in one standard shape, ready for Fabric, Databricks, Synapse or Power BI.
  • No data loss through internet outages, and no manual catch-up afterwards.
  • Per-machine identities, routing and access control in Azure, approved by an operator one machine at a time.
  • A base running cost in the tens of euros a month, with live analytics as an opt-in.