MicroPython入坑記(四)利用MQTT實現0編程遠程控制(上)(用安卓手機)


其實你被標題黨騙了,0編程那是不可能的( ̄▽ ̄)"

不過也算近似零編程了哈哈

MQTT我就不詳細介紹了,畢竟看到這個標題進來的一般也就有些基礎知識了。簡單說說:

MQTT是IBM發布的一個物聯網協議,怎么說呢,微信大家都知道,微信是大家互相聯系用的,MQTT其實就類似一個物聯網的微信,各個設備間可以通過MQTT來溝通信息。

其實設備間聯系的協議有很多,比如TCP/UDP,HTTP等。MQTT作為很晚才出現的后輩,當然是解決以前協議的痛點的。

1.TCP/UDP(SOCKET通訊)這個是物聯網甚至是互聯網的基礎。在應用層面,這算底層了,優點當然是靈活,其實靈活,往往就意味着難用(比如C++就很靈活)你如果想開發一個基於TCP通訊,你需要考慮通訊的方方面面,比如斷線重連,比如心跳包,比如加密傳輸,這些都得自己來實現,可能會占用你大量的調優時間。

2.HTTP,HTTP協議大家都知道是網頁傳輸協議,其實網頁傳輸是HTTP的一種應用而已,HTTP屬於對TCP的高層封裝,是一種短鏈接協議,可用於設備間連接。基於HTTP協議的連接方式又有個名字叫RESTful,這個編程就簡單了,因為短鏈接么,就不用考慮啥斷線重連之類的了,並且python有urllib,requsets等庫,通訊就是一句代碼的事,簡單至極,但也有缺點:包頭太長,每次通訊都要重新連接一次。如果幾秒或者幾分鍾以上通訊一次還差不多,如果太過頻繁,不但浪費資源,也太占帶寬。

MQTT完美解決了上邊這些協議的痛點,並且由於是個標准,現在各種語言,乃至安卓、IOS上都有現成的客戶端,特別適合我這種懶得開發JAVA APP的懶人。這里介紹一個好用的安卓APP:ioT MQTT Panel,裝了這個APP,設置一下,就能通過MQTT控制設備了,下邊是我隨便做了個界面:

 

怎么樣?是不是有點意思,值得說的是: 這是完全不需要編寫代碼的裝上這個APP,設置一下就可以了,嗯這是跟我的樹莓派連接的:

樹莓派上我接了一個繼電器,一個超聲波測距儀,手機客戶端則是實時顯示樹莓派CPU溫度、超聲波測距的距離,以及控制繼電器吸合、斷開。

下一篇,我會實戰介紹下用這個APP控制ESP8266(nodemcu)來實現無線控制LED燈的亮滅。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM