
IoT Master 物聯大師
https://github.com/zgwit/iot-master
物聯大師是真格智能實驗室推出的一款通用的資料采集和自動控制系統,
集成了Modbus和一些主流PLC的通訊協議,適用于大部分物聯網或工業互聯網資料應用場景,
該產品提供資料采集,歷史存盤,自動控制等功能,可以從一定程度上取代PLC或工控機或MCU,
平臺提供豐富的元件庫和在線模板,可以直接用于大部分物聯網專案后端,快速,方便,高效,
作者曾經接觸多個物聯網實際專案的后端,需求大同小異, 因為團隊不同,實作方式就千奇百怪了,大家其實都在重復地造輪子,
痛定思痛,于是決定提取共同的部分,做成了通用的物聯大師, 并且通過開源的方式免費分享給小伙伴兒們使用,
給誰用?
- 物聯網企業,比如:智慧小區、智慧農業、智慧養殖、智慧廠房、智慧倉庫等
- 設備制造商,比如:鍋爐、液壓、鍛造、成型、清洗、機床(暫不支持CNC)等
- 政府單位,比如:智慧交通、環境監控、水利設施、災害監測、物聯網小鎮等
- 其他
怎么用?
- 作為物聯網后臺,創建工程,采集資料,自動控制
- 當作中臺,為其他系統或應用提供資料
- 直接當作APP或小程式后臺(APP和小程式DEMO有需要請聯系我們)
- 在專案現場做資料采集和自動控制(此種方式不推薦,建議使用PLC或MCU實作高速可靠的控制,另外物聯大師的嵌入式版本正在規劃當中)
典型的應用案例
- 專案部署在云服務器,使用資料透傳連接設備(支持大部分DTU和移動通訊模塊)
- 使用485總線連接標準的Modbus設備,比如:傳感器、繼電器(開關)
- 配置定時采集,合法檢查
- 創建工程,配置定時任務,自動控制,例外告警等
- 開放介面對接APP或小程式,實作遠程操控,定時,自動控制,查看歷史曲線等
- 使用大資料屏展示實時資料
如果以上正是您所需的,請聊聊合作(聯系方式在底部)
專案架構圖
【待補充】
技術堆疊
專案最初使用Golang進行開發,但是實測效果并不明顯,記憶體占用偏高,故而切換成更熟悉的Node.js,
Node底層使用的是高效的異步IO庫libuv,普通桌面機單核實測5w連接無壓力,云端就看帶寬了,
PS:Golang的協程模型在海量連接時并不理想,gnet庫是個好方案,
但是不支持Windows的IOCP網路模型,而且實測效果一般,曾經出現過崩潰的情況,
所以棄用,后續考慮使用Rust或C++實作更高性能的版本,
| 模塊 | 選型 | 說明 |
|---|---|---|
| 后端框架 | Koa、joi-router | Joi用于資料檢驗和在線swagger檔案 |
| 前端框架 | Angular和ZORRO | Angular集成度高,學習成本雖高,但使用方便 |
| 關系資料庫 | MongoDB | 和Node真是天生一對,不解釋 |
| 記憶體資料庫 | Redis | |
| 歷史資料庫 | InfluxDB2.0 | 2.0比較靈活,后臺也很強大 |
開發目標
- 資料通道
- TCP通道,以及注冊包和心跳包支持
- UDP通道,以及注冊包和心跳包支持
- 串口通道
- 遠程配置DTU(通過網路AT或config,用來修改串口引數、服務器地址等)
- 協議支持
- Modbus RTU、TCP(ASCII不常用,暫無必要)(推薦RTU轉TCP的網關,可以加速遠程控制)
- Omron PLC(hostlink, fins)
- Mitsubishi PLC (melsec)
- Siemens PLC (S7)
- 設備 & 采集 & 控制
- 定時輪詢
- 濾波(均值,最大,最小等)
- 變數映射
- 控制指令
- 定時任務
- 自動控制
- 存入歷史資料庫
- 報警器
- 插件
- MongoDB
- Redis
- InfluxDB 2.0(新版本比較靈活,操作方便,后臺可以直接檢索資料)
- 語音通知(目前使用騰訊云,阿里云暫停服務)
- 短信通知
- 微信公眾號和小程式
- 開放介面
- 其他功能
- 虛擬串口
- 資料透傳(方便遠程除錯)
- 監聽例外(使用WebSocket)
其他
- 專案的早期和支線版本已經在實際的養豬物聯網和養魚物聯網專案中使用,效果良好
- 專案主線還在待續開發中,有興趣的小伙伴可以加入進來
- 開源版本并不適合高頻資料采集(雖然支持),如有需求請移步高性能版:iot-master-pro
- 開源版本限制單機單核,有5W+連接需求請使用商業版(支持多機多核)
聯系方式
- 郵箱:jason@zgwit.com
- 手機:15161515197(微信同號)

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/294049.html
標籤:其他
上一篇:大一入門物聯網工程
