基于小熊派WIFI-ESP8266實(shí)踐(上)
ESP8266相信大家再熟悉不過了,這個(gè)東西從我大學(xué)開始一直用到工作,至今已經(jīng)有好幾個(gè)年頭了。這是一款無線WIFI模塊,專為移動設(shè)備,可穿戴電子產(chǎn)品和物聯(lián)應(yīng)用設(shè)計(jì),可以通過AT指令配置,和單片機(jī)上的串口進(jìn)行通信,利用WIFI進(jìn)行數(shù)據(jù)傳輸。
1、AT指令簡介
AT指令,是模組(4G、Wifi、藍(lán)牙等等)廠商設(shè)計(jì)的一組協(xié)議規(guī)范,大家可以百度一下什么是AT指令。
2、小熊派的ESP8266模塊介紹
以下ESP8266擴(kuò)展板模塊的硬件原理圖、模塊圖以及在小熊派上的連接示意圖。
小熊派有個(gè)好處,單獨(dú)調(diào)模塊的時(shí)候不要飛一堆凌亂的線了,只需把這個(gè)開源撥到AT PC即可,調(diào)試該模塊的方法:
-
1、如果對模塊AT指令不熟悉,建議先切換到AT_PC模式把模塊的指令玩熟。 -
2、如果對模塊AT指令熟悉,可在AT_PC模式下調(diào)試指令作為參考,然后切換到AT_MCU模式進(jìn)行軟件應(yīng)用程序的開發(fā)。
3、ESP8266配網(wǎng)/聯(lián)網(wǎng)思路(基于AT指令開發(fā))
3.1 ESP8266配網(wǎng)思路
3.1.1 使用手機(jī)APP來給ESP8266配置WIFI熱點(diǎn)和密碼
假設(shè)已經(jīng)開發(fā)了一個(gè)手機(jī)APP,這個(gè)APP完成的功能如下:
1、連接設(shè)備接的模塊ESP8266生成的熱點(diǎn)
2、給設(shè)備熱點(diǎn)發(fā)送要連接的路由器的名字和密碼
配網(wǎng)流程:
1、讓ESP8266進(jìn)入AP模式
設(shè)備MCU通過串口給ESP8266發(fā)送AT+CWMODE=2,讓ESP8266進(jìn)入AP模式,如果進(jìn)入AP模式成功,用手機(jī)可以搜索到ESP8266模塊的熱點(diǎn)信息,此時(shí)ESP8266相當(dāng)于一個(gè)路由器。
2、用手機(jī)APP去連接這個(gè)ESP8266,然后發(fā)送配網(wǎng)協(xié)議
發(fā)送路由器ssid和password,假設(shè)格式如下:
ssid:"xxx",password:"xxxx"
3、解析APP發(fā)過來的字符串格式
ESP8266串口收到```ssid:"xxx",password:"xxxx"```這個(gè)字符串,設(shè)備MCU處理收到的這個(gè)字符串,將ssid和password提取出來,然后分別保存到緩存區(qū)SSID、PASSWORD里。
4、設(shè)備讓ESP8266進(jìn)入STA模式
設(shè)備MCU通過串口給ESP8266發(fā)送AT+CWMODE=1,讓ESP8266進(jìn)入STA模式。
5、設(shè)備連接路由器
拿保存在緩存區(qū)的SSID和PASSWORD,設(shè)備通過串口給ESP8266發(fā)送連接指令
AT+CWJAP="SSID","PASSWORD"
6、連接公網(wǎng)服務(wù)器===>120.78.136.134:8888
AT+CIPSTART="TCP","xxx.xx.xxx.xxx",xxxx
配網(wǎng)成功!如果以后MCU端程序設(shè)置不在初始化設(shè)置模式下,不會執(zhí)行該流程,默認(rèn)開機(jī)就會直接連接對應(yīng)的熱點(diǎn)和服務(wù)器。
3.1.2 ESP8266配網(wǎng)(使用上位機(jī)串口來給模組配置)
假設(shè)以及開發(fā)了一個(gè)上位機(jī),這個(gè)上位機(jī)完成的功能如下:
1、上位機(jī)通過串口連接設(shè)備
2、具有設(shè)置wifi帳號和密碼的功能(其實(shí)就是發(fā)送一條串口指令,帶有wifi帳號和密碼)
3、具有設(shè)置服務(wù)器ip和端口號的功能(其實(shí)就是發(fā)送一條串口指令,帶有服務(wù)器ip和端口號)
配網(wǎng)流程:
1、直接讓設(shè)備進(jìn)入STA模式
上位機(jī)通過串口給接有ESP8266的設(shè)備發(fā)送AT+CWMODE=1,讓ESP8266進(jìn)入STA模式。
2、設(shè)備接收到上位機(jī)發(fā)送過來的進(jìn)入STA模式的指令,透傳給ESP8266,這時(shí)ESP8266如果設(shè)置成功,則處于STA模式
3、特定模式下(初始化設(shè)置),線程等待上位機(jī)下發(fā)的指令
指令格式:
(1)設(shè)置wifi連接路由器
SSID:"xxxx","PASSWORD":"xxxxx"
(2)設(shè)置wifi連接服務(wù)器
SERVER_IP:"xxx.xxx.xxx.xxx",PORT:xxxx
4、設(shè)備接收到上位機(jī)下發(fā)的指令,進(jìn)行解析后分別保存在緩存區(qū)中。
5、設(shè)備連接路由器
拿保存在緩存區(qū)的SSID和PASSWORD,設(shè)備通過串口給ESP8266發(fā)送連接指令
AT+CWJAP="SSID","PASSWORD"
6、連接公網(wǎng)服務(wù)器
AT+CIPSTART="TCP","xxx.xxx.xxx.xxx",xxxx
配網(wǎng)成功!如果以后MCU端程序設(shè)置不在初始化設(shè)置模式下,不會執(zhí)行該流程,默認(rèn)開機(jī)就會直接連接對應(yīng)的熱點(diǎn)和服務(wù)器。
3.1.3 ESP8266配網(wǎng)(使用上位機(jī)網(wǎng)絡(luò)TCP來給模組配置)
假設(shè)以及開發(fā)了一個(gè)上位機(jī),這個(gè)上位機(jī)完成的功能如下:
1、上位機(jī)可以用TCP/IP連接wifi熱點(diǎn)(ESP8266)===>需要知道esp8266的ip和端口號,通過window網(wǎng)絡(luò)狀態(tài)可以查到。
2、具有設(shè)置wifi帳號和密碼的功能(其實(shí)就是發(fā)送一條串口指令,帶有wifi帳號和密碼)
3、具有設(shè)置服務(wù)器ip和端口號的功能(其實(shí)就是發(fā)送一條串口指令,帶有服務(wù)器ip和端口號)
配網(wǎng)流程
設(shè)備端
1、直接讓設(shè)備進(jìn)入AP模式
上位機(jī)通過串口給接有ESP8266的設(shè)備發(fā)送AT+CWMODE=2,讓ESP8266進(jìn)入AP模式。
指令:AT+CWMODE=2
2、重啟設(shè)備,確保AP模式設(shè)置成功
指令:AT+RST
3、開啟多路連接
指令:AT+CIPMUX=1
4、為設(shè)備端創(chuàng)建熱點(diǎn)
指令:AT+CWSAP=“WIFI名稱”,“WIFI密碼”,1,4
5、設(shè)備端啟動服務(wù)器
指令:AT+CIPSERVER=1,8080
PC端:
1、事先需要讓PC去連接wifi熱點(diǎn)===>WIFI名稱、WIFI密碼
2、通過網(wǎng)絡(luò)連接詳情查看當(dāng)前熱點(diǎn)的IPv4服務(wù)器地址
3、PC端開發(fā)的上位機(jī)連接IPv4服務(wù)器地址,端口號就是設(shè)備端指定的端口號:8080
4、PC端開發(fā)的上位機(jī)下發(fā)指令給設(shè)備端
指令格式:
(1)設(shè)置wifi連接路由器
SSID:"xxxx","PASSWORD":"xxxxx”
(2)設(shè)置wifi連接服務(wù)器
SERVER_IP:"xxx.xxx.xxx.xxx",PORT:xxxx
設(shè)備端
1、解析字符串,如果含有SSID:“xxxx”,“PASSWORD”:“xxxxx”,取得ssid和password,保存到設(shè)備端的FLASH中,如果為其它,則設(shè)定接收出錯(cuò)的條件。
2、解析字符串,如果含有SERVER_IP:“xxx.xxx.xxx.xxx”,PORT:“xxxx”,取得server_ip和port,保存到設(shè)備端的FLASH中
,如果為其它,則設(shè)定接收出錯(cuò)的條件。
3、如果已經(jīng)解析完兩個(gè)字符串,自動重啟,切換到STA模式,取出ssid和password,連接ap,連接成功后,卻出flash中的server_ip和port,連接服務(wù)器,如果成功,則可進(jìn)入數(shù)據(jù)上傳,如果不成功,則返回ap連接,依次進(jìn)行,直到成功后,此時(shí)程序中連接成功的標(biāo)志會置一。
4、定時(shí)查詢與服務(wù)器端確認(rèn)是否連接成功,如果不成功,需要重新連接服務(wù)器。
5、可上傳數(shù)據(jù)
4、通過串口工具簡單測試一下ESP8266聯(lián)網(wǎng)
(1)、將開關(guān)撥到AT_PC端。
(2)、打開串口調(diào)試助手
(3)、發(fā)送聯(lián)網(wǎng)命令
這里需要兩個(gè)指令
試試PING百度:
后續(xù)透傳模式及連接服務(wù)器,發(fā)送數(shù)據(jù)的過程會在代碼中體現(xiàn)。
公眾號粉絲福利時(shí)刻
這里我給大家申請到了福利,本公眾號讀者購買小熊派開發(fā)板可享受9折優(yōu)惠,有需要購買小熊派的朋友,淘寶搜索即可,跟客戶說你是公眾號:嵌入式云IOT技術(shù)圈 的粉絲,立享9折優(yōu)惠!
往期精彩
網(wǎng)紅物聯(lián)網(wǎng)開發(fā)板小熊派使用評測
超輕量級網(wǎng)紅軟件定時(shí)器multi_timer(51+stm32雙平臺實(shí)戰(zhàn))
基于小熊派光強(qiáng)傳感器BH1750實(shí)踐(multi_timer+狀態(tài)機(jī)工程應(yīng)用)
基于小熊派光強(qiáng)傳感器BH1750狀態(tài)機(jī)驅(qū)動項(xiàng)目升級(帶LCD屏顯示)
基于小熊派光強(qiáng)傳感器BH1750狀態(tài)機(jī)驅(qū)動項(xiàng)目再度升級(帶上位機(jī)曲線顯示)
若覺得本次分享的文章對您有幫助,隨手點(diǎn)[在看]
并轉(zhuǎn)發(fā)分享,也是對我的支持。
免責(zé)聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺僅提供信息存儲服務(wù)。文章僅代表作者個(gè)人觀點(diǎn),不代表本平臺立場,如有問題,請聯(lián)系我們,謝謝!