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