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