99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何用一個(gè)ESP8266加上STM32單片機(jī)做一個(gè)小產(chǎn)品?

GReq_mcu168 ? 來(lái)源:果果小師弟 ? 作者:果果小師弟 ? 2022-07-05 15:50 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

【一】

說(shuō)起學(xué)習(xí)物聯(lián)網(wǎng),相信大家最先想到的應(yīng)該就是ESP8266了吧?這個(gè)模塊可以連網(wǎng)(就是連接你家中的路由器),也可以作為一個(gè)熱點(diǎn)來(lái)讓你的手機(jī)連接它,是不是很奇妙?

雖然ESP8266程序和相關(guān)的產(chǎn)品已經(jīng)十分成熟了,但還是有一些剛?cè)腴T的小伙伴不知道怎么學(xué)。比如,如何用一個(gè)ESP8266加上STM32單片機(jī)做一個(gè)小產(chǎn)品?這個(gè)學(xué)習(xí)的路線又是怎樣的?我們應(yīng)該如何入門?對(duì)此,我建議:1、先單獨(dú)學(xué)習(xí)ESP8266模塊,搞懂他的AT指令集,通過(guò)串口調(diào)試助手和網(wǎng)絡(luò)調(diào)試助手單獨(dú)把這個(gè)模塊搞明白。2、學(xué)習(xí)mqtt協(xié)議,為啥第二步要學(xué)習(xí)mqtt協(xié)議呢?因?yàn)槲覀僥sp8266是要連接服務(wù)器的,簡(jiǎn)單地說(shuō)mqtt就是ESP8266與服務(wù)器之間的通信協(xié)議,這個(gè)協(xié)議不難,我已經(jīng)寫好了筆記到時(shí)候在這個(gè)公眾號(hào)直接發(fā)布就可以了。3、就是要學(xué)習(xí)android studio自己做一個(gè)app。既然是物聯(lián)網(wǎng)控制,當(dāng)然有app了,雖然阿里云還有機(jī)智云有直接可以用的app,但作為一個(gè)電子愛(ài)好者,不能僅限于云智能今天,就帶你用STM32和ESP8266一個(gè)比如溫濕度顯示,并在手機(jī)app上實(shí)時(shí)。

學(xué)習(xí)方法:
1、多去各大論壇查資料去B站找相關(guān)的視頻;
2、學(xué)會(huì)舉一反三,讓你點(diǎn)亮一個(gè)LED,就要會(huì)滅一個(gè)led;
3、多動(dòng)手,程序不是寫出來(lái)的,是調(diào)出來(lái)和改出來(lái)的。

ESP8266 01S簡(jiǎn)介:

使用AT功能之前,模塊內(nèi)必須有AT的固件,每個(gè)模塊的生產(chǎn)廠商都會(huì)對(duì)樂(lè)鑫官方的AT固件做一些修改和刪減,但是其最核心的AT指令功能都是相同的。我們買的ESP8826模塊一般都有刷好的固件,所以不用自己刷固件。

ESP-01S WiFi模塊是一款低功耗高性價(jià)比的嵌入式無(wú)線網(wǎng)絡(luò)控制模塊??蓾M足智能電網(wǎng)、樓宇自動(dòng)化、安防、智能家居、遠(yuǎn)程醫(yī)療等物聯(lián)網(wǎng)應(yīng)用的需求。該模塊核心處理器ESP8266在較小尺寸封裝中集成了業(yè)界領(lǐng)先的Tensilica L106超低功耗32位微型MCU,帶有16位精簡(jiǎn)模式,主頻支持80MHz和160MHz,支持RTOS,板載天線。該模塊支持完整的TCP/IP協(xié)議棧。用戶可以使用該模塊為現(xiàn)有的設(shè)備添加聯(lián)網(wǎng)功能,也可以構(gòu)建獨(dú)立的網(wǎng)絡(luò)控制器。

(1)模塊供電電壓為直流3.3V、電流為500mA以上。

(2Wi-Fi模塊IO最大輸出電流為12mA。

(3)Wi-Fi模塊NRST管腳低電平有效;EN使能管腳高電平有效。

(4)Wi-Fi模塊進(jìn)入升級(jí)模式:GPIO0處于低電平,然后模塊復(fù)位上電;Wi-Fi模塊進(jìn)入正常工作模式:GPIO0處于高電平,模塊復(fù)位上電。

(5)Wi-Fi模塊的RXD接外部MCU的TXD,Wi-Fi模塊的TXD接外部MCU的RXD。

e1737458-fc34-11ec-ba43-dac502259ad0.png

e18c2b74-fc34-11ec-ba43-dac502259ad0.png ?e1a138e8-fc34-11ec-ba43-dac502259ad0.png

ESP8266刷固件:

刷固件可以用杜邦線,也可以用刷固件的模塊(淘寶上幾塊錢就可以買到),如下圖所示:e1bc817a-fc34-11ec-ba43-dac502259ad0.png

AT指令控制ESP8266模組:

樂(lè)鑫官方的AT指令有將近100條,但常用的就十幾條,理解起來(lái)也非常簡(jiǎn)單,現(xiàn)在舉例一些常用指令,并使用這些指令一步一步的通過(guò)TCP連接到遠(yuǎn)程的服務(wù)器實(shí)現(xiàn)收發(fā)數(shù)據(jù),更多AT指令可以查閱《ESP8266 AT指令集手冊(cè)》。

e1d2f126-fc34-11ec-ba43-dac502259ad0.png總結(jié)AT指令的構(gòu)成就是,每條指令要以AT開(kāi)始,后面跟要查詢(讀)或者要設(shè)置寫)的參數(shù),例如查詢WIFI模式對(duì)應(yīng)的指令為AT+CWMODE?,設(shè)置WIFI模式為AT+CWMODE=3。另外,要求的回車換行符結(jié)尾是說(shuō)要在待發(fā)送的數(shù)據(jù)后面追加 ,即十六進(jìn)制的0x0D 0x0A。注意:在使用串口調(diào)試助手發(fā)送AT指令時(shí),只需要在待發(fā)送指令后面加回車即可,大家可以勾選“按十六進(jìn)制發(fā)送”,觀察數(shù)據(jù)后面是否追加了0x0D 0x0A。

1、測(cè)試模塊是否正常

e1f3ed36-fc34-11ec-ba43-dac502259ad0.gif該指令通常在開(kāi)機(jī)后查詢模塊是否正常啟動(dòng),如果回復(fù)OK,則表示為正常啟動(dòng)。

2、開(kāi)啟/關(guān)閉回顯

從上圖可以看出,我們發(fā)送了一個(gè)AT,模塊回復(fù)了AT OK,即模塊將發(fā)送過(guò)來(lái)的指令原封不動(dòng)的先復(fù)述了一遍后接著發(fā)送有效回復(fù),我們稱這種復(fù)述為回顯,關(guān)閉回顯(發(fā)送ATE0)后如再次發(fā)送AT,則只回復(fù)OK。如下圖所示:

e2241452-fc34-11ec-ba43-dac502259ad0.gif

