UNIHH-IOT:赋能工业数字化转型的轻量级高性能物联网平台
连接工业全要素 · 激活边缘新动能 · 赋能数字新制造
在工业 4.0 与数字化转型浪潮下,UNIHH-IOT 致力于打破 IT 与 OT 的数据壁垒,颠覆传统工业数采平台“架构臃肿、资源吞噬、驱动耦合、只采不控”的行业痛点。前后端代码现已全面开源,为制造业企业、系统集成商及广大开发者提供开箱即用、稳定可靠的企业级物联网底座。
项目仓库
Gitee-欢迎在项目右上角点亮一颗 Star
Github-欢迎在项目右上角点亮一颗 Star
1. 行业背景与核心定位:赋能智能制造新时代
当前,制造业数字化转型正步入深水区。设备互联互通、数据实时汇聚与智能反向控制,已成为企业打造透明工厂、提升 OEE、实现柔性生产的关键基础设施。
然而,市面上的传统工控与物联网方案往往让企业和开发者陷入两难:
- 重型平台部署门槛高:依赖重度云原生全家桶,动辄数 GB 内存起步,难以在边缘端工控机或资源受限场景下常驻;
- 单体架构稳定性脆弱:传统平台常通过 JVM 类加载器动态挂载驱动,一旦某个第三方设备协议异常崩溃,便引发全平台级联宕机;
- 控制链路断层:多数平台仅停留在“单向数据采集”阶段,面对半双工工业总线(如 RS485)的反向控制指令下发,极易出现粘包乱序与时序错帧;
- 人机交互陈旧:许多工业级系统前端交互落后、二次开发难度大,难以满足现代化工业看板与精细化资产运维的需求。
UNIHH-IOT 的诞生,正是为了颠覆这一现状!
平台创新性地采用“分布式独立微服务驱动 + 工业级 MQTT 消息总线 + 现代 Vue 3 全栈”架构,实现极轻量、高可靠、全链路可读可写的跨越式体验,全面赋能智能制造场景。
2. 核心价值矩阵:全方位赋能业务场景
+-----------------------------------------------------------------------------------+
| UNIHH-IOT 工业全场景赋能矩阵 |
+--------------------+------------------------------+-------------------------------+
| 针对制造企业 | 针对系统集成商/方案商 | 针对开发者/研发团队 |
+--------------------+------------------------------+-------------------------------+
| • 打通IT/OT数据孤岛 | • 极速交付 SCADA/MES 数采底座 | • 标准物模型抽象,二次开发极简|
| • 实时监测设备工况 | • 统一异构设备协议接入标准 | • 驱动底座开箱即用,拒绝重复造轮子 |
| • 设备全生命周期追踪 | • 边缘工控机低成本常驻运行 | • 前后端架构分层清晰,学习曲线平缓 |
+--------------------+------------------------------+-------------------------------+
3. 界面实景一览:现代化的工业级视觉与交互
系统前端基于 Vue 3 + Element Plus + Vite + ECharts 打造,提供开箱即用的专业工业控制台。以下为系统真实运行效果:
3.1 数字化监控大盘
全景呈现设备在线率、驱动健康度、实时数采吞吐与告警态势:
3.2 协议驱动管理与毫秒级通道自检 (Ping)
直观呈现驱动运行容器、内存状态与活跃通道,支持一键发起链路 RTT 延迟探测:
3.3 物理设备台账与连接管理
全生命周期管理现场 PLC、智能仪表与采集网关通信参数:
3.4 统一物模型建模与点位绑定
支持属性(Property)、服务(Service)、事件(Event)标准化定义与寄存器动态映射:
3.5 实时数据流监控与点位快照
毫秒级查看测点当前工程值、数据品质(Quality)与历史采集快照:
3.6 规则计算与智能告警联动
灵活设定阈值判断规则与报警联动动作,实现故障秒级预警:
4. 颠覆传统的四大硬核技术优势
4.1 颠覆传统单体:分布式微服务驱动沙箱
南向协议驱动(Modbus、西门子 S7、OPC UA 等)全部以独立微服务进程形态运行:
- 故障零扩散:单驱动发生死锁、网络超时或内存泄漏,仅自身重启,主平台与其它协议持续稳定运行;
- 资源按需调配:现场用什么协议就启动什么驱动,告别资源浪费;
- 全生命周期托管:基于 EMQX MQTT 总线,驱动启动自动完成上线自注册、配置热更新、心跳保活与 LWT 掉线遗嘱广播。
4.2 颠覆“只采不控”:全链路双向读写与通道级公平锁
- 双向赋能:兼具高并发点位轮询采集(Read/Decode)与北向控制指令毫秒级下发(Write/Encode);
- 通道公平互斥锁 (
getChannelLock):专门针对现场 RS485 半双工总线与单会话 TCP 通信设计,自动实现采集与反写串行化,彻底消除指令粘包与乱序错帧。
4.3 颠覆臃肿资源消耗:极致低内存与边缘原生设计
- 采用零拷贝、对象池重用与基本数据类型优先策略,大幅削减垃圾回收停顿;
- 平台经过极致堆内存调优,核心业务服务堆内存仅需 64MB ~ 128MB,单协议驱动仅需 32MB ~ 64MB,搭配 SerialGC,可在百元级树莓派或低配工控机上全天候稳定常驻。
4.4 颠覆繁琐开发:3 步交付全新工业协议驱动
内置高封装的 unihh-protocol 驱动底座,开发者只需继承基类,专注于业务报文编解码,无需编写任何 MQTT 连接、心跳与重试样板代码:
@Component
@IoTDriver(code = "custom-protocol", name = "自定义协议驱动", version = "1.0.0")
public class CustomDriverPlugin extends AbstractDriverPlugin {
@Override
public boolean openConnection(DeviceConfig config) throws Exception {
// 与现场设备建立长连接
return true;
}
@Override
public ParsedPayload readPoints(DeviceConfig config, List<ThingModel.PropertySpec> points) throws Exception {
ParsedPayload payload = new ParsedPayload();
// 采集数据填充:payload.addPoint(pointCode, value, quality, timestamp);
return payload;
}
@Override
public boolean writePoint(DeviceConfig config, String pointCode, String address, Object value, String dataType) throws Exception {
// 响应反控指令,向物理设备寄存器精准回写
return true;
}
}
5. 整体架构与技术选型
5.1 整体分层架构
+-----------------------------------------------------------------------------------+
| 物理设备与现场工业总线 (物理层) |
| Modbus PLC/仪表 | 西门子 S7-200/300/1200/1500 | OPC UA Server / SCADA |
+----------------------------------------+------------------------------------------+
| 物理网络 (TCP/IP / 串口 RS485)
v
+-----------------------------------------------------------------------------------+
| 分布式独立协议驱动服务 (南向驱动层) |
| [Modbus 驱动 :28011] | [西门子 S7 驱动 :28012] | [OPC UA 驱动 :28013] |
| 继承 AbstractDriverPlugin 基类,由 BaseDriverMqttManager 自动托管 MQTT 总线通信 |
+----------------------------------------+------------------------------------------+
| EMQX MQTT 总线 (数据上报 / 心跳 / 遗嘱 / 反控)
v
+-----------------------------------------------------------------------------------+
| 核心工业消息总线 (消息层) |
| EMQX Broker 集群 <=======> Redis 缓存 / 在线状态 |
+----------------------------------------+------------------------------------------+
| 共享订阅 / 专属主题广播
v
+-----------------------------------------------------------------------------------+
| 核心业务微服务群 (应用与平台层) |
| [统一网关 unihh-gateway :28000] |
| |-- REST/JWT 路由与鉴权 --> [管理中心 unihh-admin :28001] (物模型/设备/驱动管理) |
| `-- REST/数据流转发 ------> [数据中心 unihh-data :28002] (规则引擎/数据入库) |
+----------------------------------------+------------------------------------------+
| 策略路由 (StorageEngineRouter)
v
+-----------------------------------------------------------------------------------+
| 多形式持久化存储 (存储层) |
| TDengine (时序) | TimescaleDB / InfluxDB | MySQL 8.0 (业务) | Redis 缓存 |
+-----------------------------------------------------------------------------------+
5.2 技术栈与核心微服务一览
- 前端平台:Vue 3.4、Vite 5、Element Plus、ECharts、Axios
- 后端框架:Java 8 / 17、Spring Boot 2.7.x、Maven 多模块
- 消息总线:EMQX 5.x(MQTT 5.0 协议标准)
- 混合持久化:TDengine 3.x(海量时序数采)、MySQL 8.0(业务资产配置)、Redis(高频状态缓存)
| 服务模块 | 角色类型 | 默认端口 | 职责定位 |
|---|---|---|---|
unihh-gateway |
统一网关 | 28000 |
统一请求路由分发、CORS 跨域安全处理、JWT 鉴权拦截 |
unihh-admin |
管理中心 | 28001 |
设备资产台账、物模型动态定义、驱动全生命周期、反向控制指令下发 |
unihh-data |
数据中心 | 28002 |
工业点位数据清洗校准、规则引擎计算、告警触发、存储策略分流 |
unihh-driver-modbus |
协议驱动 | 28011 |
Modbus TCP/RTU 协议独立驱动,多从站轮询采集与寄存器反写 |
unihh-driver-s7 |
协议驱动 | 28012 |
西门子 S7-200/300/1200/1500 PLC 驱动,DB 块及各存储区读写 |
unihh-driver-opcua |
协议驱动 | 28013 |
OPC UA 协议驱动,NodeId 点位订阅与方法调用 |
unihh-frontend |
前端控制台 | 5173 |
Vue 3 工业大屏与全功能运营管理界面 |
6. 3 分钟极速上手体验
第一步:一键启动 EMQX 工业消息总线
平台官方提供预置好鉴权配置的专用 Docker 镜像:
docker run -d --name unihh-emqx \
-p 1883:1883 \
-p 8083:8083 \
-p 8084:8084 \
-p 8883:8883 \
-p 18083:18083 \
registry.cn-shenzhen.aliyuncs.com/deversun/unihh-emqx:v20261009
第二步:导入数据库脚本
- 在 MySQL 8.0 中创建数据库
unihh_iot; - 执行业务初始化脚本:
db/unihh_iot.sql; - (可选) 若需启用高性能时序存储,执行:
db/tdengine_schema.sql。
第三步:按序启动微服务
在开发环境或终端中依次启动核心服务:
- 启动统一网关:
unihh-gateway(:28000) - 启动管理中心:
unihh-admin(:28001) - 启动数据中心:
unihh-data(:28002) - 启动所需驱动:如
unihh-driver-modbus(:28011)
第四步:启动前端控制台
cd unihh-frontend
npm install # 或 pnpm install
npm run dev
浏览器访问 http://localhost:5173 即可进入系统。
第五步:默认访问清单
| 系统入口 | 访问地址 | 用户名 | 默认密码 |
|---|---|---|---|
| UNIHH-IOT 平台管理端 | http://localhost:5173 |
admin |
unihhiot |
| EMQX Dashboard 控制台 | http://localhost:18083 |
admin |
public |
| MQTT 内部总线认证 | tcp://localhost:1883 |
unihh |
unihh |
7. 典型赋能落地场景
- 🏭 智慧车间与数字工厂:作为企业 SCADA / MES 的实时数据底座,打通注塑机、机床、PLC 与各类仪表的双向数据链路。
- 🖥️ 边缘智能软网关:运行在工控机、树莓派等边缘设备上,实现“就地采集、边缘计算、断网暂存、反控执行”。
- ⚡ 智慧能耗与动环监控系统:对园区配电回路、温湿度、UPS、精密空调的高频采集与时序分析。
- 📦 装备制造设备远程运维:设备出厂自带联网中台,实现设备运行工况实时透传与远程故障诊断。
8. 开源协议与社区生态
本项目严格遵循商业友好的 Apache License 2.0开源协议,支持个人及企业用户免费商用、自由修改与分发。
- 💡 期待您的加入:欢迎在 Issue 中反馈现场遇到的工业协议与设备兼容性场景;
- 🚀 共建协议生态:欢迎提交 Pull Request,一起扩充 BACnet、DL/T 645、三菱 MC、欧姆龙 FINS 等更多南向驱动插件;
- ⭐ 支持开源:如果您觉得本项目对您的工作、项目或学习有所帮助,欢迎在项目右上角点亮一颗 Star!