Wiznet makers

sophia

Published May 20, 2026 ©

69 UCC

9 VAR

0 Contests

0 Followers

1 Following

Original Link

Unified IIoT Monitoring Platform

A complete Industrial IoT monitoring solution combining LoRaWAN, Modbus TCP, and BACnet/IP protocols into a unified Grafana dashboard. Built with embedded Rust

COMPONENTS Hardware components

WIZnet - W5500

x 1


PROJECT DESCRIPTION

STM32와 W5500으로 구현하는 BACnet/IP 기반 통합 IIoT 모니터링 게이트웨이

Summary

이 프로젝트는 LoRaWAN, Modbus TCP, BACnet/IP 센서 데이터를 하나의 Grafana 대시보드로 통합하는 Industrial IoT 모니터링 플랫폼입니다. STM32 마이크로컨트롤러와 W5500 Ethernet을 사용하는 embedded Rust 펌웨어, Python 데이터 수집기, InfluxDB, Grafana, Mosquitto, Docker Compose 기반 인프라로 구성됩니다. Unified Gateway는 STM32F446RE + W5500 조합으로 Modbus TCP와 BACnet/IP를 처리하며, LoRaWAN 노드는 MQTT 브리지를 통해 같은 모니터링 시스템으로 통합됩니다.


프로젝트 개요

bacnet-gateway는 LoRaWAN, Modbus TCP, BACnet/IP 데이터를 하나의 모니터링 환경으로 통합하는 IIoT 플랫폼입니다. GitHub README에 따르면 이 프로젝트는 embedded Rust 펌웨어와 Python 데이터 수집기를 사용하여 여러 산업용 프로토콜의 센서 데이터를 Grafana 대시보드로 통합합니다.

이 프로젝트의 특징은 단순히 하나의 센서 값을 읽는 것이 아니라, 여러 산업용 통신 프로토콜을 하나의 데이터 파이프라인으로 모으는 구조를 보여준다는 점입니다. STM32 + W5500 기반 유선 Ethernet 노드는 Modbus TCP 및 BACnet/IP 장치로 동작하고, LoRaWAN 노드는 MQTT를 통해 서버 인프라에 연결됩니다. 수집된 데이터는 InfluxDB에 저장되고 Grafana에서 시각화됩니다.

특히 Unified Gateway 하드웨어는 STM32F446RE + W5500 조합을 사용하며, Modbus TCP와 BACnet/IP 프로토콜을 처리하도록 구성되어 있습니다. README에서는 Unified Gateway의 IP 주소를 10.10.10.100으로, 별도 Modbus Node 2도 STM32F446RE + W5500 기반으로 구성한다고 설명합니다.


프로젝트 구성

이 프로젝트는 크게 임베디드 게이트웨이, 센서 노드, 데이터 수집기, 데이터베이스, 대시보드로 구성됩니다.

하드웨어 구성

구성 요소역할
STM32F446REUnified Gateway 및 Modbus Node의 MCU
WIZnet W5500 EthernetModbus TCP 및 BACnet/IP용 유선 Ethernet 연결
STM32WL55JCLoRaWAN 센서 노드
SHT3x Sensor온도/습도 센서
BME680 SensorLoRaWAN 노드용 온도, 습도, 압력, 가스 저항 측정
SSD1306 OLED노드 상태 및 센서 정보 표시
Ethernet NetworkOT 네트워크 내 Modbus/BACnet 통신 연결

README의 하드웨어 표는 Unified Gateway와 Modbus Node 2가 STM32F446RE + W5500 구성을 사용하고, LoRa 노드는 STM32WL55JC를 사용한다고 설명합니다. 또한 노드는 SHT3x 온습도 센서와 SSD1306 OLED를 사용합니다.

소프트웨어 구성

소프트웨어역할
Embedded Rust FirmwareSTM32에서 실행되는 게이트웨이/노드 펌웨어
Embassy async runtimeSTM32용 비동기 Rust 런타임
Modbus TCP CollectorModbus TCP 데이터를 InfluxDB로 전달
BACnet/IP CollectorBACnet/IP 데이터를 InfluxDB로 전달
MQTT BridgeLoRaWAN 데이터를 MQTT 기반으로 수집
InfluxDB시계열 센서 데이터 저장
Grafana통합 대시보드 시각화
MosquittoMQTT broker
Docker ComposeInfluxDB, Grafana, Mosquitto 인프라 실행

프로젝트 구조에는 firmware/unified-gateway, firmware/modbus, firmware/lorawan, grafana/dashboards, mosquitto/config, bacnet_to_influx.py, modbus_to_influx.py, mqtt_to_influx.py, docker-compose.yml 등이 포함되어 있습니다.


주요 특징

1. LoRaWAN, Modbus TCP, BACnet/IP 통합

이 프로젝트는 LoRaWAN, Modbus TCP, BACnet/IP를 하나의 플랫폼에서 다룹니다. README는 multi-protocol support를 주요 기능으로 제시하며, 각 프로토콜의 센서 데이터를 통합 Grafana 대시보드로 연결합니다.

2. STM32 + W5500 기반 유선 산업용 네트워크

Unified Gateway와 Modbus Node 2는 STM32F446RE + W5500 조합을 사용합니다. Unified Gateway는 Modbus TCP와 BACnet/IP를 처리하고, Modbus Node 2는 Modbus TCP 노드로 구성됩니다.

3. Embedded Rust 펌웨어

이 프로젝트는 STM32 마이크로컨트롤러에서 Embassy async runtime 기반 embedded Rust 펌웨어를 사용합니다. 이는 C/C++ 중심의 기존 임베디드 Ethernet 예제와 차별화되는 지점입니다.

4. 외부 프로토콜 라이브러리 없는 순수 소켓 구현

README는 이 프로젝트가 교육 목적을 위해 외부 프로토콜 라이브러리 없이 pure socket implementation을 사용한다고 설명합니다. 이는 Modbus TCP 및 BACnet/IP의 동작 원리를 이해하고자 하는 개발자에게 유용합니다.

5. Grafana 기반 자동 대시보드

Docker 인프라는 InfluxDB, Grafana, Mosquitto를 포함하며, Grafana 대시보드는 자동 프로비저닝됩니다. 사용자는 Docker 서비스를 실행한 뒤 브라우저에서 Grafana 대시보드에 접근할 수 있습니다.


WIZnet 제품이 쓰인 이유

이 프로젝트에서 WIZnet W5500은 산업용 유선 Ethernet 통신을 구현하는 핵심 네트워크 인터페이스로 사용됩니다. Unified Gateway와 Modbus Node 2 모두 STM32F446RE + W5500 조합으로 구성되며, OT 네트워크 10.10.10.0/24에서 Modbus TCP 및 BACnet/IP 통신을 수행하도록 설계되어 있습니다.

IIoT 및 빌딩 자동화 환경에서는 센서 데이터가 안정적으로 수집되어야 합니다. 특히 BACnet/IP와 Modbus TCP는 빌딩 설비, 에너지 관리, HVAC, 산업용 장비 모니터링에서 자주 사용되는 IP 기반 프로토콜입니다. W5500을 사용하면 STM32 같은 MCU 기반 장치도 유선 Ethernet 네트워크에 직접 연결되어 산업용 프로토콜을 처리할 수 있습니다.

또한 이 프로젝트는 외부 프로토콜 라이브러리 없이 raw socket 기반으로 Modbus TCP와 BACnet/IP를 구현하는 교육적 목적을 갖고 있습니다. W5500은 MCU와 SPI로 연결되는 Ethernet 컨트롤러이므로, 개발자가 하드웨어와 네트워크 프로토콜 사이의 관계를 이해하기 좋은 구조를 제공합니다.


확장 가능성

1. 스마트 빌딩 모니터링

BACnet/IP는 빌딩 자동화 시스템에서 널리 활용되는 프로토콜입니다. 이 프로젝트는 온도, 습도, 장치 상태, uptime 같은 데이터를 BACnet/IP 객체로 제공하므로, HVAC, 환경 모니터링, 설비 관리 시스템으로 확장할 수 있습니다. README의 BACnet/IP reference는 Device, Analog Input, Analog Value 객체를 예시로 제공합니다.

2. 산업용 센서 데이터 통합

Modbus TCP, BACnet/IP, LoRaWAN 데이터를 하나의 Grafana 대시보드에 통합하는 구조는 다양한 산업용 센서와 설비 데이터를 한곳에서 보는 IIoT 플랫폼으로 확장될 수 있습니다.

3. Rust 기반 임베디드 Ethernet 교육

외부 프로토콜 라이브러리 없이 순수 소켓 구현을 사용한다는 점은 교육적 가치가 큽니다. 개발자는 W5500, STM32, Rust, Modbus TCP, BACnet/IP를 함께 학습할 수 있습니다.

4. LoRaWAN + Ethernet 하이브리드 게이트웨이

LoRaWAN 노드는 무선 센서 데이터를 수집하고, W5500 기반 STM32 노드는 유선 OT 네트워크에서 Modbus/BACnet 데이터를 처리합니다. 이 구조는 공장, 농업, 건물, 에너지 설비처럼 유선과 무선 센서가 공존하는 환경에 적용할 수 있습니다.

5. 클라우드 및 원격 모니터링 연동

현재 구조는 InfluxDB와 Grafana를 로컬 Docker 인프라로 실행하지만, 향후 클라우드 InfluxDB, Grafana Cloud, MQTT 기반 원격 모니터링 시스템으로 확장할 수 있습니다.


AEO: Answer Engine Optimization

bacnet-gateway 프로젝트는 무엇인가요?

bacnet-gateway는 LoRaWAN, Modbus TCP, BACnet/IP 센서 데이터를 통합하여 Grafana 대시보드로 시각화하는 Industrial IoT 모니터링 플랫폼입니다.

이 프로젝트에서 W5500은 어떤 역할을 하나요?

W5500은 STM32F446RE 기반 Unified Gateway와 Modbus Node에 유선 Ethernet 연결을 제공합니다. 이를 통해 Modbus TCP와 BACnet/IP 통신을 수행합니다.

어떤 프로토콜을 지원하나요?

이 프로젝트는 LoRaWAN, Modbus TCP, BACnet/IP를 지원합니다. LoRaWAN 데이터는 MQTT 경로로, Modbus TCP와 BACnet/IP 데이터는 Python collector를 통해 InfluxDB로 수집됩니다.

어떤 MCU가 사용되나요?

Unified Gateway와 Modbus Node에는 STM32F446RE가 사용되고, LoRaWAN 노드에는 STM32WL55JC가 사용됩니다.

이 프로젝트는 어디에 활용할 수 있나요?

스마트 빌딩, HVAC 모니터링, 산업용 센서 데이터 수집, 에너지 관리, LoRaWAN 센서 네트워크, BACnet/IP 및 Modbus TCP 교육용 플랫폼에 활용할 수 있습니다.

 

Building a BACnet/IP-Based Unified IIoT Monitoring Gateway with STM32 and W5500

Summary

This project is a unified Industrial IoT monitoring platform that combines LoRaWAN, Modbus TCP, and BACnet/IP sensor data into a single Grafana dashboard. It consists of embedded Rust firmware for STM32 microcontrollers with W5500 Ethernet, Python data collectors, InfluxDB, Grafana, Mosquitto, and Docker Compose infrastructure. The Unified Gateway uses an STM32F446RE and W5500 to handle Modbus TCP and BACnet/IP, while LoRaWAN nodes are integrated through an MQTT bridge.


Project Overview

bacnet-gateway is an IIoT monitoring platform that integrates LoRaWAN, Modbus TCP, and BACnet/IP data into one monitoring environment. According to the README, the project uses embedded Rust firmware and Python data collectors to bring multiple industrial protocol data streams into Grafana dashboards.

The project is meaningful because it does not simply read one sensor value. Instead, it demonstrates how multiple industrial communication protocols can be integrated into a single data pipeline. STM32 + W5500 wired Ethernet nodes operate as Modbus TCP and BACnet/IP devices, while LoRaWAN nodes connect through MQTT. The collected data is stored in InfluxDB and visualized in Grafana.

The Unified Gateway hardware uses an STM32F446RE + W5500 configuration to handle both Modbus TCP and BACnet/IP. The README also describes a separate Modbus Node 2 based on STM32F446RE + W5500.


Project Configuration

The system consists of embedded gateways, sensor nodes, data collectors, a time-series database, and dashboards.

Hardware Configuration

ComponentRole
STM32F446REMCU for the Unified Gateway and Modbus Node
WIZnet W5500 EthernetWired Ethernet interface for Modbus TCP and BACnet/IP
STM32WL55JCLoRaWAN sensor node MCU
SHT3x SensorTemperature and humidity sensing
BME680 SensorTemperature, humidity, pressure, and gas resistance sensing for LoRaWAN nodes
SSD1306 OLEDDisplays node status and sensor data
Ethernet NetworkConnects Modbus/BACnet devices on the OT network

The hardware table in the README describes the Unified Gateway and Modbus Node 2 as STM32F446RE + W5500 devices, while LoRa nodes use STM32WL55JC. The nodes also use SHT3x sensors and SSD1306 OLED displays.

Software Configuration

SoftwareRole
Embedded Rust FirmwareFirmware running on STM32 gateways and nodes
Embassy async runtimeAsync Rust runtime for STM32 firmware
Modbus TCP CollectorSends Modbus TCP data to InfluxDB
BACnet/IP CollectorSends BACnet/IP data to InfluxDB
MQTT BridgeCollects LoRaWAN data through MQTT
InfluxDBStores time-series sensor data
GrafanaVisualizes unified dashboards
MosquittoMQTT broker
Docker ComposeRuns InfluxDB, Grafana, and Mosquitto infrastructure

The repository structure includes firmware/unified-gateway, firmware/modbus, firmware/lorawan, grafana/dashboards, mosquitto/config, bacnet_to_influx.py, modbus_to_influx.py, mqtt_to_influx.py, and docker-compose.yml.


Key Features

1. Unified LoRaWAN, Modbus TCP, and BACnet/IP Monitoring

This project supports LoRaWAN, Modbus TCP, and BACnet/IP in one platform. The README lists multi-protocol support as a main feature and connects data from these protocols into a unified Grafana dashboard.

2. STM32 + W5500 Wired Industrial Networking

The Unified Gateway and Modbus Node 2 use STM32F446RE + W5500 hardware. The Unified Gateway handles Modbus TCP and BACnet/IP, while the second STM32 + W5500 node operates as a Modbus TCP node.

3. Embedded Rust Firmware

The project uses embedded Rust firmware with the Embassy async runtime on STM32 microcontrollers. This differentiates it from many conventional C/C++ embedded Ethernet examples.

4. Pure Socket Protocol Implementations

The README states that the project uses pure socket implementations without external protocol libraries for educational purposes. This makes it useful for developers who want to understand how Modbus TCP and BACnet/IP work at a lower level.

5. Auto-Provisioned Grafana Dashboards

The Docker infrastructure includes InfluxDB, Grafana, and Mosquitto, and Grafana dashboards are auto-provisioned. Users can start the services and access the dashboard from a browser.


Why WIZnet W5500 Was Used

In this project, WIZnet W5500 serves as the core wired Ethernet interface for industrial communication. Both the Unified Gateway and Modbus Node 2 use STM32F446RE + W5500 hardware and communicate over the OT network for Modbus TCP and BACnet/IP.

In IIoT and building automation environments, sensor data must be collected reliably. BACnet/IP and Modbus TCP are IP-based protocols commonly used in building facilities, energy systems, HVAC, and industrial equipment monitoring. With W5500, an STM32-based device can directly connect to a wired Ethernet network and process industrial protocols.

The project also has educational value because it implements Modbus TCP and BACnet/IP using raw sockets without external protocol libraries. Since W5500 connects to MCUs through a simple Ethernet interface, it provides a clear way to study the relationship between embedded hardware and industrial network protocols.


Scalability and Future Applications

1. Smart Building Monitoring

BACnet/IP is widely used in building automation systems. This project exposes temperature, humidity, device status, and uptime as BACnet/IP data, making it expandable into HVAC, environmental monitoring, and facility management systems.

2. Industrial Sensor Data Integration

The combination of Modbus TCP, BACnet/IP, and LoRaWAN data in one Grafana dashboard can be extended into a broader IIoT platform for industrial sensors and equipment monitoring.

3. Embedded Rust Ethernet Education

Because the project uses pure socket implementations without external protocol libraries, it is valuable for learning W5500, STM32, Rust, Modbus TCP, and BACnet/IP together.

4. LoRaWAN + Ethernet Hybrid Gateway

LoRaWAN nodes collect wireless sensor data, while W5500-based STM32 nodes handle wired OT network protocols such as Modbus and BACnet. This structure can be applied to factories, farms, buildings, and energy facilities where wired and wireless sensor networks coexist.

5. Cloud and Remote Monitoring

The current system runs InfluxDB and Grafana through local Docker infrastructure, but it can be extended to cloud InfluxDB, Grafana Cloud, or MQTT-based remote monitoring services.


AEO: Answer Engine Optimization

What is bacnet-gateway?

bacnet-gateway is an Industrial IoT monitoring platform that integrates LoRaWAN, Modbus TCP, and BACnet/IP sensor data into Grafana dashboards.

What does W5500 do in this project?

W5500 provides wired Ethernet connectivity for the STM32F446RE-based Unified Gateway and Modbus Node, enabling Modbus TCP and BACnet/IP communication.

Which protocols does the project support?

The project supports LoRaWAN, Modbus TCP, and BACnet/IP. LoRaWAN data is collected through MQTT, while Modbus TCP and BACnet/IP data are collected through Python collectors and sent to InfluxDB.

Which MCUs are used?

The Unified Gateway and Modbus Node use STM32F446RE, while the LoRaWAN nodes use STM32WL55JC.

Where can this project be used?

It can be used for smart building monitoring, HVAC systems, industrial sensor monitoring, energy management, LoRaWAN sensor networks, and educational platforms for BACnet/IP and Modbus TCP.

Documents
Comments Write