3、設(shè)置AP模式及AP參數(shù)

WIFI模式有兩種,一種叫AP模式,一種叫Station模式,AP就是我們平時(shí)所說(shuō)的熱點(diǎn),如WIFI路由器,開(kāi)了熱點(diǎn)的手機(jī),或者是公共熱點(diǎn)等,這些AP設(shè)備可以允許其他設(shè)備(如手機(jī),筆記本電腦等)輸入熱點(diǎn)名和密碼(也可不設(shè)置密碼)后接入,Station則是前面說(shuō)的連接AP的設(shè)備,如:手機(jī),筆記本電腦等,當(dāng)ESP8266設(shè)置為AP模式時(shí),其他設(shè)備可以接入該熱點(diǎn),最多支持4臺(tái)Station設(shè)備接入。AP模式也是ESP8266默認(rèn)的模式。

設(shè)置ESP8266流程如下:

1、首先發(fā)送AT+CWMODE?查詢模塊當(dāng)前處于哪一種模式,下圖可以知道AT+CWMODE=2就是熱點(diǎn)模式。

e23c8e2e-fc34-11ec-ba43-dac502259ad0.gif2、然后我們發(fā)送AT+CWMODE=2,讓模塊處于熱點(diǎn)模式下,同時(shí)我們的電腦上也會(huì)顯示熱點(diǎn)名稱。e24c3f18-fc34-11ec-ba43-dac502259ad0.png

3、我們現(xiàn)在自定義設(shè)置我們ESP8266的熱點(diǎn)名和密碼,來(lái)看看我們電腦能不能連接我們所設(shè)置的好的ESP8266模塊。

1、設(shè)置WIFI模式為AP模式

2、設(shè)置AP熱點(diǎn)屬性

AT+CWSAP=AT+CWSAP_DEF="ESP8266-XSD","12345678",5,3

其含義為:熱點(diǎn)名為ESP8266-XSD,密碼為12345678,使用通道5,加密方式為 WPA2_PSK,這里的通道對(duì)應(yīng)的就是不同的射頻頻率,如果同一空間內(nèi)存在相同通道的WIFI信號(hào),將會(huì)產(chǎn)生干擾,影響上網(wǎng)質(zhì)量,因此可以設(shè)置通道來(lái)避免這種干擾,常用的通道有1 6 11,因?yàn)檫@三個(gè)通道互不產(chǎn)生干擾。設(shè)置效果如下圖所示:

e2676e46-fc34-11ec-ba43-dac502259ad0.gif

連接數(shù)量可以限制Station設(shè)備的接入數(shù)量,廣播或者不廣播SSID就是指是否隱藏?zé)狳c(diǎn)名,使熱點(diǎn)更加安全。此外,AT+CWSAP=AT+CWSAP_DEF表示設(shè)置的參數(shù)會(huì)存儲(chǔ)的flash,還有另外一個(gè)類似指令A(yù)T+CWSAP=AT+CWSAP_ CUR,該條指令表示設(shè)置的參數(shù)重啟后失效,即不保存到flash中。其他的AT指令也有類似的后綴。

4、設(shè)置為Station模式

該模式是平時(shí)應(yīng)用最多的模式,因?yàn)槲锫?lián)網(wǎng)設(shè)備需要連接到家中路由才可以接入外網(wǎng),此時(shí)設(shè)備就作為Station連接到AP熱點(diǎn)。設(shè)置Station并連接AP流程如下:

1、設(shè)置WIFI模式為Station
2、連接到家中路由器

AT+CWJAP="liuyao","liuyao1001"

下圖為連接過(guò)程的串口輸出:

e27f46d8-fc34-11ec-ba43-dac502259ad0.gif這時(shí)候我們進(jìn)入家中的路由器,就能看到我們的ESP8266模塊連接到了家中的路由器。如果想要斷開(kāi)連接,可以使用AT+CWQAP,就可以斷開(kāi)ESP8266與路由器的連接。e2931d02-fc34-11ec-ba43-dac502259ad0.png

現(xiàn)在我們的ESP8266已經(jīng)與家中的路由器連接上了,現(xiàn)在我們?nèi)绻氆@取連接的這個(gè)ESP8266的IP可以使用AT+CIPSTA?指令,返回的是路由器分配給ESP8266的局域網(wǎng)IP以及網(wǎng)關(guān)地址和子網(wǎng)掩碼。

e29ee09c-fc34-11ec-ba43-dac502259ad0.png

5、使用TCP實(shí)現(xiàn)局域網(wǎng)內(nèi)的設(shè)備通信

建立TCP連接(AT+CIPSTART)

TCP實(shí)現(xiàn)局域網(wǎng)內(nèi)的設(shè)備通信時(shí)先要讓ESP8266連接到家中的熱點(diǎn)。該條指令可以指定建立連接的協(xié)議類型,通常使用的有兩種:TCP和UDP。

我們先打開(kāi)網(wǎng)絡(luò)調(diào)試助手,并將其設(shè)置為TCP Server端,具體設(shè)置如下:e2ae8e70-fc34-11ec-ba43-dac502259ad0.png

接下來(lái),發(fā)送AT指令建立TCP連接,成功連接會(huì)提示CONNECT,接著使用發(fā)送指令:AT+CIPSEND=14,其中15是發(fā)送數(shù)據(jù)的長(zhǎng)度,該指令發(fā)送完成后,接收窗口會(huì)顯示 > ,我們接著在發(fā)送窗口發(fā)送"I m TCP Client",TCP Server端會(huì)收到該信息,接著再通過(guò)TCP Server發(fā)送"I m TCP Server",串口接收端會(huì)打印Client收到的數(shù)據(jù)。

下面就是ESP8266連接當(dāng)前環(huán)境的熱點(diǎn),與服務(wù)器建立TCP連接,傳輸數(shù)據(jù)的過(guò)程,所有的字符和標(biāo)點(diǎn)必須是英。(1)設(shè)置WIFI模式為Station:AT+CWMODE=1(2)連家中路由器:AT+CWJAP="liuyao","liuyao1001"(3)TCP:AT+CIPSTART="TCP","192.168.0.103",8080(4)提示發(fā)送數(shù)據(jù)長(zhǎng)度為14:AT+CIPSEND=14(5)串口調(diào)試助手發(fā)送:I m TCP Client(6)網(wǎng)絡(luò)調(diào)試助手發(fā)送:I m TCP Server

e2cccfc0-fc34-11ec-ba43-dac502259ad0.png

這一步很多人可能很懵,不知道為啥要這樣做,你這個(gè)搞的串口調(diào)試助手還有網(wǎng)絡(luò)調(diào)試助手還有啥TCP Server到底是啥意思?。?/span>

哈哈,我相信很多初學(xué)者學(xué)到這里也不是很清楚。我這里簡(jiǎn)單說(shuō)一下,我們的用ESP8266是不是要讓它連到家中的網(wǎng)啊,那在這里我們的網(wǎng)絡(luò)調(diào)試助手的TCP Server就是我們要連接的網(wǎng)絡(luò)。

有人又要說(shuō)了,我要連家中路由器的網(wǎng)啊,為啥要連網(wǎng)絡(luò)調(diào)試助手的網(wǎng)???這是因?yàn)槿绻氵B家中的網(wǎng),請(qǐng)問(wèn)你如何給你家的路由器發(fā)送數(shù)據(jù)??!你怎么知道路由器接收到了數(shù)據(jù)?。÷酚善饔终o你發(fā)送數(shù)據(jù)??!你又咋接收數(shù)據(jù)?。∥覀冞@里用網(wǎng)絡(luò)調(diào)試助手的目的就是讓網(wǎng)絡(luò)調(diào)試助手來(lái)代替路由器局域網(wǎng)。TCP Server就是服務(wù)端的意思也是就是服務(wù)器。至于為啥用串口調(diào)試助手我就不用說(shuō)了吧,只有你在串口助手上調(diào)試好了,我們才用單片機(jī)的串口結(jié)合ESP8266共同代替客服端,也就不需要調(diào)試助手了。

所以說(shuō),我們一定要在串口調(diào)試助手上把相關(guān)的數(shù)據(jù)調(diào)通了,把原理過(guò)程搞懂了之后我們?cè)偃ジ銌纹瑱C(jī)程序,再去搭建你的服務(wù)器而不是用網(wǎng)絡(luò)調(diào)試助手代替了。怎么樣現(xiàn)在明白了吧!

開(kāi)啟透?jìng)鱾鬏?AT+CIPMODE=1)

前面在使用TCP進(jìn)行數(shù)據(jù)發(fā)送時(shí),在每次發(fā)送數(shù)據(jù)之前都要指定發(fā)送數(shù)據(jù)的長(zhǎng)度,而且在接收到數(shù)據(jù)之后,還會(huì)有+IPD,< len >的前綴,這樣很不方便進(jìn)行數(shù)據(jù)的處理,因此我們可以使用AT+CIPMODE=1指令開(kāi)啟透?jìng)髂J?,開(kāi)啟透?jìng)髂J胶笾恍枰诘谝淮伟l(fā)送數(shù)據(jù)時(shí)使用ATD+CIPSEND指令來(lái)告訴ESP8266開(kāi)始透?jìng)靼l(fā)送,隨后我們直接發(fā)送想要的數(shù)據(jù)即可,在接收到數(shù)據(jù)時(shí),也沒(méi)有了+IPD,< len >前綴。

下面就是ESP8266連接當(dāng)前環(huán)境的熱點(diǎn),與服務(wù)器建立TCP連接,開(kāi)啟透?jìng)髂J絺鬏敂?shù)據(jù)的過(guò)程,所有的字符和標(biāo)點(diǎn)必須是英。

(1)設(shè)置WIFI模式為Station:AT+CWMODE=1

(2)連家中路由器:AT+CWJAP="liuyao","liuyao1001"

(3)TCP:AT+CIPSTART="TCP","192.168.0.103",8080

(4)開(kāi)啟透?jìng)髂J剑篈T+CIPMODE=1

(5)開(kāi)始透?jìng)靼l(fā)送:AT+CIPSEND

(6)串口調(diào)試助手發(fā)送:hello I m TCP Client!

(7)網(wǎng)絡(luò)調(diào)試助手發(fā)送:hello I m TCP Server!

e2e0bdd2-fc34-11ec-ba43-dac502259ad0.png

如果想要退出透?jìng)靼l(fā)送模式,先發(fā)送+++(0x2B 0x2B 0x2B),注意沒(méi)有換行符,接著使用AT+CIPMODE=0指令退出透?jìng)髂J剑謴?fù)到默認(rèn)傳輸模式。如果不退出透?jìng)髂J剑敲丛谕競(jìng)髂J较戮筒荒馨l(fā)送AT指令了,它會(huì)默認(rèn)為字符串發(fā)送。

6、使用SmartConfig為設(shè)備配網(wǎng)

前面使用了AT+CWJAP指令來(lái)主動(dòng)連接家中的WIFI,但是在大多數(shù)的物聯(lián)網(wǎng)產(chǎn)品中,缺少輸入WIFI密碼的輸入設(shè)備,如:鍵盤,更不能將程序交給用戶去修改家中的WIFI熱點(diǎn)名和密碼,在真正的項(xiàng)目開(kāi)發(fā)中使用最多的方法就是通過(guò)一顆按鍵來(lái)使設(shè)備進(jìn)入某種模式,并使用手機(jī)將當(dāng)前WIFI的密碼告知該設(shè)備來(lái)實(shí)現(xiàn)WIFI配網(wǎng),這種模式就是SmartConfig。在該模式下,ESP8266會(huì)監(jiān)聽(tīng)指定端口的UDP廣播包,如果收到符合規(guī)定格式的廣播包后會(huì)對(duì)其進(jìn)行解析并獲得WIFI的SSID和PWD,然后自動(dòng)連接獲取到的WIFI熱點(diǎn),從而實(shí)現(xiàn)WIFI配網(wǎng)。

e2fd4a7e-fc34-11ec-ba43-dac502259ad0.jpg

智能配網(wǎng)需要三個(gè)設(shè)備:家中的路由器、WIFI模塊、手機(jī)。模塊處于station模式,手機(jī)連接好家中的wifi。這個(gè)具體的工作的原理是:我們需要將wifi配置為station模式。因?yàn)槟J(rèn)的是ap模式,然后要保證手機(jī)連接到家中的路由器熱點(diǎn)。手機(jī)上面的第一行是我們手機(jī)此時(shí)連接的這個(gè)熱點(diǎn)名,下面第一行需要用戶去手動(dòng)的輸入路由器熱點(diǎn)對(duì)應(yīng)的密碼,下面會(huì)有一個(gè)按鍵就寫著叫配網(wǎng)(連接),那么當(dāng)我們點(diǎn)擊這個(gè)配網(wǎng)之后,手機(jī)則會(huì)以UDP的這種傳輸?shù)姆绞健O蚰硞€(gè)端口號(hào)或某個(gè)IP地址當(dāng)中去廣播。廣播內(nèi)容是廠商自己封裝的一個(gè)數(shù)據(jù)幀結(jié)構(gòu),廣播的時(shí)候就不用去指定具體的IP地址,每個(gè)模組可能默認(rèn)是不同的。只要指定賬號(hào),當(dāng)我按下配網(wǎng)的這個(gè)按鈕之后,此時(shí)它會(huì)UDP廣播的形式向外連續(xù)的去發(fā)送一串兒廠商約定好的一個(gè)數(shù)據(jù)幀結(jié)構(gòu),比如說(shuō)前面對(duì)應(yīng)的是廠商的這個(gè)ID,后面跟的是這個(gè)熱點(diǎn)名,后面跟著的是這個(gè)熱點(diǎn)密碼等。當(dāng)然,也可以對(duì)它進(jìn)行一些加密處理,如果此時(shí)我們通過(guò)按下這個(gè)。用點(diǎn)上面的某個(gè)按鍵,比如說(shuō)是配置了我們這個(gè)wifi模組,進(jìn)入了smartconfig這個(gè)配網(wǎng)模式。這個(gè)時(shí)候wifi模塊會(huì)處于一個(gè)監(jiān)聽(tīng)的狀態(tài)。比如udp的協(xié)議監(jiān)聽(tīng)8080端口上面這個(gè)數(shù)據(jù)。如果我收到了這一塊兒有效的數(shù)據(jù),那么他會(huì)將這里面有用的熱點(diǎn)名和密碼摘出來(lái),然后使用類似透?jìng)髂J竭@種功能,內(nèi)部的將它連接到指定的熱點(diǎn)上面,就實(shí)現(xiàn)了一鍵配網(wǎng)的過(guò)程。知道了ESP8266模塊如何用了之后,接下來(lái)我們就要用STM32和ESP8266來(lái)實(shí)現(xiàn)與服務(wù)器的之間的數(shù)據(jù)收發(fā)!

我們說(shuō)到了ESP8266的AT指令集的使用。本來(lái)今天要講一下MQTT協(xié)議的,但考慮到物聯(lián)網(wǎng)知識(shí)體系的完整性,決定還是先說(shuō)一下物聯(lián)網(wǎng)智能家居的控制過(guò)程和流程,以及關(guān)于MQTT協(xié)議中的訂閱和發(fā)布是什么意思。就算是下一章的前奏吧,請(qǐng)大家耐心看完

簡(jiǎn)單地說(shuō),我們最終實(shí)現(xiàn)的目的,是要用STM32+ESP8266外加傳感器和繼電器來(lái)控制家中的開(kāi)關(guān),以及得到家中的各個(gè)電器的運(yùn)行狀態(tài)。其原理是家里的電器先接帶STM32+ESP8266+繼電器的智能插座,智能插座再接家里的插座,這樣只要控制ESP8266的這個(gè)插座(類似中介)就能控制家里的任何電器。

下面這張圖就是控制方式,通過(guò)家用的路由器將各個(gè)電器和手機(jī)聯(lián)系起來(lái)了,手機(jī)可以通過(guò)路由器控制各個(gè)掛載在路由器上的器件,這是比較常用的模式。

【二】 e3187510-fc34-11ec-ba43-dac502259ad0.png

一般來(lái)說(shuō),把手機(jī)叫做上位機(jī),控制器叫做下位機(jī),難道這就是我們常說(shuō)的物聯(lián)網(wǎng)嗎?準(zhǔn)確地說(shuō),這是不對(duì)的。畢竟只能圍繞著這個(gè)路由器,有一定的局限性。

比如,你到公司才想起忘了關(guān)家里的燈,那么只能跑回家,運(yùn)氣好的話,在樓下就能連到家里的路由器,然后再通過(guò)手機(jī)app關(guān)燈。這時(shí)候你想,如果能在任何地方控制家里的電器該多好,要是真有這樣的功能,比如你冬天回家前可以先把家里的空凋打開(kāi)……

我們這個(gè)項(xiàng)目就是ESP8266連接家中的路由器的網(wǎng),手機(jī)連接的是4/5G網(wǎng),這樣你就能在家中設(shè)備不斷電、不斷網(wǎng)的情況下,在任意地方來(lái)控制你家中的用電器設(shè)備了。

一、理論知識(shí)

那么,怎么樣才能讓你在任何地方控制家里的電器(當(dāng)然提前還是要有網(wǎng))?

我們先來(lái)看下面這張圖,跟原來(lái)不一樣的地方是用云服務(wù)器代替了家里的路由器,就這么簡(jiǎn)單!

那么,什么是云服務(wù)器?云服務(wù)器又在哪?你就把它當(dāng)作天上的一朵云就好了(阿里云、騰訊云),反正就是不管你的手機(jī),還是別的什么設(shè)備,只要能連網(wǎng)就可以連接云服務(wù)器。

e32489b8-fc34-11ec-ba43-dac502259ad0.png

那么,連上服務(wù)器后,是不是就能直接控制了?當(dāng)然可以!

剛學(xué)單片機(jī)的小伙伴肯定玩過(guò)串口實(shí)驗(yàn),從單片機(jī)發(fā)送字母xiaoshidi,串口調(diào)試助手就收到字母xiaoshidi,覺(jué)得很有趣。但有時(shí)候你會(huì)發(fā)現(xiàn),如果你的串口通信的函數(shù)寫的不好,或者有誤的時(shí)候,就會(huì)出現(xiàn)通信錯(cuò)誤,比如接收的數(shù)據(jù)是亂碼等,那么它的可靠性就不是很好了。

到底什么叫可靠性不好呢?比如這邊發(fā)過(guò)去的時(shí)候是xiaoshidi,運(yùn)氣不好的話,那邊只可能收到的是shidi,這樣就會(huì)出事。所以,我們也不能直接向云服務(wù)器發(fā)送個(gè)簡(jiǎn)單指令去控制下位機(jī),需要有一定的約定。

比如,事先告訴服務(wù)器我要發(fā)送9個(gè)字母過(guò)來(lái)了,云服務(wù)器收到后就知道了,如果接收xiaoshidi,一般來(lái)說(shuō)是正確接收了;如果只收到shidi,說(shuō)明丟了4個(gè)字母,這就是我們常說(shuō)的丟包。那么,這樣的約定就是我們常說(shuō)的協(xié)議!

有句話叫“沒(méi)有物聯(lián)網(wǎng)協(xié)議就沒(méi)有智能安全”,其實(shí)關(guān)鍵就是協(xié)議,在物聯(lián)網(wǎng)中常用的就是MQTT協(xié)議。那么,為什么不用我們常見(jiàn)的http協(xié)議呢?只能自己百度了。這邊簡(jiǎn)單介紹一下MQTT協(xié)議的原理,因?yàn)橹灰獣?huì)MQTT,就能玩轉(zhuǎn)物聯(lián)網(wǎng)。

我們先來(lái)看個(gè)例子:

e33f7f3e-fc34-11ec-ba43-dac502259ad0.png比如,我在微博里關(guān)注了“曉艷考研”,那么當(dāng)“曉艷考研”發(fā)了一條微博后,我就能收到。

為什么能收到呢?是因?yàn)槲谊P(guān)注它了,我想這些玩微博的小伙伴都知道。

下面,我再用圖表示一下:

e36a687a-fc34-11ec-ba43-dac502259ad0.png

好了,到這邊其實(shí)已經(jīng)把MQTT協(xié)議的原理講清楚了。“曉艷考研”相當(dāng)于手機(jī),我相當(dāng)于單片機(jī)(控制器),如下圖所示:e38c0142-fc34-11ec-ba43-dac502259ad0.png這樣的話,就實(shí)現(xiàn)了手機(jī)控制單片機(jī)的功能!在微博中,只有我關(guān)注“曉艷考研”這個(gè)號(hào),才能收到對(duì)方發(fā)來(lái)的微博,那么在MQTT中,單片機(jī)訂閱手機(jī)的這個(gè)主題才能收到手機(jī)發(fā)送的指令!這樣一來(lái),如果單片機(jī)再通過(guò)繼電器接家里的電器,手機(jī)就可以控制家里任何電器的開(kāi)關(guān)了!

通過(guò)這樣的控制方式,就可以解決在單位也能開(kāi)/關(guān)家里電燈的問(wèn)題了。不過(guò)前提是,手機(jī)和單片機(jī)都能連上云服務(wù)器(手機(jī)可以用家里的網(wǎng)或者4G就可以連到云服務(wù)器,單片機(jī)可以通過(guò)家里的WIFI就可以連到云服務(wù)器)。

這時(shí)可能有人會(huì)問(wèn),在微博里像“曉艷考研”那么有名,有很多人都會(huì)關(guān)注,比如小雅、小李等等,只要“曉艷考研”發(fā)布消息了,關(guān)注的人都能收到。

e39a1ab6-fc34-11ec-ba43-dac502259ad0.png在MQTT協(xié)議中也是如此,只要單片機(jī)1、單片機(jī)2、單片機(jī)3等都訂閱了手機(jī)這個(gè)主題,那么只要手機(jī)發(fā)指令,就能控制各個(gè)單片機(jī),那么也就是能控制家里的各個(gè)電器。

有的小伙伴腦子轉(zhuǎn)的溜,感覺(jué)這樣控制是有問(wèn)題的。因?yàn)檫@樣的話,手機(jī)是統(tǒng)一控制了家里的電器,總不能都一起開(kāi)、一起關(guān)吧?

e3b72746-fc34-11ec-ba43-dac502259ad0.png在微博有個(gè)功能,叫@。雖然我、小雅、小李都關(guān)注了“曉艷考研”,但“曉艷考研”在發(fā)布消息的時(shí)候還能@我,那么在MQTT協(xié)議中也是一樣,也能@某個(gè)控制器。這樣的話,就能單獨(dú)控制某個(gè)功能了。

關(guān)于MQTT理論,我們先說(shuō)到這兒,其實(shí)還有很多玩法,比如在微博里“曉艷考研”也關(guān)注了我呢?這個(gè)有什么用?這樣可以用控制器采集信息上傳到我們的手機(jī)了!那就可以采集家中的環(huán)境數(shù)據(jù)上發(fā)到你的手機(jī)。

二、實(shí)現(xiàn)部分

根據(jù)下面這張圖,我們要做三部分:?jiǎn)纹瑱C(jī)、云服務(wù)器、手機(jī)。

e3bd9e00-fc34-11ec-ba43-dac502259ad0.png ?

1、單片機(jī)

一般來(lái)說(shuō),單片機(jī)也叫作控制器,或者下位機(jī)。我們這里用的是STM32單片機(jī)。

這時(shí)有人會(huì)問(wèn),為什么不用51單片機(jī),或者arduino?因?yàn)楝F(xiàn)在用STM32的人太多了,arduino又體現(xiàn)不出你是一個(gè)電子信息專業(yè)的,51就不用說(shuō)了。

可能又有人說(shuō),你為啥不用esp32,本來(lái)就可以當(dāng)一塊單片機(jī),搞個(gè)STM32豈不是太麻煩?

此言差矣!我們這里是把ESP8266當(dāng)做一個(gè)模塊使用,我僅僅用STM32的串口就可以控制它連網(wǎng)。但如果單單只用ESP32的話,就大大增加了開(kāi)發(fā)的難度,也就是我們通常說(shuō)的SDK開(kāi)發(fā),而且學(xué)習(xí)的同時(shí),又能鞏固單片機(jī)的知識(shí),搞SDK確實(shí)不適合初學(xué)者。

最后,我們的MQTT協(xié)議轉(zhuǎn)換成C語(yǔ)言代碼已經(jīng)有前輩寫好了,我們的目的就是學(xué)會(huì)它,學(xué)會(huì)反向?qū)W習(xí),才能增加你對(duì)新事物的學(xué)習(xí)興趣。MQTT協(xié)議是現(xiàn)成的,拿來(lái)用即可!

在理論部分提到的MQTT協(xié)議是整個(gè)物聯(lián)網(wǎng)的核心,所以單片機(jī)、手機(jī)和云服務(wù)器都要有這協(xié)議。這就好比三個(gè)中國(guó)人在聊天,一個(gè)日本人過(guò)來(lái)聽(tīng),他根本聽(tīng)不懂,因?yàn)樗麤](méi)有“中文”這個(gè)能力。所以,控制器也要有這個(gè)解析協(xié)議的能力。

2、服務(wù)器

服務(wù)器可以理解成一臺(tái)普通的電腦,只是它的性能比較穩(wěn)定不容易死機(jī)。目前服務(wù)器有很多,做得比較大的像騰訊云、阿里云等等,購(gòu)買服務(wù)器也是個(gè)坑,大家需謹(jǐn)慎!前期的話,大家學(xué)習(xí)不用買,登錄生活物聯(lián)平臺(tái)用現(xiàn)成的,后面我會(huì)講到。

3、手機(jī)

一般把手機(jī)也叫上位機(jī),上位機(jī)還有電腦、平板等等,實(shí)驗(yàn)中是用手機(jī)發(fā)送命令來(lái)控制我們的單片機(jī)。那么手機(jī)能打開(kāi)直接能操作嗎?顯然不能,需要編寫相應(yīng)的程序界面。

如果你是安卓手機(jī),可以用android studio軟件編寫相應(yīng)的app程序。當(dāng)然,前期的話,大家不要去想著做一個(gè)app,難度還是蠻大的。

【三】

在學(xué)習(xí)MQTT之前,我們要明白MQTT通訊是通過(guò)很多的報(bào)文組成的,這就好比二戰(zhàn)時(shí)期發(fā)電報(bào)進(jìn)行兩軍之間的通信。這個(gè)報(bào)文呢,主要由三部分組成:固定報(bào)文+可變報(bào)文+有效載荷,這是官方起的名字,你可以把它理解為開(kāi)頭+正文+結(jié)尾,這樣就好理解多了是吧?!

基本在MQQTT中,所有的報(bào)文都由這三部分組成。比如今天要說(shuō)的Connect控制報(bào)文,顧名思義就是客戶端(ESP8266)請(qǐng)求與服務(wù)端(阿里云服務(wù)器)建立連接的報(bào)文。

啥意思呢?這就好比你第一次去你女朋友家,你要首先打一個(gè)電話(Connect控制報(bào)文)征得叔叔阿姨的同意?。∈迨灏⒁掏庵螅ǚ?wù)器確認(rèn)建立連接)你才能去對(duì)吧,如果不同意或者電話沒(méi)打通你就不能去你女朋友家啊,就算去了也不招待見(jiàn)對(duì)吧!

00:22

客戶端到服務(wù)端的網(wǎng)絡(luò)連接建立后,客戶端發(fā)送給服務(wù)端的第一個(gè)報(bào)文必須是connect報(bào)文(因?yàn)榭蛻舳撕头?wù)端必須要建立連接后才能進(jìn)行通信)。

