esp8266-01/01s接入巴法云,并遠程控制 第一 下載ESP8266-01示例(arduino ide 編程開發(fā))第二 修改demo例程第三 app inventor 開發(fā)第四 微信小程序控制
原理簡述:利用發(fā)布訂閱模式,即:ESP8266-01訂閱了一個主題,再利用app inventor 編寫得app 往這個主題發(fā)布消息,由于ESP8266 -01訂閱了這個消息,所以就可以收到app發(fā)布得消息,從而執(zhí)行相應(yīng)得動作。
基于TCP長連接的模式,ESP8266通過TCP長連接,連接到服務(wù)器,app也同樣通過TCP長連接,連接到服務(wù)器,兩者通過主題(topic)進行耦合。
第一 下載ESP8266-01示例(arduino ide 編程開發(fā))下載地址: 點擊下載
本demo 是利用arduino IDE開發(fā),關(guān)于arduino IDE 的ESP8266環(huán)境配置可參考:環(huán)境配置: 點擊跳轉(zhuǎn)
安裝好esp8266開發(fā)環(huán)境后,esp8266-01/01s 選擇Generic ESP8266 Module開發(fā)板,其他默認即可。
第二 修改demo例程
需要修改的信息有WIF名稱,WIFI密碼,用戶私鑰UID,設(shè)備主題topic。
用戶私鑰可以巴法云控制臺點擊跳轉(zhuǎn)獲取,注冊綁定郵箱即可在巴法創(chuàng)客云控制臺點擊跳轉(zhuǎn)獲取。
登陸完成后,可在控制臺看到自己的私鑰UID,如圖所示:
創(chuàng)建主題,在控制臺,可創(chuàng)建主題。
第一輸入主題,字母或數(shù)字或字母+數(shù)字組合。點擊創(chuàng)建主題。
WIFI名稱為自己的路由器WIFI名稱,區(qū)分大小寫,寫錯會導(dǎo)致連接不上網(wǎng)絡(luò)的。
關(guān)于主題topic:主題可在控制臺新建,字母+數(shù)字自定義組合即可。如下,例程的主題為light002。
//********************需要修改的部分*******************//#define DEFAULT_STASSID "newhtc" //WIFI名稱,區(qū)分大小寫,不要寫錯#define DEFAULT_STAPSW "qq123456" //WIFI密碼String UID = "7d54f85af42976ee3c2693e692a6bb59"; //用戶私鑰,可在控制臺獲取,修改為自己的UIDString TOPIC = "light002"; //主題名字,可在控制臺新建const int LED_Pin = 0; //單片機LED引腳值,GPIO0引腳//**************************************************//在本demo中是控制的ESP8266-01的0 口。
//單片機LED引腳值const int LED_Pin = 0;推薦使用下載器下載:插上之后,arduino IDE 中找到下載器端口端口就行,在ide 導(dǎo)航欄-“工具”-“端口”,都設(shè)置好后,點下載燒錄就行了。
下載程序到ESP8266中,如果WIFI信息沒有填錯的話ESP8266就會自動連接到云服務(wù)器上。
開發(fā)者可進行測試,測試方法,在控制臺該主題處推送消息,可觀察ESP8266是否收到該消息。可通過串口工具查看輸出。
消息檢測代碼默認為(在例程147行):
//********************可根據(jù)需要修改的部分*******************// if((TcpClient_Buff.indexOf("&msg=on") > 0)) { turnOnLed(); }else if((TcpClient_Buff.indexOf("&msg=off") > 0)) { turnOffLed(); }//**************************************************//當檢測到消息為on 時,執(zhí)行開燈,當檢測到消息為off 時,執(zhí)行關(guān)燈。開發(fā)者可在控制臺推送on或者off,然后檢測esp8266是否收到,如果收到,說明正??蛇M行下一步app編寫。
說明:消息不單單局限于on或off,開發(fā)者可以張大腦洞隨意定義的,你推送什么消息,在單片機處做什么消息檢測就可以了。例如app推送json數(shù)據(jù),esp8266就可以收到j(luò)son數(shù)據(jù)包。
第三 app inventor 開發(fā)原理:同樣通過TCP 長連接,連接到服務(wù)器,當按下按鈕,就向服務(wù)器該主題推送個消息,ESP8266就可以收到該消息了。
簡介:Google App Inventor是一個完全在線開發(fā)的Android編程環(huán)境,拋棄復(fù)雜的程式代碼而使用積木式的堆疊法來完成您的Android程式。 而且這款編程軟件不一定非要是專業(yè)的研發(fā)人員,甚至根本不需要掌握任何的程序編制知識。因為這款軟件已經(jīng)事先將軟件的代碼全部編寫完畢,用戶只需要根據(jù)自己的需求向其中添加服務(wù)選項即可。也就是我們所要做的只是寫簡單的代碼拼裝程序。
安裝appInventor 點擊安裝
本操作只提供一個app的demo,界面過于丑陋,大家可自由發(fā)揮更改界面。
demo 下載點擊下載
頂部導(dǎo)航欄,依次點擊(項目–>導(dǎo)入項目aia),選擇上一步驟下載的aia文件導(dǎo)入即可。點擊導(dǎo)入的項目,即可看到控制面板,面板主要分為在組建設(shè)計和邏輯設(shè)計,用戶可在右上角進行模式切換。
(組建設(shè)計)面板可以向屏幕添加組建以進行二次開發(fā)。(邏輯面板)則進行相關(guān)邏輯編寫。
導(dǎo)入aia文件后,如果只是簡單使用,只需要修改兩個地方,一個是主題名字,一個是UID,均需開發(fā)者置換成自己的topic(主題名字)和UID(用戶私鑰),均可在創(chuàng)客云控制臺獲取點擊跳轉(zhuǎn)。
此處的主題topic應(yīng)該和ESP8266程序里面設(shè)定的主題修改為一樣,不然會收不到消息。UID修改為自己的私鑰。
控制邏輯
當按鈕’打開’被點擊,發(fā)送on,ESP8266即可收到on消息
具體發(fā)送的消息,開發(fā)者可自定義,例程中只是發(fā)送簡單的字符串,開發(fā)者也可發(fā)送json之類的,
不過在ESP8266端要對json消息體進行解析。更多指令格式說明:接入文檔
如果想控制家里的燈具,加個繼電器即可,通過引腳輸出高低電平控制繼電器的開和關(guān),從而達到控制220v交流電的效果。繼電器需要用3.3V繼電器。
如果使用下圖這種繼電器模塊,他們的控制引腳就是0腳,上述程序可以直接使用,插上就行了,可以在控制臺推送on或者off測試,或者使用app 或小程序進行控制。
第四 微信小程序控制
教程:https://bemfa.blog.csdn.net/article/details/107019002