其實你被標題黨騙了,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燈的亮滅。