論壇原文:
https://club.rt-thread.org/ask/article/04554bb1d4ba5bfe.html
作者:XLUR_8603
功能綜述
基于睿擎派和RT-Thread操作系統,我們開發了一款高性能工業物聯網數據網關,實現了設備信息的實時采集、可視化監控和遠程管理。該方案為傳統工業設備的智能化升級提供了可靠且經濟的技術路徑。
核心功能
1.實時數據采集與可視化
a.通過Modbus RTU協議采集從設備數據
b.基于WebNet實現數據的網頁可視化展示
c.支持溫濕度、光照、距離等多種傳感器數據監控
2.遠程設備管理
a.通過Web界面實現設備參數配置
b.支持在線OTA固件升級
c.實現數據導出功能,方便數據分析
3.穩定可靠的通信
a.采用RS485總線連接,通信穩定可靠
b.基于RT-Thread實時操作系統,確保系統響應及時
c.使用互斥量保護數據,避免并發訪問沖突
系統架構
硬件架構設計
本方案采用主從架構設計,實現了分布式數據采集與集中管理:

主機:睿擎派作為主站,負責數據匯總、處理和可視化
從機:星火一號作為從站,負責前端傳感器數據采集
通信鏈路:通過RS485總線實現主從機之間的Modbus RTU通信
軟件架構設計
本項目采用分層模塊化設計,確保代碼的可維護性和功能分離,核心模塊包括:
主入口模塊:程序執行入口,負責系統初始化流程
應用管理模塊:集中管理應用任務,初始化全局資源
Modbus通信模塊:實現Modbus RTU協議功能,負責數據讀寫操作
Web服務模塊:基于WebNet實現HTTP服務,提供網頁界面
傳感器采集模塊:負責各種傳感器數據采集和處理

核心代碼實現
Modbus初始化配置
代碼說明:此模塊負責初始化Modbus RTU通信環境,配置串口參數、從機地址、超時設置和RS485模式,為后續的數據采集建立通信基礎。
/* Modbus初始化 - 根據硬件配置 */staticrt_bool_tmodbus_init(void){/* 創建Modbus RTU上下文 - 使用串口配置 */ modbus_ctx =modbus_new_rtu("/dev/uart5",115200,'N',8,1);if(modbus_ctx ==NULL){LOG_E("Unable to create Modbus context");return-1;}/* 設置從機地址 */modbus_set_slave(modbus_ctx,MODBUS_SLAVE_ADDR);/* 設置響應超時 */modbus_set_response_timeout(modbus_ctx,1,0);/* 設置為 RS485 模式 */modbus_rtu_set_serial_mode(modbus_ctx,MODBUS_RTU_RS485);/* 設置 RTS 控制 */modbus_rtu_set_rts(modbus_ctx,RS485_RTS_PIN,MODBUS_RTU_RTS_UP);/* 連接Modbus設備 */if(modbus_connect(modbus_ctx)==-1){LOG_E("Modbus connection failed: %s",modbus_strerror(errno));modbus_free(modbus_ctx); modbus_ctx =RT_NULL;returnRT_FALSE;}LOG_I("Modbus initialized successfully with UART5, 115200, RS485 mode");returnRT_TRUE;}
數據采集實現
代碼說明:此模塊實現從Modbus從設備讀取傳感器數據的功能,包括溫濕度、光照和距離等參數,并進行數據處理和驗證。
staticrt_bool_tread_sensor_data(structsensor_data*data){uint16_t tab_reg[MODBUS_REG_COUNT];int rc;int i;if(modbus_ctx ==NULL){LOG_E("Modbus context is null");returnRT_FALSE;} rc =modbus_read_registers(modbus_ctx, MODBUS_REG_START, MODBUS_REG_COUNT, tab_reg);if(rc ==-1){LOG_E("Modbus read failed: %s",modbus_strerror(errno));returnRT_FALSE;}/* 讀取溫度值(假設為有符號16位整數,單位0.1℃) */ data->temperature =(int16_t)tab_reg[TEMPERATURE_REG - MODBUS_REG_START]/1.0f; data->humidity = tab_reg[HUMIDITY_REG - MODBUS_REG_START]/1.0f; data->ps_data = tab_reg[PS_REG_ADDR - MODBUS_REG_START]; data->brightness = tab_reg[BR_REG_ADDR - MODBUS_REG_START]/1.0f; data->valid = RT_TRUE;LOG_D("Modbus read: temp=%.1f℃, humidity=%.1f%%", data->temperature,data->humidity);returnRT_TRUE;}
Web服務實現
代碼說明:此模塊實現Web服務的CGI處理函數,用于響應前端的光照數據請求,通過互斥量保護共享數據,確保數據訪問的安全性。
staticvoidcgi_get_light_handler(structwebnet_session*session){constchar*mimetype;float light_value =0.0f; mimetype =mime_get_type(RT_NULL);webnet_session_set_header(session, mimetype,200,"Ok",-1);char*trans_buf ="{"light": %.2f}";if(temperature_mutex !=RT_NULL){rt_mutex_take(temperature_mutex,100); light_value = g_light_value;rt_mutex_release(temperature_mutex);}webnet_session_printf(session, trans_buf, light_value);}
網頁界面設計
代碼說明:此模塊定義了Web界面的頁面路由配置,根據用戶選擇加載不同的功能頁面,包括設備信息、從機設備信息、視頻流、數據導出、OTA更新和參數設置等。
// 根據選擇加載不同內容頁constpages ={ device_info:"device_info.shtml", slave_device_info:"slave_device_info.shtml", video_stream:"video_stream.shtml", data_export:"data_export.shtml", ota_update:"ota_update.shtml", parameter_settings:"parameter_settings.shtml",};
技術優勢
1.高實時性
a.基于RT-Thread實時操作系統,任務響應及時
b.采用消息隊列和互斥量等IPC機制,確保數據處理的實時性
2.易于擴展
a.模塊化設計,功能分離清晰
b.基于RT-Thread軟件包生態,可快速集成各種傳感器
3.穩定可靠
a.Modbus RTU協議,通信穩定可靠
b.RS485總線,抗干擾能力強
c.完善的錯誤處理機制
4.用戶友好
a.直觀的Web界面,操作簡單
b.支持在線OTA升級,維護便捷
c.數據可視化展示,一目了然
應用場景
工業設備監控:實時監控工業設備的運行狀態和環境參數
智能樓宇:監控樓宇內的溫濕度、光照等環境參數
農業大棚:監測大棚內的環境參數,實現智能調控
倉儲物流:監控倉庫內的溫濕度、煙霧等參數,確保存儲安全
部署與配置
硬件配置
主機:睿擎派開發板
從機:星火一號開發板
通信:RS485總線連接
傳感器:溫濕度傳感器、光照傳感器、距離傳感器
軟件配置
操作系統:RT-Thread 4.0+
協議:Modbus RTU
網絡:WebNet HTTP服務
串口配置:UART5,波特率115200,無校驗位,8位數據,1位停止位
演示效果
總結
基于Modbus的在線監控網關系統方案,充分利用了RT-Thread操作系統的優勢,實現了設備信息的實時采集、可視化監控和遠程管理。該方案具有高實時性、易于擴展、穩定可靠和用戶友好等特點,可廣泛應用于工業、樓宇、農業等領域的設備監控場景。
通過本方案的實施,傳統工業設備可以快速接入物聯網,實現智能化升級,提高生產效率和管理水平。RT-Thread軟件包生態的豐富資源,也為系統的快速開發和功能擴展提供了有力支持。
項目代碼地址:
https://gitee.com/lv-yuhaogree/rui-ching_demo
相關文檔:
https://www.rt-thread.com/ruiching/document/site/
-
MODBUS
+關注
關注
28文章
2454瀏覽量
82980 -
網關
+關注
關注
9文章
6721瀏覽量
56135 -
在線監控
+關注
關注
0文章
48瀏覽量
10949 -
工業物聯網
+關注
關注
25文章
2522瀏覽量
67425
發布評論請先 登錄
睿擎派文件系統指南:從開發到發布全流程實踐 | 技術解析
Modbus轉ethercat網關在農業中的應用主要體現
油品污染度在線檢測系統CANopen通訊解決方案
modbus串口轉Profinet 網關解決電力項目負荷生產的監控應用
中新社:RT-Thread攜“睿擎平臺”亮相工博會 | 媒體視角
川商傳媒:睿擎工業開發平臺開啟智能化新篇章 | 媒體視角
睿擎平臺極簡開發重要實踐—— PinMux 配置工具 | 睿擎派試用名單公示
【直播預告】10月14日晚8點|睿擎平臺首場實戰直播:從快速上手到實現遠程監控網關
【直播預告】10月14日 本周二晚8點|睿擎平臺首場實戰直播:從快速上手到實現遠程監控網關
睿擎平臺v1.7.2版本正式發布|技術集結
睿擎平臺:基于Modbus的在線監控網關方案
評論