ESP8266 01S WIFI 網絡


        ESP8266是一款超低功耗的UART-WiFi 透傳模塊,擁有業內極富競爭力的封裝尺寸和超低能耗技術,專為移動設備和物聯網應用設計,可將用戶的物理設備連接到Wi-Fi 無線網絡上,進行互聯網或局域網通信,實現聯網功能。

ESP8266是上海樂鑫信息科技設計的低功耗WiFi芯片,集成完整的TCP/IP協議棧和MCU。而ESP8266模塊是深圳安信可公司基於ESP8266芯片研發(增加必要外圍電路、串口flash、板載天線等)的串口WiFi模塊,成本低、使用簡便、功能強大。

硬件與網絡的橋梁

和串口藍牙模塊一樣,串口WiFi模塊也是擴展單片機功能的又一神器。在沒有接觸8266之前,我對單片機如何聯網的問題很是好奇,在書里看過用笨重繁瑣的以太網模塊實現,但一點都不帥好吧。而小巧的 ESP8266 WiFi模塊通過串口AT指令與單片機通訊,實現串口透傳,非常好上手。

透傳,又稱透明傳輸,具體來說就是“輸入即輸出(如從WiFi模塊串口輸入的字符會透傳到服務器端)”,數據不改變,不同協議之間的轉換(如串口到WiFi、藍牙等)由模塊完成。使用者無需關心內部具體實現,因此模塊對於使用者是“透明的”、似乎不存在的(因為可無視中間的實現原理)。一個高度封裝的模塊,應該隱藏內部實現細節,僅對外提供使用接口。

把硬件聯網之后,就再也不是“玩單機”了。配合服務器端的Socket網絡編程,可以玩許多東西。所以我覺得WiFi模塊是連接軟件(網絡編程)與硬件(單片機)的橋梁,把我所學的單片機和Web知識聯系起來了。

而近來“物聯網”或者說“智能硬件”似乎也火了起來,許多強大的芯片和模塊的出現使得聯網設備的開發門檻大大降低。正是有了這些為物聯網大業鋪路的各大廠商們,我等對網絡一竅不通的渣渣也能輕松將硬件聯網、實現網絡通訊。

 

原理圖及引腳說明

引腳說明

Function Description
URXD UART_RXD,接收
UTXD UART_TXD,發送
GPIO 16 外部Reset信號,低電平復位,高電平工作(默認高)
GND GND
VCC 3.3V,模塊供電
GPIO 0 工作模式選擇:懸空:FlashBoot,工作模式;下拉:UARTDownload,下載模式
CH_PD 高電平工作;低電平模塊供電關掉
GPIO 2 (1)開機上電時必須為高電平,禁止硬件下拉;(2)內部默認已拉高

模塊的連線

要讓模塊上電正常工作只需三處接線:VCC和CH_PD接3.3電源正極,GND接地。剛好USB-TTL下載模塊上有3.3V的電源。而使用串口調試要再把模塊與下載器的TXD和RXD交叉連接。這樣一來WiFi模塊就能與電腦連接、用串口助手進行測試了。

模塊的連線

模塊上電

電腦安裝好USB-TTL模塊的驅動后,USB口插上模塊,在設備管理器查看串口號后,打開串口調試工具sscom,串口號選擇模塊對應的,默認波特率115200,數據-停止-校驗-流控:8-1-None-None,勾選“發送新行”(一定一定要記得勾選“發送新行”,否則WiFi無法識別AT指令),點擊“打開串口”按鈕,然后將CH_PD引腳的3.3V電源斷了重接進行復位,若串口打印亂碼后看到“ready”,說明模塊上電初始化正常。

模塊復位

和某些需要按鍵進入AT指令模式的藍牙模塊不同,ESP8266上電后就運行在AT指令模式下。

免冷啟下載器的坑

記得有一次在實驗室用ESP8266時怎么都不能成功上電初始化顯示“ready”,AT指令也無法工作。最終把固件燒了一遍又一遍,把模塊都“玩壞了”也還是不行,就像見了鬼一樣……最終竟然是因為使用了免冷啟下載器的原因。后來才知道ESP8266電源要求十分苛刻,必須“穩定純凈”,估計這種“高級下載器”內部電路會造成模塊上電時電源不穩定,從而導致上電初始化失敗。如果你也遇到同樣的問題不妨換個USB-TTL下載器試試。

 

ESP8266的AT指令

