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