MQTT 介紹
MQTT代表消息隊列遙測傳輸,是一種網(wǎng)絡(luò)消息協(xié)議,通常用于物聯(lián)網(wǎng)設(shè)備之間的消息傳輸。
為了讓我們的Raspberry Pi支持MQTT協(xié)議,我們將使用一個名為Mosquitto的服務(wù)器軟件。
Mosquitto 是一個消息代理,它實現(xiàn)了多個版本的 MQTT 協(xié)議,包括最新的 5.0 版本。
MQTT協(xié)議的工作原理是讓客戶機充當(dāng)發(fā)布者和訂閱者。發(fā)布者將消息發(fā)送給充當(dāng)中介的代理。
訂閱者連接到MQTT代理并閱讀特定主題下廣播的消息。
您可以使用MQTT讓多個傳感器將它們的數(shù)據(jù)發(fā)送到您的Raspberry Pi的MQTT代理,然后客戶端設(shè)備可以接收數(shù)據(jù)。
如果你想了解更多關(guān)于MQTT協(xié)議的信息,以及為什么它非常適合樹莓Pi等物聯(lián)網(wǎng)設(shè)備,請務(wù)必查看MQTT官方網(wǎng)站。
在樹莓派上安裝 Mosquitto
1,首先 ,需要最新的系統(tǒng),輸入以下命令:
sudo apt update sudo apt upgrade
2,運行Mosquitto和Mosquitto客戶端的安裝命令,這樣方便在樹莓派上 進(jìn)行連接測試:
sudo apt install mosquitto mosquitto-clients
在安裝過程中,包的管理器會自動配置 Mosquitto 服務(wù)器在開機時啟動。
安裝完成,此時,您將在您的設(shè)備上啟動并運行 Mosquitto MQTT 代理。
3,您可以使用以下命令驗證它是否已安裝并正在運行。
sudo systemctl status mosquitto
此命令將返回“mosquitto”服務(wù)的狀態(tài)。
如果服務(wù)已正常啟動,您應(yīng)該會看到文本active (running)。
測試MQTT
我們的下一步將是測試該服務(wù)是否正常工作,并且現(xiàn)在在我們的 Raspberry Pi 上充當(dāng) MQTT 代理。
為此,我們將使用本指南前面安裝的 Mosquitto 客戶端。
對于本節(jié),您將需要打開兩個終端會話到您的 Raspberry Pi(本地或通過 SSH)。
1.我們的首要任務(wù)是啟動訂閱者。
訂閱者將監(jiān)聽我們在 Raspberry Pi 上運行的 MQTT 代理。
我們可以使用我們之前為訂閱者安裝的 Mosquitto 客戶端來執(zhí)行此操作。
在下面的示例中,我們連接到一個localhost連接并等待來自代理的關(guān)于“mqtt/pimylifeup”主題的消息。
mosquitto_sub -h localhost -t "mqtt/pimylifeup"
使用“-h”參數(shù),您可以指定要連接的主機名。在我們的例子中,我們使用安裝在 Raspberry Pi 上的本地 MQTT 代理。
接下來,我們使用“-t”參數(shù)告訴 Mosquitto 訂閱者我們應(yīng)該從 MQTT 代理收聽什么主題。
對于我們的示例,我們正在收聽一個名為“mqtt/pimylifeup”的主題。
2.現(xiàn)在我們已經(jīng)加載了一個客戶端并正在監(jiān)聽消息,
讓我們嘗試向它發(fā)布一個消息。
我們需要使用之前安裝在 Raspberry Pi 上的 MQTT 發(fā)布者客戶端向主題發(fā)布消息。
運行以下命令將消息“Hello World”發(fā)布到我們localhost服務(wù)器的“mqtt/pimylifeup”主題下。
mosquitto_pub -h localhost -t "mqtt/pimylifeup" -m "hello lingshunlab.com"
其中兩個參數(shù)與前面的命令相同,“-h”指定要連接的服務(wù)器,“-t”指定要發(fā)布到的主題。
我們在這里使用的另一個參數(shù)是“-m”參數(shù)。此參數(shù)允許您指定要發(fā)送到 Raspberry Pi MQTT 代理的消息。
3.回到您啟動 Mosquitto 發(fā)布器的終端會話,
您現(xiàn)在應(yīng)該會看到 您的消息出現(xiàn)。
因此,如果您按照我們的示例進(jìn)行操作,您應(yīng)該會在命令行中看到以下文本。
hello lingshunlab.com
測試,mqtt服務(wù)器成功。
如果您將mqtt與UFW 等防火墻一起使用,請確保打開端口1883。
設(shè)置遠(yuǎn)程訪問(無身份驗證)
要啟用遠(yuǎn)程訪問以便我們可以與其他物聯(lián)網(wǎng)設(shè)備進(jìn)行通信,我們需要編輯/創(chuàng)建一個配置文件。
1)Mosquitto Broker 啟用遠(yuǎn)程訪問(無身份驗證)
運行以下命令打開mosquitto.conf文件文件。
sudo nano /etc/mosquitto/mosquitto.conf
2 )使用箭頭鍵移動到文件末尾并粘貼以下兩行:
listener 1883 allow_anonymous true
最后如下圖:
保存,推出。
3)重啟mosquitto
為了使配置生效,需要重啟mosquitto
sudo systemctl restart mosquitto
或者,直接重啟樹莓派
sudo reboot
這樣就遠(yuǎn)程主機就可以通過ip地址遠(yuǎn)程訪問mqtt服務(wù)器了。
審核編輯:劉清
-
傳感器
+關(guān)注
關(guān)注
2542文章
50236瀏覽量
750034 -
SSH
+關(guān)注
關(guān)注
0文章
181瀏覽量
16260 -
Raspberry Pi
+關(guān)注
關(guān)注
1文章
553瀏覽量
22136 -
樹莓派
+關(guān)注
關(guān)注
116文章
1681瀏覽量
105388 -
MQTT
+關(guān)注
關(guān)注
5文章
640瀏覽量
22352
原文標(biāo)題:Raspberry Pi 樹莓派上安裝 Mosquitto部署MQTT服務(wù)器
文章出處:【微信號:凌順實驗室,微信公眾號:凌順實驗室】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論