DIY的智能設備聯網,試試這個開源的MQTT庫吧!

之前用ESP8266實現了在局域網的一些控制功能,想要真正的實現遠程控制,還是要把8266接入到英特網中去,那樣我們才能夠體驗更多的互聯網帶來的便利。

DIY的智能設備聯網,試試這個開源的MQTT庫吧!

互聯網控制

那麼要在互聯網中控制8266該如何實現呢?大概的思路就是要把設備接入雲服務器,通過雲服務器實現遠程數據交互。本人的網絡知識比較匱乏,找了很多辦法,看了很多文檔,全都雲遮霧罩的,令人摸不著頭腦;後來聽說現在MQTT比較流行,就轉而查閱MQTT相關資料,感謝互聯網,感謝開源的大神,居然有支持ARDUINO IDE的MQTT庫!

下載地址:https://github.com/knolleary/pubsubclient

下載完庫,拷貝到libraries文件夾下,打開ARDUINO IDE(安裝好8266庫的),然後選擇“文件”->“示例”->"PubSubClient"->"mqtt_esp8266":

DIY的智能設備聯網,試試這個開源的MQTT庫吧!

esp8266的MQTT庫

該實例實現了簡單的MQTT通訊,只要簡單的更改代碼即可:

DIY的智能設備聯網,試試這個開源的MQTT庫吧!

設置WIFI用戶名和密碼

“broker.mqtt-dashboard.com”是一個測試服務器,可以直接使用;

編譯並上傳代碼,就可以測試了,打開串口監視器,就可以看到來自服務器的推送消息:"Message arrived [inTopic] 0"。

不過這個服務器不是很穩定,經過一番查詢,又發現了一個專門提供MQTT服務的網站:cloudMQTT.com,簡單註冊、設置之後,果然可以跑通了!雖然免費的資源比較可憐,但是足夠一般的控制使用了!

下面簡單介紹一下步驟:

1打開cloudMQTT.com網站,點擊“Control Panel”進入註冊頁面;

2在Sign up下面輸入你的郵箱地址,然後點擊後面的sign up按鈕;發送確認連接到你的郵箱,激活即可;

3登陸後,點擊“Create”按鈕創建新的實例,選擇“Cute Cat”類型(免費服務,其他兩個是收費的),同時支持10個連接;

4創建成功後,點擊“Details”進入控制檯,這裡要記住屬於自己的4個關鍵參數:Server,User,Password和Port,再點擊“WebSockets UI”進入監控界面;

5將上一步的參數分別填入到8266的程序當中去:

const char* mqtt_server = Server;

...

if (client.connect(clientId.c_str(),User,Password)) {...}

...

client.setServer(mqtt_server, Port);

ok,編譯下載,打開串口監視器,按下復位鍵,然後觀察數據:

服務器獲得數據:

DIY的智能設備聯網,試試這個開源的MQTT庫吧!

服務器端獲取的數據

8266獲得數據:

DIY的智能設備聯網,試試這個開源的MQTT庫吧!

串口監視器顯示本地獲取數據

經過測試,使用該MQTT庫,可以輕鬆地實現設備和服務器之間、設備和設備之間的數據通訊,這為我們之後的智能設備DIY做好了鋪墊。

希望我的分享為大家帶來幫助,歡迎大家多評論,多交流!


分享到:


相關文章: