認(rèn)識 ESP8266(ESP-01S)
前言
了解完本文內(nèi)容,可以去觀看我的另一篇文章-----》 STM32—通過HC05配置ESP8266(ESP01s)獲取時間和天氣
ESP8266(ESP-01S) 簡介
ESP8266 是串口型 WIFI,速度比較低,不能用來傳輸圖像或者視頻這些大容量的數(shù)據(jù),主要應(yīng)用于數(shù)據(jù)量傳輸比較少的場合,比如溫濕度信息,一些傳感器的開關(guān)量等。
ESP8266 的 AT指令
AT指令是應(yīng)用于終端設(shè)備與PC應(yīng)用之間的連接與通信的指令,說白了,AT指令就是大家定義好的,能表達特殊意義的字符串,每條AT命令中只能包含一條AT指令,就比如說A發(fā)送:“吃飯了”,B就會回復(fù):“好的”。
AT指令用法:
-
測試命令(Test Command)
- 僅僅發(fā)送指令 “AT” 即測試ESP8266模塊是否準(zhǔn)備好,若準(zhǔn)備好則響應(yīng)“OK”。
-
讀取命令(Read Command)
- 在AT指令后面加上“=?”即構(gòu)成測試命令。例如“AT+MODE?”,會列舉當(dāng)前是什么模式。
-
執(zhí)行命令(Execute Command)
- 在AT指令后面加上“=”再接上相應(yīng)的參數(shù)即可,例如“AT+MODE=NORMAL”,將當(dāng)前模式設(shè)置為正常模式。對于一些沒有參數(shù)的指令則不需要加參數(shù), 比如”AT+RESET”。
AP/STA模式
ESP8266為一個WiFi透傳模塊,和藍牙透傳模塊具有主從兩種工作模式一樣,也具有兩種工作模式:STA模式(Station)和AP模式(Access Point),一般WiFi模塊還會有一個STA+AP模式,即可以在兩種模式下切換的狀態(tài)。
??AP模式下,WiFi模塊產(chǎn)生熱點,提供無線接入服務(wù),允許其它無線設(shè)備接入,提供數(shù)據(jù)訪問,一般的無線路由/網(wǎng)橋工作在該模式下。該模式對應(yīng)TCP傳輸協(xié)議中的服務(wù)端(TCP Server)。
??STA模式下,WiFi模塊為連接到無線網(wǎng)絡(luò)的終端(站點),可以連接到AP,一般無線網(wǎng)卡工作在STA模式下。該模式對應(yīng)TCP傳輸協(xié)議中的客戶端(TCP Client)。
TCP/UDP/透傳
TCP
TCP是一種面向連接的,提供可靠交付服務(wù)和全雙工通信的,基于字節(jié)流的端到端的傳輸層通信協(xié)議。
- TCP在傳輸數(shù)據(jù)之前必須先建立連接,數(shù)據(jù)傳輸結(jié)束后要釋放連接。
- 每一條TCP連接只能有2個端點,故TCP不提供廣播或多播服務(wù)。
- TCP提供可靠交付,通過TCP連接傳輸?shù)臄?shù)據(jù),無差錯、不丟失、不重復(fù)、并且按序到達。
- TCP是面向字節(jié)流的。雖然應(yīng)用進程和TCP的交互是一次一個數(shù)據(jù)塊(大小不等),但TCP把應(yīng)用程序交下來的數(shù)據(jù)看成僅僅是一連串的無結(jié)構(gòu)的字節(jié)流。TCP并不知道所傳輸?shù)淖止?jié)流的含義。
UDP
UDP是一種無連接的,盡最大努力交付的,基于報文的端到端的傳輸層通信協(xié)議。
- UDP,在發(fā)送數(shù)據(jù)之前不需要建立連接。
- UDP不保證可靠交付,主機不需要位置復(fù)雜的連接狀態(tài)。
- UDP是面向報文的。UDP對應(yīng)用層交下來的報文,既不合并,也不拆分,而是保留這些報文的的邊界,即應(yīng)用層交給UDP多長的報文,UDP就照樣發(fā)送,即一次發(fā)送一個報文。在接收端,UDP一次交付一個完整的報文。
- UDP沒有擁塞控制,網(wǎng)絡(luò)出現(xiàn)的擁塞不會使源主機的發(fā)送速率降低。
- UDP支持一對一、一對多、多對一和多對多的交互通信。
- UDP的首部開銷小,只有8個字節(jié),比TCP的20個字節(jié)的首部要短。
透傳
透傳,又稱透明傳輸,具體來說就是“輸入即輸出(如從WiFi模塊串口輸入的字符會透傳到服務(wù)器端)”,數(shù)據(jù)不改變,不同協(xié)議之間的轉(zhuǎn)換(如串口到WiFi、藍牙等)由模塊完成。使用者無需關(guān)心內(nèi)部具體實現(xiàn),因此模塊對于使用者是“透明的”、似乎不存在的(因為可無視中間的實現(xiàn)原理)。一個高度封裝的模塊,應(yīng)該隱藏內(nèi)部實現(xiàn)細(xì)節(jié),僅對外提供使用接口。
固件
固件是寫入存儲器中的程序,在單片機中就是寫到Flash中的程序。
實物圖片
連接方式
先說USB轉(zhuǎn)TTL與esp8266的接法
USB轉(zhuǎn)TTL模塊 | esp8266 |
---|---|
RXD | TX |
TXD | RX |
GND | GND |
3.3V | 3.3V |
VCC | EN |
說明:
1.TXD發(fā)送引腳、RXD接收引腳,發(fā)送對接收,所以USB轉(zhuǎn)TTL與esp8266的RXD、TXD交叉相接。
2.3.3V相接后可能無法啟動esp8266,這是因為USB轉(zhuǎn)TTL的3.3V引腳并沒有真的達到3.3V,不要慌直接將esp8266的3.3V引腳接入USB轉(zhuǎn)TTL的5V引腳,如果esp8266突然就發(fā)熱并且燙的無法觸摸,立馬拔掉,如果說溫度你的觸感還能接受,那就沒問題,畢竟牛X的esp8266沒那么脆弱。
3.esp8266的EV引腳有些可能會標(biāo)注成CH_PD,不要怕功能一樣的,接線方式也是一樣的
上電:正常工作驗證
本模塊(ESP01s)可以工作在三種模式:1. STA 2 .AP 3 .AP+STA
上電后,藍色燈微弱閃爍后熄滅,紅燈長亮。
初始波特率為115200
注意:發(fā)送命令的時候,勾選上“發(fā)送新行
可以使用 AT+CWMODE?
進行查詢
AP 模式
1. 建立 AP
(1)重啟模塊
發(fā)送命令:AT+RST
(執(zhí)行指令)
指令:AT+RST
響應(yīng):OK
(2)設(shè)置模塊
發(fā)送命令:AT+CWMODE=3
或 AT+CWMODE=2
(設(shè)置指令)
指令:AT+CWMODE=
說明::1-Station模式,2-AP模式,3-AP兼Station模式
響應(yīng):OK
說明:需重啟后生效(AT+RST)
(3)配置 AP 參數(shù)
發(fā)送命令:AT+CWSAP="ESP8266","12345678",1,3
(設(shè)置指令)
指令:AT+ CWSAP= ,,,
說明:指令只有在AP模式開啟后有效
:字符串參數(shù),接入點名稱
:字符串參數(shù),密碼最長64字節(jié),ASCII
:通道號
< ecn >:0-OPEN,1-WEP,2-WPA_PSK,3-WPA2_PSK,4-WPA_WPA2_PSK
響應(yīng):OK
刷新無線網(wǎng)絡(luò)列表,可見到 SSID 為 ESP8266的無線網(wǎng)絡(luò)列于其中(進行連接):
注意:此時連接網(wǎng)絡(luò)會可能出現(xiàn)連接不上的情況,請發(fā)送 AT+RST 命令并等待幾分鐘之
后再連接
(4)查看已接入設(shè)備的 IP
連接上 ESP8266 后,發(fā)送命令:AT+CWLIF
(執(zhí)行指令)
指令:AT+CWLIF
說明:查看已接入設(shè)備的 IP
響應(yīng):
OK
說明::已接入設(shè)備的 IP 地址
(5)查詢本機 IP 地址
發(fā)送命令:AT+CIFSR
(執(zhí)行指令)
指令:AT+CIFSR
說明:查看本模塊的 IP 地址
注意:AP 模式下無效!會造成死機現(xiàn)象!
響應(yīng):
說明::本模塊 IP 地址
但實際測試中并未發(fā)生死機現(xiàn)象。
查看本機配置模式:CWMODE=,為 AP 模式。
發(fā)送命令:AT+CIFSR=?
(測試指令),返回響應(yīng)如下:
同樣未出現(xiàn)死機現(xiàn)象。
2. Server 方法收發(fā)
(1)開啟多連接模式
發(fā)送命令:AT+CIPMUX=1
(設(shè)置指令)
指令:AT+CIPMUX=
說明::0-單路連接模式,1-多路連接模式
響應(yīng):OK
(2)創(chuàng)建服務(wù)器
發(fā)送命令:AT+CIPSERVER=1,8080
(設(shè)置指令)
指令:AT+CIPSERVER=[,]
說明::0-關(guān)閉 server 模式,1-開啟 server 模式
:端口號,缺省值為 333
響應(yīng):OK
說明:(1) AT+ CIPMUX=1 時才能開啟服務(wù)器;關(guān)閉 server 模式需要重啟
? (2)開啟 server 后自動建立 server 監(jiān)聽,當(dāng)有 client 接入會自動按順序占用一個連接。
開啟 server 服務(wù)如下圖所示
關(guān)閉 server 服務(wù)如下圖所示:
打開 fireTools.exe,點擊 Connect 按鈕連接不上,可知 server 服務(wù)未開啟
注意:服務(wù)器IP為ESP8266的IP地址AT+CIFSR
可以查詢
來自野火的調(diào)試工具
鏈接:
https://pan.baidu.com/s/1J6oE03EcvzPqaZmM20pchQ
提取碼:1234
–來自百度網(wǎng)盤超級會員V1的分享
重新開啟 server 服務(wù)(注意:之前需要再發(fā)送一遍 AT+CIPMUX=1
以重新開啟多連接模式)。
點擊 Connect 按鈕
連接成功后,串口收到模塊返回的數(shù)據(jù)串:0,CONNECT
180S(默認(rèn)值)后,連接自動斷開,返回 0,CLOSED,客戶端的相應(yīng)按鈕變成灰色。
全過程如下圖:
(3) 設(shè)置服務(wù)器超時時間
發(fā)送命令 AT+CIPSTO=2880
(設(shè)置指令)
指令:AT+CIPSTO=
說明:
響應(yīng):OK
(4) 建立客戶端
注意:服務(wù)器IP為ESP8266的IP地址
AT+CIFSR
可以查詢
(5) 查看當(dāng)前連接
發(fā)送命令 AT+CIPSTATUS
(執(zhí)行指令)
指令:AT+CIPSTATUS
響應(yīng):STATUS: + CIPSTATUS:,,,,
? OK
說明:
:連接的 id 號 0-4
:字符串參數(shù),類型 TCP 或 UDP
:字符串參數(shù),IP 地址
:端口號
: 0-本模塊做 client 的連接,1-本模塊做 server 的連接
(6) 向某個連接發(fā)送數(shù)據(jù)
發(fā)送命令 AT+CIPSEND=0,6
(設(shè)置指令) (通過上一條指令 AT+CIPSTATUS 得知 ID=0)
指令:
1)單路連接時(+CIPMUX=0),指令為:AT+CIPSEND=
2)多路連接時(+CIPMUX=1) ,指令為: AT+CIPSEND= ,
響應(yīng):
收到此命令后先換行返回”>”,然后開始接收串口數(shù)據(jù)
當(dāng)數(shù)據(jù)長度滿 length 時發(fā)送數(shù)據(jù)。
如果未建立連接或連接被斷開,返回 ERROR
如果數(shù)據(jù)發(fā)送成功,返回 SEND OK
說明:
:需要用于傳輸連接的 id 號
:數(shù)字參數(shù),表明發(fā)送數(shù)據(jù)的長度,最大長度為 2048
此時連接已建立,可以進行數(shù)據(jù)的雙向收發(fā)。
3. Client 方法收發(fā)
(0) 關(guān)閉 server 服務(wù) (如果沒有開啟 server 服務(wù),可免除此步驟)
發(fā)送命令:AT+CIPSERVER=0
(設(shè)置指令)
指令:AT+CIPSERVER=[,]
說明::0-關(guān)閉 server 模式,1-開啟 server 模式
:端口號,缺省值為 333
響應(yīng):OK
說明:(1) AT+ CIPMUX=1 時才能開啟服務(wù)器;關(guān)閉 server 模式需要重啟
(2)開啟 server 后自動建立 server 監(jiān)聽,當(dāng)有 client 接入會自動按順序占用一個連
接。
關(guān)閉 server 服務(wù)如下圖所示:
并重啟AT+RST
(1) 創(chuàng)建服務(wù)器
查看PC端連接設(shè)備的IP
啟動監(jiān)聽
(2) 開啟多連接模式
發(fā)送命令:AT+CIPMUX=1
(設(shè)置指令)
指令:AT+CIPMUX=
說明::0-單路連接模式,1-多路連接模式
響應(yīng):OK
(3) 建立 TCP 連接
發(fā)送命令 AT+CIPSTART=0,"TCP","192.168.4.2",8080
(設(shè)置指令)
指令:1)單路連接時(+CIPMUX=0),指令為:AT+CIPSTART= ,,
2)多路連接時(+CIPMUX=1),指令為:AT+CIPSTART=,,,
響應(yīng):如果格式正確且連接成功,返回 OK,否則返回 ERROR
如果連接已經(jīng)存在,返回 ALREAY CONNECT
說明::0-4,連接的 id 號
:字符串參數(shù),表明連接類型,”TCP”-建立 tcp 連接,”UDP”-建立 UDP 連接
:字符串參數(shù),遠(yuǎn)程服務(wù)器 IP 地址
:遠(yuǎn)程服務(wù)器端口號
如下圖所示:
(4) 向服務(wù)器發(fā)送數(shù)據(jù)
發(fā)送命令 AT+CIPSEND=0,10
(設(shè)置指令)(通過上一條指令 AT+CIPSTART 設(shè)置為 ID=0)
指令:1)單路連接時(+CIPMUX=0),指令為:AT+CIPSEND=
2)多路連接時(+CIPMUX=1) ,指令為: AT+CIPSEND= , 響應(yīng):收到此命令后先換行返回”>”,然后開始接收串口數(shù)據(jù)
當(dāng)數(shù)據(jù)長度滿 length 時發(fā)送數(shù)據(jù)。
如果未建立連接或連接被斷開,返回 ERROR
如果數(shù)據(jù)發(fā)送成功,返回 SEND OK
說明::需要用于傳輸連接的 id 號
:數(shù)字參數(shù),表明發(fā)送數(shù)據(jù)的長度,最大長度為 2048
此時連接已建立,可以進行數(shù)據(jù)的雙向收發(fā)。用服務(wù)器向 ESP8266 發(fā)送數(shù)據(jù),正常。
STA模式
1.建立 STA
(1) 重啟模塊
發(fā)送命令:AT+RST
(執(zhí)行指令)
指令:AT+RST
響應(yīng):OK
(2) 設(shè)置模塊
發(fā)送命令:AT+CWMODE=3
或AT+CWMODE=1
(設(shè)置指令)
指令:AT+CWMODE=
說明::1-Station模式,2-AP模式,3-AP兼Station模式
響應(yīng):OK
說明:需重啟后生效(AT+RST)
將模塊設(shè)置為模式 1,此時刷新網(wǎng)絡(luò)列表可見由 ESP8266 建立的網(wǎng)絡(luò)從列表中消失了
(3) 查看當(dāng)前無線路由器列表
發(fā)送命令:AT+CWLAP
(執(zhí)行指令)
指令:AT+CWLAP
響應(yīng):正確:(終端返回AP列表)
+ CWLAP: ,,OK
錯誤:ERROR
說明:< ecn >:0-OPEN,1-WEP,2-WPA_PSK,3-WPA2_PSK,4-WPA_WPA2_PSK
:字符串參數(shù),接入點名稱
:信號強度
如搜索不到信號,響應(yīng):
請重新上電并嚴(yán)格按照 AT 命令再發(fā)送一遍。
沒有列表返回的時候請耐心等待,否則會出現(xiàn)“busy”
(4) 加入當(dāng)前無線網(wǎng)絡(luò)
發(fā)送命令:AT+CWJAP=”MERSAIN”,”XXXXXXXX”
(設(shè)置指令)
指令:AT+CWJAP=,< pwd >
說明::字符串參數(shù),接入點名稱
:字符串參數(shù),密碼,最長64字節(jié)ASCII
響應(yīng):正確:OK
錯誤:ERROR
檢測是否真的連上該路線網(wǎng)絡(luò)
錯誤的 SSID 也可以連接上,測試后發(fā)現(xiàn)果然如此,輸入實際不存在的賬號密碼返回也是 OK,
但發(fā)送 AT+CIFSR(查看模塊地址),返回 ERROR,可通過此命令來判斷有沒有真正連接上。
發(fā)送命令:AT+CWJAP?
(查詢指令)
指令:AT+CWJAP?
響應(yīng):返回當(dāng)前選擇的AP
+ CWJAP:
OK
說明::字符串參數(shù),接入點名稱
斷電。上電后發(fā)送 AT+CWJAP?,返回同上,系統(tǒng)保持上次的狀態(tài)。
查看模塊 IP 地址
發(fā)送命令:AT+CIFSR
(執(zhí)行指令)
指令:AT+CIFSR
響應(yīng):正確:+ CIFSR:
OK
錯誤:ERROR
說明::字符串參數(shù),接入點名稱
2. Server 方法收發(fā)
(1)開啟多連接模式
發(fā)送命令:AT+CIPMUX=1
(設(shè)置指令)
指令:AT+CIPMUX=
說明::0-單路連接模式,1-多路連接模式
響應(yīng):OK
(2)創(chuàng)建服務(wù)器
發(fā)送命令:AT+CIPSERVER=1,8080
(設(shè)置指令)
指令:AT+CIPSERVER=[,]
說明::0-關(guān)閉 server 模式,1-開啟 server 模式
:端口號,缺省值為 333
響應(yīng):OK
說明:(1) AT+ CIPMUX=1 時才能開啟服務(wù)器;關(guān)閉 server 模式需要重啟
? (2)開啟 server 后自動建立 server 監(jiān)聽,當(dāng)有 client 接入會自動按順序占用一個連接。
開啟 server 服務(wù)如下圖所示
關(guān)閉 server 服務(wù)如下圖所示:
打開 fireTools.exe,點擊 Connect 按鈕連接不上,可知 server 服務(wù)未開啟
注意:服務(wù)器IP為ESP8266的IP地址AT+CIFSR
可以查詢
來自野火的調(diào)試工具
鏈接:
https://pan.baidu.com/s/1J6oE03EcvzPqaZmM20pchQ
提取碼:1234
–來自百度網(wǎng)盤超級會員V1的分享
重新開啟 server 服務(wù)(注意:之前需要再發(fā)送一遍 AT+CIPMUX=1
以重新開啟多連接模式)。
點擊 Connect 按鈕
連接成功后,串口收到模塊返回的數(shù)據(jù)串:0,CONNECT
180S(默認(rèn)值)后,連接自動斷開,返回 0,CLOSED,客戶端的相應(yīng)按鈕變成灰色。
全過程如下圖:
(3) 設(shè)置服務(wù)器超時時間
發(fā)送命令 AT+CIPSTO=2880
(設(shè)置指令)
指令:AT+CIPSTO=
說明:
響應(yīng):OK
(4) 建立客戶端
注意:服務(wù)器IP為ESP8266的IP地址
AT+CIFSR
可以查詢
(5) 查看當(dāng)前連接
發(fā)送命令 AT+CIPSTATUS
(執(zhí)行指令)
指令:AT+CIPSTATUS
響應(yīng):STATUS: + CIPSTATUS:,,,,
? OK
說明:
:連接的 id 號 0-4
:字符串參數(shù),類型 TCP 或 UDP
:字符串參數(shù),IP 地址
:端口號
: 0-本模塊做 client 的連接,1-本模塊做 server 的連接
(6) 向某個連接發(fā)送數(shù)據(jù)
發(fā)送命令 AT+CIPSEND=0,4
(設(shè)置指令) (通過上一條指令 AT+CIPSTATUS 得知 ID=0)
指令:
1)單路連接時(+CIPMUX=0),指令為:AT+CIPSEND=
2)多路連接時(+CIPMUX=1) ,指令為: AT+CIPSEND= ,
響應(yīng):
收到此命令后先換行返回”>”,然后開始接收串口數(shù)據(jù)
當(dāng)數(shù)據(jù)長度滿 length 時發(fā)送數(shù)據(jù)。
如果未建立連接或連接被斷開,返回 ERROR
如果數(shù)據(jù)發(fā)送成功,返回 SEND OK
說明:
:需要用于傳輸連接的 id 號
:數(shù)字參數(shù),表明發(fā)送數(shù)據(jù)的長度,最大長度為 2048
此時連接已建立,可以進行數(shù)據(jù)的雙向收發(fā)。
3. Client 方法收發(fā)
(0) 關(guān)閉 server 服務(wù) (如果沒有開啟 server 服務(wù),可免除此步驟)
發(fā)送命令:AT+CIPSERVER=0
(設(shè)置指令)
指令:AT+CIPSERVER=[,]
說明::0-關(guān)閉 server 模式,1-開啟 server 模式
:端口號,缺省值為 333
響應(yīng):OK
說明:(1) AT+ CIPMUX=1 時才能開啟服務(wù)器;關(guān)閉 server 模式需要重啟
(2)開啟 server 后自動建立 server 監(jiān)聽,當(dāng)有 client 接入會自動按順序占用一個連
接。
關(guān)閉 server 服務(wù)如下圖所示:
并重啟AT+RST
(1) 創(chuàng)建服務(wù)器
查看PC端連接設(shè)備的IP
啟動監(jiān)聽
(2) 開啟多連接模式
發(fā)送命令:AT+CIPMUX=1
(設(shè)置指令)
指令:AT+CIPMUX=
說明::0-單路連接模式,1-多路連接模式
響應(yīng):OK
(3) 建立 TCP 連接
發(fā)送命令 AT+CIPSTART=0,"TCP","192.168.0.187",8080
(設(shè)置指令)
指令:1)單路連接時(+CIPMUX=0),指令為:AT+CIPSTART= ,,
2)多路連接時(+CIPMUX=1),指令為:AT+CIPSTART=,,,
響應(yīng):如果格式正確且連接成功,返回 OK,否則返回 ERROR
如果連接已經(jīng)存在,返回 ALREAY CONNECT
說明::0-4,連接的 id 號
:字符串參數(shù),表明連接類型,”TCP”-建立 tcp 連接,”UDP”-建立 UDP 連接
:字符串參數(shù),遠(yuǎn)程服務(wù)器 IP 地址
:遠(yuǎn)程服務(wù)器端口號
如下圖所示:
(4) 向服務(wù)器發(fā)送數(shù)據(jù)
發(fā)送命令 AT+CIPSEND=0,3
(設(shè)置指令)(通過上一條指令 AT+CIPSTART 設(shè)置為 ID=0)
指令:1)單路連接時(+CIPMUX=0),指令為:AT+CIPSEND=
2)多路連接時(+CIPMUX=1) ,指令為: AT+CIPSEND= , 響應(yīng):收到此命令后先換行返回”>”,然后開始接收串口數(shù)據(jù)
當(dāng)數(shù)據(jù)長度滿 length 時發(fā)送數(shù)據(jù)。
如果未建立連接或連接被斷開,返回 ERROR
如果數(shù)據(jù)發(fā)送成功,返回 SEND OK
說明::需要用于傳輸連接的 id 號
:數(shù)字參數(shù),表明發(fā)送數(shù)據(jù)的長度,最大長度為 2048
此時連接已建立,可以進行數(shù)據(jù)的雙向收發(fā)。用服務(wù)器向 ESP8266 發(fā)送數(shù)據(jù),正常。
關(guān)注收藏不迷路文章來源:http://www.zghlxwxcb.cn/news/detail-463441.html
給那些看完的朋友,獎勵一個 赤赤博客-后端+前端,覺得不錯的話可以推薦給身邊的朋友喲!文章來源地址http://www.zghlxwxcb.cn/news/detail-463441.html
到了這里,關(guān)于認(rèn)識 ESP8266—ESP-01S (含AT指令)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!