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