1、CONNECT控制報(bào)文主要由三部分組成:固定報(bào)頭、可變報(bào)頭、有效載荷。

e3c58232-fc34-11ec-ba43-dac502259ad0.png

2、假設(shè)我們得到了固定報(bào)頭是“l(fā)iuyao”、可變報(bào)頭是“iloveyou”、有效載荷是“zhuxiaoya”。我們要把這些字母轉(zhuǎn)換成對(duì)應(yīng)的16進(jìn)制。然后再把它們串聯(lián)起起來(lái)就得到。

e3d2ea76-fc34-11ec-ba43-dac502259ad0.png

1、固定報(bào)頭

固定報(bào)頭包含兩個(gè)字節(jié),第一個(gè)字節(jié)是固定的:0x10,第二個(gè)字節(jié)是是剩余長(zhǎng)度字段,剩余長(zhǎng)度等于可變報(bào)頭的長(zhǎng)度(10字節(jié))加上有效載荷的長(zhǎng)度。e3df49ce-fc34-11ec-ba43-dac502259ad0.png

最終固定報(bào)頭:綜上可得固定報(bào)頭為:10 ??(??我們?cè)诤竺娴膶?shí)驗(yàn)會(huì)提到,先不著急)。

2、可變報(bào)頭

可變報(bào)頭有四部分組成,協(xié)議名、協(xié)議級(jí)別、連接標(biāo)志、保持連接。大家不要糾結(jié)為啥由這四部分組成,這是人家寫這個(gè)協(xié)議的人規(guī)定的,你只要搞清楚這四部分對(duì)應(yīng)的編碼是啥就可以了,其余的四個(gè)字:不要糾結(jié)e3fed9a6-fc34-11ec-ba43-dac502259ad0.png

2.1 協(xié)議名

e40f7bd0-fc34-11ec-ba43-dac502259ad0.png

2.2 協(xié)議級(jí)別

e41d1632-fc34-11ec-ba43-dac502259ad0.png

2.3 連接標(biāo)志

e4281942-fc34-11ec-ba43-dac502259ad0.png

2.4 保持連接

e43d66ee-fc34-11ec-ba43-dac502259ad0.png

2.5 總結(jié)

e451d142-fc34-11ec-ba43-dac502259ad0.png

2.6 最終可變報(bào)頭

綜上,我們可得有效報(bào)頭為:00 04 4D 51 54 54 04 C2 00 64

3、有效載荷

有效載荷由三部分組成:客服端標(biāo)識(shí)符、用戶名、密碼組成。e4610f9a-fc34-11ec-ba43-dac502259ad0.png ?e46f12a2-fc34-11ec-ba43-dac502259ad0.png

3.1 原始數(shù)據(jù)

我們?cè)诎⒗镌莆锫?lián)網(wǎng)平臺(tái)上創(chuàng)建一個(gè)設(shè)備后,會(huì)得下面這三個(gè)數(shù)據(jù),這三個(gè)數(shù)據(jù)非常重要。

	{ "ProductKey":"a10zwkUxQUS", "DeviceName":"LY-1", "DeviceSecret":"d8b9915513b05d4de32fbed04566edd8" } 阿里云服務(wù)器地址(華東2) : *.iot-as-mqtt.cn-shanghai.aliyuncs.com:1883

	客戶端ID :*|securemode=3,signmethod=hmacsha1| 用戶名:*&# 密碼: clientId*deviceName*productKey# 

3.2 加工后的數(shù)據(jù)


	服務(wù)器地址:a10zwkUxQUS.iot-as-mqtt.cn-shanghai.aliyuncs.com:1883 客戶端ID :LY-1|securemode=3,signmethod=hmacsha1| 用戶名:LY-1&a10zwkUxQUS 密碼:clientIdLY-1deviceNameLY-1productKeya10zwkUxQUS 經(jīng)過(guò)哈希加密:7a03368e740ff9efb8318c6ba2a0260f2a596f87 哈希加密在線計(jì)算網(wǎng)站:http://encode.chahuo.com/e47dd15c-fc34-11ec-ba43-dac502259ad0.png之后要將客服端ID、用戶名、經(jīng)過(guò)哈希加密后的密碼轉(zhuǎn)換成16進(jìn)制。

	客戶端ID :LY-1|securemode=3,signmethod=hmacsha1| 用戶名:LY-1&a10zwkUxQUS 經(jīng)過(guò)哈希加密:7a03368e740ff9efb8318c6ba2a0260f2a596f87 

3.3 轉(zhuǎn)換成16進(jìn)制


	客戶端ID:LY-1|securemode=3,signmethod=hmacsha1|轉(zhuǎn)換為(16進(jìn)制): 4C592D317C7365637572656D6F64653D332C73 69676E6D6574686F643D686D6163736861317C一共38個(gè)字節(jié)就是0x26 最終結(jié)果:把0026加到最前面 00264C592D317C7365637572656D6F64653D332C 7369676E6D6574686F643D686D6163736861317C 用戶名:LY-1&a10zwkUxQUS轉(zhuǎn)換為(16進(jìn)制): 4C592D31266131307A776B5578515553一共16個(gè)字節(jié)就是0x10 最終結(jié)果:把0010加到最前面 00104C592D31266131307A776B5578515553 經(jīng)過(guò)哈希加密:7a03368e740ff9efb8318c6ba2a0260f2a596f87轉(zhuǎn)換為(16進(jìn)制) 3761303333363865373430666639656662383331 3863366261326130323630663261353936663837一共40個(gè)字節(jié)就是0x28 最終結(jié)果:把0028加到最前面 002837613033333638653734306666396566623833 313863366261326130323630663261353936663837 

最終可得:

  • 客戶端: 00 264C 59 2D 31 7C 73 65 63 75 72 65 6D 6F 64 65 3D 33 2C 73 69 67 6E 6D 65 74 68 6F 64 3D 68 6D 61 63 73 68 61 31 7C
  • 用戶名: 00 104C 59 2D 31 26 61 31 30 7A 77 6B 55 78 51 55 53
  • 密碼: 00 2837 61 30 33 33 36 38 65 37 34 30 66 66 39 65 66 62 38 33 31 38 63 36 62 61 32 61 30 32 36 30 66 32 61 35 39 36 66 38 37
  • 組合到一起: 00 264C 59 2D 31 7C 73 65 63 75 72 65 6D 6F 64 65 3D 33 2C 73 69 67 6E 6D 65 74 68 6F 64 3D 68 6D 61 63 73 68 61 31 7C00 104C 59 2D 31 26 61 31 30 7A 77 6B 55 78 51 55 53 00 2837 61 30 33 33 36 38 65 37 34 30 66 66 39 65 66 62 38 33 31 38 63 36 62 61 32 61 30 32 36 30 66 32 61 35 39 36 66 38 37

3.4 最終有效載荷

這樣我們就得到了有效載荷:

00 264C 59 2D 31 7C 73 65 63 75 72 65 6D 6F 64 65 3D 33 2C 73 69 67 6E 6D 65 74 68 6F 64 3D 68 6D 61 63 73 68 61 31 7C00 104C 59 2D 31 26 61 31 30 7A 77 6B 55 78 51 55 53 00 2837 61 30 33 33 36 38 65 37 34 30 66 66 39 65 66 62 38 33 31 38 63 36 62 61 32 61 30 32 36 30 66 32 61 35 39 36 66 38 37

4、Connect控制報(bào)文

固定報(bào)頭+可變報(bào)頭+有效載荷

  • 10??00 04 4D 51 54 54 04 C2 00 6400 264C 59 2D 31 7C 73 65 63 75 72 65 6D 6F 64 65 3D 33 2C 73 69 67 6E 6D 65 74 68 6F 64 3D 68 6D 61 63 73 68 61 31 7C00 104C 59 2D 31 26 61 31 30 7A 77 6B 55 78 51 55 5300 2837 61 30 33 33 36 38 65 37 34 30 66 66 39 65 66 62 38 33 31 38 63 36 62 61 32 61 30 32 36 30 66 32 61 35 39 36 66 38 37
現(xiàn)在要解決的就是"??",也就是我們最開(kāi)始說(shuō)的剩余長(zhǎng)度。這個(gè)問(wèn)號(hào)??就是表示在問(wèn)號(hào)后面有幾個(gè)字符,有幾個(gè)字符??就代表多少,然后把這個(gè)數(shù)字轉(zhuǎn)換成16進(jìn)制填入??就可以了。我們通過(guò)數(shù)數(shù)可以知道??后面有110個(gè)數(shù),10進(jìn)制的110轉(zhuǎn)換成16進(jìn)制就是0x6E。所以最終得到的CONNECT 控制報(bào)文為:
  • 106E00 04 4D 51 54 54 04 C2 00 6400 264C 59 2D 31 7C 73 65 63 75 72 65 6D 6F 64 65 3D 33 2C 73 69 67 6E 6D 65 74 68 6F 64 3D 68 6D 61 63 73 68 61 31 7C00 104C 59 2D 31 26 61 31 30 7A 77 6B 55 78 51 55 5300 2837 61 30 33 33 36 38 65 37 34 30 66 66 39 65 66 62 38 33 31 38 63 36 62 61 32 61 30 32 36 30 66 32 61 35 39 36 66 38 37
通過(guò)網(wǎng)絡(luò)調(diào)試助手發(fā)送connect報(bào)文:1. 協(xié)議類型選擇 TCP Client2. 本機(jī)地址:本機(jī)地址會(huì)在軟件選擇TCP Client后默認(rèn)出現(xiàn),不用手動(dòng)選擇3. 遠(yuǎn)程主機(jī)地址:這個(gè)就是我們創(chuàng)建設(shè)備后阿里云的遠(yuǎn)程地址

	服務(wù)器地址:a10zwkUxQUS.iot-as-mqtt.cn-shanghai.aliyuncs.com:1883 4.在發(fā)送數(shù)據(jù)之前要先勾選按16進(jìn)制發(fā)送,之后會(huì)在網(wǎng)絡(luò)調(diào)試助手的接受端出現(xiàn):20 02 00 00說(shuō)明發(fā)送正常接收正常,如果點(diǎn)擊發(fā)送按鈕之后網(wǎng)絡(luò)調(diào)試助手馬上就斷開(kāi)或者接收不到數(shù)據(jù)的話,就說(shuō)明你發(fā)送的數(shù)據(jù)有問(wèn)題,請(qǐng)仔細(xì)回去好好把報(bào)文數(shù)據(jù)整理一遍,否則不能發(fā)送成功。你要知道,錯(cuò)的不可能是阿里云,也不是MQTT協(xié)議,錯(cuò)的只有你的數(shù)據(jù)!e49ef3c8-fc34-11ec-ba43-dac502259ad0.png這里為啥是收到的是20 02 00 00,我們可以去看看數(shù)據(jù)手冊(cè)中3.2小節(jié)的connect確認(rèn)連接請(qǐng)求。e4a8201a-fc34-11ec-ba43-dac502259ad0.png
		?e4afaa60-fc34-11ec-ba43-dac502259ad0.png這樣我們的客戶端就與阿里云的服務(wù)端連接起來(lái)了,我們現(xiàn)在可以去看看阿里云官網(wǎng)就會(huì)發(fā)現(xiàn)此時(shí)的LY-1設(shè)備處于在線狀態(tài)。哈哈,是不是很奇妙?。?/span>e4c38332-fc34-11ec-ba43-dac502259ad0.png

5、斷開(kāi)鏈接

我們可以看到數(shù)據(jù)手冊(cè)的3.14小節(jié),斷開(kāi)連接的報(bào)文是 E0 00 e4cf49e2-fc34-11ec-ba43-dac502259ad0.png然后我們?cè)谶B接狀態(tài)下向服務(wù)器發(fā)從斷開(kāi)可連接的報(bào)文E0 00這是服務(wù)器就會(huì)與客戶端斷開(kāi),由于斷開(kāi)后收不到服務(wù)器發(fā)來(lái)的數(shù)據(jù)。所以網(wǎng)絡(luò)調(diào)試助手不會(huì)接收到任何新消息。 e4dd10c2-fc34-11ec-ba43-dac502259ad0.png這時(shí),我們?cè)俚桨⒗镌乒倬W(wǎng)(刷新一下網(wǎng)頁(yè))就會(huì)發(fā)現(xiàn),此時(shí)的LY-1設(shè)備處于離線狀態(tài)。哈哈,是不是很奇妙??!

e4f4e558-fc34-11ec-ba43-dac502259ad0.png

我們用網(wǎng)絡(luò)調(diào)試助手的目的就我們現(xiàn)在還沒(méi)有單片機(jī)和esp8266,但是我們又必須要學(xué)習(xí)mqtt協(xié)議,只有通過(guò)網(wǎng)絡(luò)調(diào)試助手來(lái)代替單片機(jī)來(lái)實(shí)現(xiàn),等我們網(wǎng)絡(luò)調(diào)試助手都調(diào)通了之后我們?cè)侔阉恢钡轿覀兊腟TM32單片機(jī)中就可以了。UDP-----為應(yīng)用程序提供了一種無(wú)需建立連接就可以發(fā)送封裝的IP數(shù)據(jù)包的方法 TCPClient客戶端------單片機(jī)(網(wǎng)絡(luò)調(diào)試助手代替單片機(jī)) TCPServer服務(wù)端------阿里云
審核編輯 :李倩
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 單片機(jī)
    +關(guān)注

    關(guān)注

    6067

    文章

    44997

    瀏覽量

    650730
  • STM32
    +關(guān)注

    關(guān)注

    2295

    文章

    11032

    瀏覽量

    365210

原文標(biāo)題:爛大街的ESP8266究竟該怎么玩?

文章出處:【微信號(hào):mcu168,微信公眾號(hào):硬件攻城獅】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    STM32+esp8266連接機(jī)智云,上傳溫濕度數(shù)據(jù)并控制繼電器開(kāi)關(guān)(平臺(tái)配置、代碼生成、代碼移植)

    本教程將詳細(xì)介紹如何將STM32微控制器與ESP8266Wi-Fi模塊連接到機(jī)智云平臺(tái),實(shí)現(xiàn)溫濕度數(shù)據(jù)的上傳與繼電器的遠(yuǎn)程控制。通過(guò)此過(guò)程,您將學(xué)會(huì)如何配置機(jī)智云平臺(tái),燒錄ESP8266固件,移植
    的頭像 發(fā)表于 07-15 18:54 ?109次閱讀
    <b class='flag-5'>STM32+esp8266</b>連接機(jī)智云,上傳溫濕度數(shù)據(jù)并控制繼電器開(kāi)關(guān)(平臺(tái)配置、代碼生成、代碼移植)

    單片機(jī)實(shí)例項(xiàng)目:ESP8266串口WIFI

    單片機(jī)實(shí)例項(xiàng)目:ESP8266串口WIFI,推薦下載!
    發(fā)表于 06-03 21:01

    ESP8266燒錄與機(jī)智云鍵配網(wǎng)教程

    ESP8266模塊因其低成本和高性能,廣泛應(yīng)用于智能家居和工業(yè)自動(dòng)化等領(lǐng)域。機(jī)智云平臺(tái)提供了鍵配網(wǎng)功能,簡(jiǎn)化了設(shè)備的聯(lián)網(wǎng)過(guò)程。本教程將詳細(xì)介紹如何使用ESP8266進(jìn)行燒錄,并通過(guò)機(jī)智云實(shí)現(xiàn)
    的頭像 發(fā)表于 05-24 11:04 ?500次閱讀
    <b class='flag-5'>ESP8266</b>燒錄與機(jī)智云<b class='flag-5'>一</b>鍵配網(wǎng)教程

    esp8266 at device做一個(gè)網(wǎng)頁(yè)服務(wù)器 ,運(yùn)行webnet_test顯示錯(cuò)誤怎么解決?

    我現(xiàn)在想用esp8266 at device 做一個(gè)網(wǎng)頁(yè)服務(wù)器 但是文件系統(tǒng)什么都做好了 運(yùn)行webnet_test 顯示下邊的錯(cuò)誤 查了論壇 說(shuō)at不支持服務(wù)器 但是是20年的帖子了 現(xiàn)在有支持嗎 如果不支持是不是換rw007就可以了
    發(fā)表于 03-07 06:47

    STM32ESP32應(yīng)該學(xué)哪個(gè)

    等等,市場(chǎng)占有率也很高。 ESP32相對(duì)年輕了不少,滿打滿算也不到 10 歲,他的前身,還得從 ESP8266 說(shuō)起,都屬于樂(lè)鑫科技的產(chǎn)品。 如果你用單片機(jī)做過(guò)
    的頭像 發(fā)表于 02-18 09:52 ?708次閱讀

    esp8266加入到c51單片機(jī)單通道程序怎么寫

    要將ESP8266模塊加入到C51單片機(jī)的單通道程序中,您需要了解如何通過(guò)串行通信(UART)與ESP8266進(jìn)行通信。以下是如何實(shí)現(xiàn)這點(diǎn)的步驟和示例代碼。 步驟 1:硬件連接 首先
    的頭像 發(fā)表于 10-18 11:32 ?1677次閱讀

    ESP8266 太空人動(dòng)畫的 OLED 顯示

    ESP8266 太空人動(dòng)畫的 OLED 顯示
    的頭像 發(fā)表于 10-08 15:06 ?715次閱讀
    <b class='flag-5'>ESP8266</b> 太空人動(dòng)畫的 OLED 顯示

    單片機(jī)WiFi模塊怎樣連接手機(jī)APP

    單片機(jī)WiFi模塊連接到手機(jī)APP通常涉及以下幾個(gè)步驟: 選擇單片機(jī)和WiFi模塊 :選擇合適的單片機(jī)(如Arduino, ESP32等)和WiFi模塊(如
    的頭像 發(fā)表于 09-10 15:31 ?3646次閱讀

    arduino(1)--ESP8266配置

    硬件準(zhǔn)備 首先需要準(zhǔn)備個(gè)開(kāi)發(fā)板,這里我準(zhǔn)備的是淘寶購(gòu)買的兼容arduino的ESP8266模塊。 arduino配置 我使用的是arduino來(lái)編程實(shí)現(xiàn),故需要下載對(duì)應(yīng)的庫(kù)文件,打開(kāi)
    發(fā)表于 09-06 11:00

    STM32 ESP8266阿里云鏈接源碼

    stm32F103C8T6 ESP8266 物聯(lián)網(wǎng)電表 登錄阿里云
    發(fā)表于 08-29 14:21 ?9次下載

    esp32和esp8266代碼共用嗎

    本文將介紹ESP32和ESP8266兩款流行的微控制器在代碼共用性方面的可能性與差異性。 、引言 隨著物聯(lián)網(wǎng)技術(shù)的飛速發(fā)展,越來(lái)越多的智能設(shè)備開(kāi)始進(jìn)入我們的生活。其中,ESP32和
    的頭像 發(fā)表于 08-19 18:23 ?2359次閱讀

    esp8266esp32區(qū)別是什么

    以下是關(guān)于ESP8266ESP32的主要區(qū)別: 處理器和架構(gòu) : ESP8266 :使用個(gè)Tensilica L106 80MHz的處理
    的頭像 發(fā)表于 08-19 18:16 ?7372次閱讀

    ESP8266需要燒錄固件庫(kù)嘛

    需要。ESP8266款非常流行的Wi-Fi模塊,廣泛應(yīng)用于物聯(lián)網(wǎng)項(xiàng)目中。它具有低成本、低功耗、易于編程等特點(diǎn),因此受到了許多開(kāi)發(fā)者的喜愛(ài)。在開(kāi)發(fā)ESP8266項(xiàng)目時(shí),燒錄固件庫(kù)是
    的頭像 發(fā)表于 08-19 17:30 ?1893次閱讀

    esp8266不燒錄可以使用嗎

    ESP8266款非常流行的Wi-Fi模塊,廣泛應(yīng)用于物聯(lián)網(wǎng)項(xiàng)目中。然而,如果不進(jìn)行燒錄,ESP8266將無(wú)法正常工作。 1. ESP8266簡(jiǎn)介
    的頭像 發(fā)表于 08-19 17:28 ?1688次閱讀

    esp8266wifi模塊怎么連接手機(jī)

    ESP8266 WiFi模塊連接手機(jī)主要可以通過(guò)兩種方式實(shí)現(xiàn): 通過(guò)路由器連接(STA模式)和直接作為熱點(diǎn)連接(AP模式) 。以下是兩種連接方式的步驟: 、通過(guò)路由器連接(STA模式) 配置
    的頭像 發(fā)表于 08-19 17:27 ?7655次閱讀