如何將ESP32連接到MQTT代理
掃描二維碼
隨時(shí)隨地手機(jī)看文章
物聯(lián)網(wǎng)是一個(gè)與可通過(guò)互聯(lián)網(wǎng)訪問(wèn)的設(shè)備連接的系統(tǒng)。有許多云平臺(tái)和協(xié)議,MQTT是物聯(lián)網(wǎng)項(xiàng)目中使用最多的物聯(lián)網(wǎng)協(xié)議之一。在之前的教程中,我們已經(jīng)將MQTT與樹(shù)莓派和ESP8266連接起來(lái)?,F(xiàn)在,我們正在MQTT服務(wù)器和ESP32之間建立連接。
ESP32是流行的ESP8266 Wi-Fi模塊的繼承者,具有許多先進(jìn)的功能,例如該模塊是一個(gè)雙核32位CPU,內(nèi)置Wi-Fi和雙模藍(lán)牙,具有足夠數(shù)量的30個(gè)I/O引腳。
雖然MQTT代表消息隊(duì)列遙測(cè)傳輸,但它是一個(gè)我們可以作為客戶機(jī)發(fā)布和訂閱消息的系統(tǒng)。通過(guò)使用MQTT,您可以發(fā)送命令來(lái)控制輸出、讀取和發(fā)布來(lái)自傳感器的數(shù)據(jù)等等。MQTT中有兩個(gè)主要術(shù)語(yǔ),即客戶端和代理。
什么是MQTT客戶機(jī)和代理?
MQTT客戶機(jī):MQTT客戶機(jī)運(yùn)行MQTT庫(kù)并通過(guò)網(wǎng)絡(luò)連接到MQTT代理。發(fā)布者和訂閱者都是MQTT客戶機(jī)。發(fā)布者和訂閱者指的是客戶端是發(fā)布消息還是訂閱消息。
MQTT Broker:代理接收所有消息,過(guò)濾消息,確定誰(shuí)訂閱了每條消息,并將消息發(fā)送給這些訂閱的客戶機(jī)。
現(xiàn)在,在本教程中,我們將解釋如何使用ESP32和Arduino IDE庫(kù)連接到MQTT代理并訂閱主題。
組件的要求
?ESP32
?云MQTT
云MQTT帳戶設(shè)置
要在Cloud MQTT上建立一個(gè)帳戶,請(qǐng)瀏覽其官方網(wǎng)站(www.cloudmqtt.com)并使用您的電子郵件進(jìn)行注冊(cè)。
登錄后,點(diǎn)擊“+ Create New Instance”創(chuàng)建一個(gè)新實(shí)例。
現(xiàn)在輸入您的實(shí)例名稱,并在計(jì)劃選項(xiàng)中選擇“Cute Cat”。
在新選項(xiàng)卡中選擇區(qū)域并單擊“審查”。
您的實(shí)例已經(jīng)創(chuàng)建,您可以查看您的詳細(xì)信息,如用戶和密碼。
ESP32 MQTT代理代碼說(shuō)明
最后給出了將ESP32與MQTT代理連接的完整代碼。這里,我們使用Arduino IDE對(duì)ESP32進(jìn)行編程。首先,安裝WiFi.h庫(kù)和PubSubClient庫(kù)。
PubSubClient庫(kù)允許我們?cè)谥黝}中發(fā)布/訂閱消息。
現(xiàn)在為我們的WiFi和MQTT連接聲明一些全局變量。在以下變量中輸入您的WiFi和MQTT詳細(xì)信息:
在setup_wifi函數(shù)中,它會(huì)檢查WiFi是否聯(lián)網(wǎng),并給出IP地址并打印在串口監(jiān)視器上。
在下面的while循環(huán)函數(shù)中,它將連接到MQTT服務(wù)器并將其打印到串行監(jiān)視器上。這個(gè)進(jìn)程將在一個(gè)循環(huán)中運(yùn)行,直到它被連接。
現(xiàn)在我們將指定一個(gè)回調(diào)函數(shù),在這個(gè)函數(shù)中,我們將首先打印主題名稱,然后打印接收到的消息。
使用ESP32測(cè)試MQTT
現(xiàn)在要測(cè)試代碼,使用Arduino IDE將此代碼上載到ESP32并打開(kāi)串行監(jiān)視器。
要訂閱和發(fā)布MQTT主題,將使用b谷歌Chrome應(yīng)用程序MQTTlens。你可以從這里下載應(yīng)用程序。
啟動(dòng)此應(yīng)用程序并設(shè)置與MQTT代理的連接。要設(shè)置連接,單擊“連接”,并在下一個(gè)窗口中輸入您的連接詳細(xì)信息從云MQTT帳戶。
保存此連接,現(xiàn)在可以使用ESP8266在MQTT代理上訂閱和發(fā)布消息。
若要訂閱或發(fā)布消息,請(qǐng)?jiān)谟嗛喓桶l(fā)布選項(xiàng)中輸入主題名稱,并輸入默認(rèn)消息。
您的信息將顯示在串行監(jiān)視器上,如上圖所示。
因此,我們已經(jīng)成功地將MQTT代理與ESP32連接起來(lái)。請(qǐng)繼續(xù)關(guān)注我們更多令人驚嘆的物聯(lián)網(wǎng)項(xiàng)目。
本文編譯自iotdesignpro