三劍客!玩轉MQTT broker服務(wù)器!
問(wèn): 用樹(shù)莓派、PyPortal Titano和machinechat JEDI One設置和測試MQTT broker服務(wù)器
本文引用地址:http://dyxdggzs.com/article/202408/461791.htm項目概述:
本項目使用machinechat的 JEDI One 物聯(lián)網(wǎng)數據管理軟件在樹(shù)莓派4上設置了一個(gè)物聯(lián)網(wǎng)MQTT broker 服務(wù)器。
JEDI One包括一個(gè)數據收集器,可以將其配置為MQTT broker 服務(wù)器,外部客戶(hù)機設備可以向其發(fā)布和(或)訂閱JEDI One上的主題。為了測試MQTT broker 服務(wù)器,將Adafruit PyPortal Titano設置為客戶(hù)端設備,該設備通過(guò)WiFi訂閱和發(fā)布樹(shù)莓派上的MQTT broker 服務(wù)器。
Raspberry Pi 4 Model B
ADAFRUIT PYPORTAL TITANO - - Arduino IDE,電路Python入門(mén)套件
項目背景
MQTT(消息隊列遙測傳輸) 是一個(gè)開(kāi)放的OASIS和ISO標準,它定義了輕量級發(fā)布-訂閱網(wǎng)絡(luò )協(xié)議,用于在設備之間傳輸消息。主要包括兩種類(lèi)型的網(wǎng)絡(luò )實(shí)體: 一個(gè)消息代理 和 一些客戶(hù)端 。machinechat的JEDI One物聯(lián)網(wǎng)平臺包括一個(gè)數據收集器,可以配置為MQTT消息代理。外部客戶(hù)機設備可以配置為在JEDI One上發(fā)布數據或訂閱主題(包括從任何來(lái)源進(jìn)入JEDI One的所有數據,而不僅僅是MQTT)。JEDI One要求發(fā)布消息采用JSON有效負載格式,并以JSON有效負載格式提供訂閱消息。
所需軟件
JEDI One:是一款即用型物聯(lián)網(wǎng)數據管理軟件解決方案。功能包括:收集來(lái)自傳感器、設備和機器的數據;構建直觀(guān)的實(shí)時(shí)和歷史數據以及系統視圖儀表板;創(chuàng )建規則,自動(dòng)監控和響應數據情況;通過(guò)電子郵件和短信接收警報通知。
CircuitPython :是Adafruit的MicroPython分支,旨在簡(jiǎn)化低成本微控制器的實(shí)驗和教育。不需要編譯器、鏈接器或IDE。
實(shí)現
在這個(gè)項目中,JEDI One應用程序已經(jīng)預先安裝在樹(shù)莓派上,并且已經(jīng)通過(guò)HTTP數據收集器接收了來(lái)自外部傳感器的數據。接著(zhù)設置了JEDI OneMQTT數據收集器。為了對系統進(jìn)行了測試,PyPortal Titano被配置為訂閱和發(fā)布MQTT broker服務(wù)器上的主題,而CircuitPython則用于在PyPortal上實(shí)現應用程序代碼。
JEDI One MQTT broker 服務(wù)器設置步驟:
1 - 如果machinechat JEDI One尚未安裝在樹(shù)莓派上,請參見(jiàn)以下內容:
獲得樹(shù)莓派版本的JEDI One DK-JEDIONE-RP
安裝在樹(shù)莓派上, 參見(jiàn) 樹(shù)莓派-安裝JEDI One服務(wù)
2 - 配置MQTT broker 服務(wù)器在JEDI One“數據收集器”選項卡中,選擇“添加收集器”并進(jìn)行配置。命名“數據收集器”,并為“收集器類(lèi)型”選擇“MQTT Broker”。MQTT采集器設置截圖中的“監聽(tīng)IP”是JEDI One樹(shù)莓派的IP地址,“監聽(tīng)端口”是1883。(注:以下是未加密配置的示例,但可以按照machinechat產(chǎn)品指南- 如何生成TLS證書(shū)和密鑰 中所示的方式配置TLS加密)設置PyPortal CircuitPython MQTT客戶(hù)端測試應用程序
Pyportal測試應用程序有三部分:
1. MQTT客戶(hù)端,訂閱正在JEDI One上收集的現有傳感器數據2. 將傳感器數據發(fā)布到JEDI One的MQTT客戶(hù)端
3. 顯示應用程序,將訂閱的傳感器數據打印到PyPortal Titano顯示器
1 - 在PyPortal Titano上設置CircuitPython。 參見(jiàn)鏈接 CircuitPython |Adafruit PyPortal Titano | Adafruit Learning System(注意:本項目使用CircuitPython 6.3.0)
2 - 安裝應用程序所需的庫, 詳情請參考 這里 。
總結
machinechat的JEDI One數據管理軟件和樹(shù)莓派的結合,形成了一個(gè)獨立的、低成本的、易于使用的物聯(lián)網(wǎng)MQTT broker 服務(wù)器平臺。該平臺可以很容易地將客戶(hù)端設備進(jìn)行配置,將數據訂閱或發(fā)布到MQTT代理服務(wù)器的主題上,無(wú)需第三方云服務(wù)或互聯(lián)網(wǎng)連接。通過(guò)這個(gè)平臺,設備之間可以輕松互相通信和共享數據,從而實(shí)現智能化管理。
評論