esp8266,tcp通信實(shí)例詳解
ESP8266工作在station模式下,需確認(rèn)ESP8266已經(jīng)連接AP(路由器)并分配到IP地址,啟用client連接
ESP8266工作在soft-AP模式下,需確認(rèn)連接ESP8266的設(shè)備已被分配到IP地址,啟用client連接
ESP8266 TCP Client模式配置流程
程序?qū)崿F(xiàn)內(nèi)容:1.在staTIon模式下,ESP8266作為client、server進(jìn)行TCP連接
2.實(shí)現(xiàn)數(shù)據(jù)的發(fā)送、接收(同時(shí)回傳)
實(shí)現(xiàn)思路:
TCP網(wǎng)絡(luò)通信分層為:應(yīng)用層、網(wǎng)絡(luò)層、數(shù)據(jù)鏈路層、物理層;
1. 設(shè)置ESP8266為staTIon模式,在數(shù)據(jù)鏈路層連接AP,獲取IP地址;
2. 在網(wǎng)絡(luò)層進(jìn)行TCP連接:作為client連接遠(yuǎn)程server,作為server監(jiān)聽(tīng)遠(yuǎn)程client信息;
數(shù)據(jù)鏈路層:
1. 設(shè)置ESP8266為staTIon模式:wifi_set_opmode(STATION_MODE);
2. 配置連接到AP的相關(guān)參數(shù),在該步驟中,需要知道AP的名稱( ssid )、密碼( password ): 官方所給的SDK中,該配置執(zhí)行后,wifi模塊自動(dòng)與AP進(jìn)行連接
為確保ESP8266已同AP建立穩(wěn)定的連接并且已獲取到IP地址,可注冊(cè)該事件的回調(diào)函數(shù)進(jìn)行判定:
1.注冊(cè)回調(diào)函數(shù)
2.注冊(cè)定時(shí)器,對(duì)回調(diào)函數(shù)中的flag_sta_conip進(jìn)行判定以確定是否已獲得IP地址
網(wǎng)絡(luò)層:
1. 檢測(cè)ESP8266是否已同AP建立穩(wěn)定連接,若是,則開(kāi)始建立TCP client連接:
建立TCP client連接(在該設(shè)置中,需要知道遠(yuǎn)程server的IP地址及端口號(hào)),同時(shí)注冊(cè)連接、收發(fā)數(shù)據(jù)的回調(diào)函數(shù):
2. ESP8266開(kāi)啟server服務(wù)(在該步驟中,通過(guò)對(duì)espconn_accept()函數(shù)返回值的判定,TRUE則關(guān)閉設(shè)置server開(kāi)啟的定時(shí)器,F(xiàn)ALSE則繼續(xù)保持開(kāi)通,直到開(kāi)啟成功)
接收數(shù)據(jù)的回調(diào)函數(shù):
發(fā)送數(shù)據(jù)的回調(diào)函數(shù):
實(shí)現(xiàn)效果: