
还记得第一次踏进工厂车间,机器轰鸣、PLC在“眨眼”、看板一片红黄绿,那场面真的让我有种“现代工业的浪漫”——但这种浪漫,很快就被现实拍得粉碎。
因为设备数据取不出来,通信协议五花八门,厂区网络不稳定,采集端CPU负载高,最后搞个平台还只能看个“数字大屏”……说白了,我们不是没数据,而是“不会用”“拿不到”“传不上”!
所以今天这篇文章,我就想和你聊聊——我是怎么一步步用边缘计算 + MQTT,搭建起一个可跑、可扩展、能上线的工业物联网平台原型系统,帮企业真正走上“智能制造”的第一步。
这项目一开始老板就说:“数据一定要实时,不能全靠云;工厂断网还得能采集本地数据。”这就明确一个事儿:
云平台只是展示,核心要靠“边缘”来抗压。
于是我锁定的架构模型是:
设备层(PLC/传感器)
↓ Modbus、CAN、485
边缘计算网关(边缘容器+MQTT Client)
↓ 本地计算、缓存、协议转换
MQTT Broker(Eclipse Mosquitto)
↓ Pub/Sub 解耦
云端 IIoT 平台(Web可视化 + MongoDB)关键点:
我这里选用的是轻量级、易部署、社区成熟的 Eclipse Mosquitto,部署在一台树莓派上(也可以是边缘主机),启动超简单:
sudo apt install mosquitto mosquitto-clients
sudo systemctl enable mosquitto然后用客户端测试一下发布订阅:
mosquitto_pub -t factory/temp -m "36.5"
mosquitto_sub -t factory/temp只要你能在订阅端看到 "36.5",恭喜,你已经有了数据流的心跳线!
我们工厂的设备协议五花八门,有 Modbus、OPC-UA、甚至自定义串口协议。我的做法是写了个边缘采集脚本,用 Python 做数据采集,用 paho-mqtt 负责“发布”。
👇 举个 Modbus RTU 的例子:
import minimalmodbus
import paho.mqtt.client as mqtt
# 建立串口连接
instrument = minimalmodbus.Instrument('/dev/ttyUSB0', 1)
instrument.serial.baudrate = 9600
# 连接 MQTT Broker
client = mqtt.Client()
client.connect("localhost", 1883)
# 循环采集并发布
while True:
temp = instrument.read_register(100, 1) # 读取温度
client.publish("factory/temperature", temp)这个脚本的好处是:
MQTT 上来的数据,咱不能让它“漂浮不定”,得落地。这里我用了 Node.js + MQTT 客户端 + MongoDB 把数据写入数据库:
const mqtt = require('mqtt');
const MongoClient = require('mongodb').MongoClient;
const client = mqtt.connect('mqtt://localhost');
const url = 'mongodb://localhost:27017';
client.on('connect', () => {
client.subscribe('factory/temperature');
});
client.on('message', async (topic, message) => {
const temp = parseFloat(message.toString());
const now = new Date();
const mongo = await MongoClient.connect(url);
const db = mongo.db('iot_data');
db.collection('temperature_logs').insertOne({ temp, time: now });
});前端我用了简单的 Echarts 折线图,把温度曲线实时渲染出来。虽然不高级,但 足够清晰、够实时、能跑起来!
项目中也踩了不少坑,分享几个血泪经验:
if temp > 80:
client.publish("factory/alert", f"温度异常:{temp}°C")这才叫“智能”工厂,不是“傻转”工厂。
很多人以为“智能制造”就得买MES、SCADA、AI模型,其实真不是。
我一直的观点是:
智慧工厂,不是买出来的,而是“连出来”的。
设备是死的,协议是旧的,环境是乱的,但我们用 MQTT + 边缘计算 + 开源组件,就能搭建一个可用、可扩展、能上线的 IIoT 系统。
哪怕你没几百万预算,也可以一步步迭代,把“黑灯工厂”做出来。
有时候我觉得,做 IIoT 的人不光要懂技术,更要有点“折腾精神”。
你要敢去问厂长:“这台设备能不能暴露Modbus接口?”
你要敢去追踪报文:“这玩意儿到底是BigEndian还是LittleEndian?”
你要愿意深夜改脚本,第二天早上去看设备上了线、数据流起来,那一刻,你就会觉得这一切都值了。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。