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