新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 通過物聯網管理多臺MQTT設備-基于米爾T527開發板

        通過物聯網管理多臺MQTT設備-基于米爾T527開發板

        作者: 時間:2024-05-10 來源:EEPW 收藏

        本篇測評由優秀測評者“JerryZhen”提供。

        本文引用地址:http://www.104case.com/article/202405/458581.htm

        本文將介紹基于電子MYD-L開發板的網關方案測試。

        一、系統概述

        基于-全志 設計一個簡易的物聯網網關,該網關能夠管理多臺,通過MQTT協議對設備進行讀寫操作,同時提供HTTP接口,允許用戶通過HTTP協議與網關進行交互,并對設備進行讀寫操作。

        二、系統架構

        1.網關服務:基于FastAPI框架構建的Web服務,提供HTTP接口。

        2.MQTT客戶端:負責與通信,管理設備連接、消息發布和訂閱。

        3.設備管理:維護一個設備列表,記錄設備的基本信息和狀態。

        4.數據存儲:使用內存或數據庫存儲設備數據,確保數據持久化。

        三、組件設計

        1.MQTT組件:

        ●   負責與MQTT broker建立連接。

        ●   訂閱設備主題,接收設備發送的消息。

        ●   發布消息到設備,實現遠程控制。

        2.設備管理組件:

        ●   維護一個設備列表,記錄設備的唯一標識符(如設備ID)、MQTT主題、連接狀態等信息。

        ●   提供設備增刪改查的方法。

        3.HTTP組件:

        ●   基于FastAPI定義HTTP接口。

        ●   接收用戶請求,調用MQTT組件和設備管理組件進行相應操作。

        ●   返回操作結果給用戶。

        四、接口設計

        1.設備列表:

        ●   GET /devices:返回所有設備的列表。

        ●   POST /devices:添加新設備到網關。

        ●   DELETE /devices/{device_id}:從網關中刪除指定設備。

        2.設備詳情:

        ●   GET /devices/{device_id}:返回指定設備的詳細信息。

        3.設備數據:

        ●   GET /devices/{device_id}/data:獲取指定設備的最新數據。

        ●   POST /devices/{device_id}/data:發送數據到指定設備。

        4.設備控制:

        ●   POST /devices/{device_id}/control:發送控制命令到指定設備。

        五、數據結構設計

        1.設備信息:

        ●   設備ID (device_id):唯一標識設備的字符串。

        ●   MQTT主題 (mqtt_topic):設備在MQTT broker上的主題。

        ●   連接狀態 (connection_status):表示設備是否在線的布爾值。

        ●   其他設備屬性(如名稱、描述等)。

        2.設備數據:

        ●   設備ID (device_id):關聯設備信息的設備ID。

        ●   時間戳 (timestamp):數據發送或接收的時間。

        ●   數據內容 (data):設備發送或接收的具體數據,可以是JSON格式或其他格式。

        六、安全性考慮

        ●   使用HTTPS協議提供安全的HTTP通信。

        ●   實現用戶認證和授權機制,確保只有授權用戶可以訪問和操作設備。

        ●   對于敏感操作(如刪除設備),要求用戶進行二次確認或提供額外的安全措施。

        七、部署與擴展

        ●   使用Docker容器化部署網關服務,便于管理和擴展。

        ●   根據需要,可以水平擴展網關實例以處理更多的設備連接和請求。

        八、實現步驟

        1.安裝所需的Python庫:fastapi, uvicorn, paho-mqtt等。

        2.創建FastAPI應用并定義路由。

        3.實現MQTT組件,包括與MQTT broker的連接、訂閱、發布等功能。

        4.實現設備管理組件,維護設備列表并提供增刪改查的方法。

        5.實現HTTP組件,調用MQTT組件和設備管理組件處理用戶請求。

        6.編寫測試代碼,驗證網關的各項功能是否正常工作。

        7.部署網關服務并監控其運行狀態。

        該設計方案僅僅是概述,具體實現細節可能需要根據實際需求和項目環境進行調整和優化。在實際開發中,還需要考慮異常處理、日志記錄、性能優化等方面的問題?;谏鲜鲈O計方案,以下是一個簡化版的參考代碼,展示了如何使用FastAPI和paho-mqtt庫來創建一個物聯網網關。需要注意,示例中不包含完整的錯誤處理、用戶認證和授權機制,這些在實際生產環境中都是必不可少的。依賴的主要庫版本:

        fastapi==0.108.0

        paho-mqtt==1.6.1

        網關模擬代碼gateway.py:

        運行網關代碼,打開網頁得到api接口:

        1715351976271452.png

        通過api分別添加設備1和設備2,

        1715351994982340.png

        在另外兩個控制臺中分別運行模擬設備1和模擬設備2的代碼通過網頁API向設備1發送數據

        1715352012203924.png

        通過網頁API獲得設備回復的數據,設備代碼中只是簡單的把網關發過來的數據進行回傳

        1715352035829815.png

        我們在網關的后臺可以看到完整的數據流

        1715352057410384.png

         至此一個簡易的網關已經實現了,接下來將會嘗試實現樓宇里的最常見的bacnet設備進行通訊管理。

        1715352077276570.png

        MYC-L核心板及開發板

        首發全志T527,八核A55賦能邊緣計算

        全志T527處理器,八核A55,高效賦能邊緣計算;

        多媒體功能強大:具備G57 GPU、4K編解碼VPU、HiFi4 DSP,支持4~6路Camera;

        支持多種顯示接口:HDMI、DP、LVDS、MIPI-DSI和RGB并口,支持4K+1080P雙異顯;

        豐富的通訊接口:2*GE、2*CAN、PCIE/USB3.0、2*USB2.0、10*UART、30*PWM、4*SPI、9*I2C等;

        T527是真工業級-40℃~+85℃;

        超緊湊LGA 381pin封裝。

        1715352105651466.png



        關鍵詞: MQTT設備 米爾 T527

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 庆元县| 龙泉市| 米脂县| 静海县| 三台县| 巴东县| 丰顺县| 河津市| 南江县| 曲周县| 北票市| 罗山县| 丰顺县| 大悟县| 阳信县| 会昌县| 宁陵县| 会同县| 云安县| 泗水县| 微山县| 奉化市| 肇州县| 五原县| 米易县| 孝昌县| 中宁县| 子洲县| 永川市| 呼玛县| 温宿县| 邵阳市| 阿瓦提县| 黄梅县| 曲水县| 平阳县| 东阿县| 修文县| 泾阳县| 东乌珠穆沁旗| 南皮县|