AT指令最早在藍牙模塊上接觸過,所謂AT指令實質上就是一些起控制作用的特殊字符串。模塊可以通過AT指令控制使用和用源代碼API函數開發,前者開發速度快,難度非常低(傻瓜化使用)。后者靈活,難度較大。 而我只用過AT指令,所以本文不涉及SDK開發。

 

 

 

AT+RST 重啟

AT+RESTORE  恢復初始化,和手機恢復出廠一樣

AT+GMR 查看版本信息

AT+UART=115200,8,1,0,0  "修改波特率、也叫設置串口配置"8是數據位8字節

 

AT+CWMODE?   查詢工作模式  

AT+CWMODE_DEF=1   配置WiFi工作模式

1.Station (客戶端模式,模塊可以連接到路由器)     2.AP (接入點模式,相當於路由器)    3.Station+AP (兩種模式共存)")

 

Station:

AT+CWLAP  掃描當前附近WiFi,模塊會返回可用AP列表。

AT+CWJAP="WiFi名稱","WiFi密碼"  連接到指定的路由器, 返回的“WIFI CONNECTED”說明連接成功,“WIFI GOT IP”代表模塊分配到了IP。

AT+CWQAP 斷開當前連接的WiFi。

AT+CWJAP?   查詢當前連接的路由器

 

AP:

AT+CWSAP="ESP8266","12345678",3,4   設置AP的ssid為“ESP8266”,密碼12345678,最后兩個參數3和4分別表示信道和加密方式。

 AT+CWLIF  可查看當前連接到AP的客戶端列表。

 

 AT+CIFSR  查詢IP地址、MAC地址

 

TCP/IP:

 AT+CIPMUX=0   設置單連接

AT+CIPMUX=1   設置成多連接 ,才能開啟TCP服務

AT+CIPSERVER=1,8080 開啟TCP服務

AT+CIPSERVER=0,8080 關閉TCP服務 

AT+CIPPORT?     查詢當前的TCP/UDP端口號

AT+CIPSTART="TCP","192.168.4.1",1234(指令參數分別為連接類型、目標IP地址和端口號)向服務器發起TCP連接請求

AT+CIPMODE=1  開啟透傳模式

AT+CIPSEND 進入透傳模式,此時模塊會把所有串口收到的數據都從TCP端口發送至服務器,同樣的,從服務器收到的數據也會從模塊串口發送出去。這樣WiFi模塊就真正成為了連接硬件與網絡的橋梁,實現了串口到TCP的協議轉換。若要退出透傳模式返回AT指令模式,需發送不帶回車換行的 +++ (取消勾選sscom的“發送新行”再發送指令即可)

 

AT+CWSMARTSTART   啟動智能配網 (使用微信可以雲服務,安信可平台)

 

AT+CWSMARTSTOP  停止智能配網    (使用微信可以雲服務,安信可平台)

AT+CLDSTART   開啟雲服務  (使用微信可以雲服務,然后用安卓客戶端)

 

其他常用指令

除了上面列舉的主要功能指令,ESP8266 模塊還有一些常用的指令:

指令 描述
AT+CIOBAUD 設置串口波特率
AT+SAVETRANSLINK 保存透傳到 Flash
AT+CWSTARTSMART 開啟 SmartConfig
AT+CWSTOPSMART 停止 SmartConfig

AT+CIOBAUD 指令用於設置串口波特率,示例: AT+CIOBAUD=9600 (設置波特率為9600)。 設置好TCP連接信息后通過 AT+SAVETRANSLINK 指令把TCP連接透傳保存到Flash,掉電不丟失。重新上電后模塊會自動聯網建立TCP連接后進入透傳模式,實現了真正意義上的透傳,示例: AT+SAVETRANSLINK=1,"192.168.43.140",1234,"TCP" 。而 AT+CWSTARTSMART 和 AT+CWSTOPSMART 則時用來實現智能配置(Smart Config)的。


 

注意事項

使用WiFi模塊的一些細節及注意事項

  1. 模塊使用3.3V供電,一定注意電源的穩定,一些USB轉串口模塊電源不能滿足要求。

  2. 模塊在連接WiFi后若斷電,則會在下一次上電后自動重連。同理,模塊在透傳模式下斷電后,下次上電仍會進入透傳模式,不響應AT指令,很容易誤以為模塊壞了。

  3. 如果斷開TCP連接時沒有實現完整的TCP退出流程,ESP8266 會判斷為異常開,對TCP server 進行重連。

  4. AT指令一定以回車換行符”\r\n”結尾,但退出透傳模式需發送不帶回車換行的 +++

參考資料1 參考資料2

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM