0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

ESP8266的兩種工作模式下的數(shù)據(jù)傳輸

FPGA之家 ? 來源:FPGA之家 ? 作者:FPGA之家 ? 2022-07-27 09:08 ? 次閱讀

ESP8266支持3種模式:Station模式、AP模式和Station+AP混合模式。關(guān)于這三種模式的區(qū)別可以類比我們的手機,當(dāng)手機連接無線網(wǎng)時,此時手機為Station模式,當(dāng)手機打開移動熱點時,此時手機為AP模式。簡單的說就是Station模式就是作為終端,AP模式就是作為路由器。而Station+AP混合模式,就和路由器的無線橋接功能是一樣的,既可以連接別的無線網(wǎng),同時也可以自己作為路由器。

本文分享ESP8266的兩種工作模式下的數(shù)據(jù)傳輸:Station模式作為TCP客戶端、AP模式作為TCP服務(wù)器,分別和網(wǎng)絡(luò)調(diào)試助手進行通訊的AT指令配置流程。

AT指令可以由MCU的串口來完成,這樣就可以實現(xiàn)兩塊ESP8266之間進行通訊,電腦和ESP8266的無線控制,手機和ESP8266的無線控制等。

955f1e46-0d46-11ed-ba43-dac502259ad0.png

ESP8266作為TCP客戶端,電腦作為TCP服務(wù)器

ESP8266模塊配置為Station模式連接WiFi,電腦也連接同一個WiFi,電腦使用網(wǎng)絡(luò)調(diào)試助手建立一個TCP服務(wù)器,指定服務(wù)器地址和端口號。

ESP8266作為TCP客戶端,和電腦上的網(wǎng)絡(luò)調(diào)試助手進行通訊,或者直接透傳。實現(xiàn)的效果是模塊發(fā)送的數(shù)據(jù),電腦可以接收到,電腦發(fā)送的數(shù)據(jù),模塊可以接收到。

1.模塊配置為Station模式:AT+CWMODE=1
2.配置WiFi信息按照信號強度排序:AT+CWLAPOPT=1,127
3.掃描附近的WiFi信息:AT+CWLAP

//配置當(dāng)執(zhí)行AT+CWLAP指令時,WiFi信息按照信號強度排序
AT+CWLAPOPT=1,15
//1表示按照信號強度排序,15表示W(wǎng)iFi信息只顯示加密方式,WiFi名稱,信號強度,MAC地址

//掃描附近的WiFi信息
AT+CWLAP
+CWLAP:([加密方式],[WiFi名稱],[RSSI信號強度],[MAC地址])
+CWLAP:(4,"Tenda_A3AA00",-76,"c835aa:01")
+CWLAP:(4,"Tenda_A3AA00Sander",-81,"e432e3:c4")
+CWLAP:(3,"EZVIZ_D38296744",-81,"5095e0:16")
+CWLAP:(4,"TP-LINK_4723",-84,"ccfb47:23")

4.連接指定WiFi:AT+CWJAP="Tenda_A3AA00","password123"

//連接指定AP
AT+CWJAP="Tenda_A3AA00","password123"

//如果WiFi名稱重復(fù),需要指定MAC地址來確定要連接的WiFi
AT+CWJAP="Tenda_A3AA00","password123","c835aa:01"

//如果WiFi名稱或密碼中含有特殊字符,前面要添加轉(zhuǎn)義符號
如,目標(biāo)WiFi名稱為:ab,c,密碼為:0123456789",則指令如下:
AT+CWJAP="ab\,c","0123456789""

//查詢已經(jīng)連接的WiFi信息
AT+CWJAP?

//斷開當(dāng)前WiFi連接
AT+CWQAP

5.設(shè)置單連接模式:AT+CIPMUX=0

//如果之前使用AP模式開啟過TCP服務(wù)器,要先關(guān)閉TCP服務(wù)器
AT+CIPSERVER=0

//設(shè)置單連接模式
AT+CIPMUX=0

6.電腦和模塊連接同一WiFi,電腦啟動網(wǎng)絡(luò)調(diào)試助手,并建立TCP服務(wù)器。

957aa828-0d46-11ed-ba43-dac502259ad0.jpg

7.模塊作為TCP客戶端,連接電腦上創(chuàng)建的TCP服務(wù)器

//主機地址和端口要和電腦上的TCP服務(wù)器保持一致,
AT+CIPSTART="TCP","192.168.43.140",6000
CONNECT

OK

8.如果連接成功,網(wǎng)絡(luò)調(diào)試助手會顯示有一個客戶端上線,并顯示了客戶端的IP為192.168.1.105

95839f5a-0d46-11ed-ba43-dac502259ad0.jpg

9.查詢當(dāng)前TCP服務(wù)器分配的IP地址:AT+CIPSTATUS

AT+CIPSTATUS

STATUS:3//3表示已經(jīng)建立TCP傳輸
+CIPSTATUS:0,"TCP","192.168.1.106",6000,26441,0//本地IP地址

OK

10.此時網(wǎng)絡(luò)調(diào)試助手(TCP服務(wù)器)發(fā)送的信息,WiFi模塊(TCP客戶端)已經(jīng)可以實時收到了。

+IPD,[數(shù)據(jù)長度]:[數(shù)據(jù)類型]
+IPD,30:HelloWorld——ByTCPServer
+IPD,28:MyBlog:www.wangchaochao.top
+IPD,16:MyWeChat:mcu149
959c9276-0d46-11ed-ba43-dac502259ad0.jpg11.客戶端發(fā)送數(shù)據(jù)到服務(wù)器。雖然服務(wù)器發(fā)送的數(shù)據(jù)客戶端可以收到,但此時模塊還處于AT模式,不能發(fā)送數(shù)據(jù)到服務(wù)器。
//設(shè)置本次要發(fā)送的字節(jié)數(shù)
AT+CIPSEND=4
OK
>

//輸入要發(fā)送的數(shù)據(jù),僅前四個字節(jié)數(shù)據(jù)被發(fā)出,其他數(shù)據(jù)無效。
Recv4bytes
SENDOK
95a74cac-0d46-11ed-ba43-dac502259ad0.jpg

以上命令只能啟動一次數(shù)據(jù)發(fā)送,如果需要數(shù)據(jù)實時收發(fā),就需要配置成透傳模式。

12.開啟透傳模式。

//開啟透傳模式,僅支持TCP單連接和UDP固定通信對端的情況
AT+CIPMODE=1

//開始透傳
AT+CIPSEND
>
//此時發(fā)送的數(shù)據(jù)會直接給TCP服務(wù)器
95bc099e-0d46-11ed-ba43-dac502259ad0.jpg

13.退出透傳模式。

//輸入不帶回車換行的三個加號:+++,退出透傳模式,返回到普通AT指令模式。
+++
//發(fā)送+++退出透傳時,請至少間隔1秒再發(fā)下?條AT指令。
AT

OK

14.斷開TCP連接。上面雖然退出了透傳模式,此時還保持著TCP連接,服務(wù)器發(fā)送的數(shù)據(jù)可以實時收到。如果要斷開TCP連接可以使用:AT+CIPCLOSE,可以看到服務(wù)器也顯示客戶端已經(jīng)離線。

95c6ea6c-0d46-11ed-ba43-dac502259ad0.jpg

ESP8266作為TCP服務(wù)器,電腦作為TCP客戶端

ESP8266配置成AP模式,并開啟TCP服務(wù)器,電腦連接ESP8266的WiFi,作為TCP客戶端,兩者之間數(shù)據(jù)傳輸。

1.模塊配置成AP模式:AT+CWMODE=2
2.設(shè)置無線網(wǎng)名稱和密碼

//設(shè)置無線網(wǎng)名稱和密碼
AT+CWSAP="ESP8266","12345678",5,3
//3表示W(wǎng)PA2_PSK加密方式

//查詢無線網(wǎng)信息
AT+CWSAP?

+CWSAP:[WiFi名稱],[WiFi密碼],[通道數(shù)],[加密方式],[最大支持連接數(shù)],[廣播]
+CWSAP:"ESP8266","12345678",5,3,4,0

3.設(shè)置無線網(wǎng)IP地址、網(wǎng)關(guān)、子網(wǎng)掩碼

//設(shè)置IP、網(wǎng)關(guān)、子網(wǎng)掩碼
AT+CIPAP="192.168.5.1","192.168.5.1","255.255.255.0"

4.建立TCP服務(wù)器,設(shè)置端口號

//使用多連接模式
AT+CIPMUX=1
OK

//指定TCP服務(wù)器端口為1001
AT+CIPSERVER=1,1001
創(chuàng)建TCP服務(wù)器之后,會自動啟動TCP服務(wù)監(jiān)聽,當(dāng)有TCP客戶端連接時,會有CONNECT提示

0,CONNECT
95e3989c-0d46-11ed-ba43-dac502259ad0.jpg

5.網(wǎng)絡(luò)調(diào)試助手配置成客戶端模式,連接ESP8266創(chuàng)建的TCP服務(wù)器,主機地址和端口要和之前配置的保持一致。

//ESP8266查詢當(dāng)前連接的客戶端
AT+CWLIF

[IP地址],[MAC地址]
192.168.5.2,b8:86:87:4e:26:af

OK

6.網(wǎng)絡(luò)調(diào)試助手(TCP客戶端)發(fā)送消息給ESP8266(TCP服務(wù)器),因為ESP8266已經(jīng)開啟監(jiān)聽服務(wù),數(shù)據(jù)會實時顯示。

95ea9b56-0d46-11ed-ba43-dac502259ad0.jpg

7.ESP8266(TCP服務(wù)器)發(fā)送消息給網(wǎng)絡(luò)調(diào)試助手(TCP客戶端)。

//ESP8266作為服務(wù)器,要往客戶端發(fā)數(shù)據(jù),需要指定客戶端編號和字節(jié)數(shù)
//往0號客戶端發(fā)5個字節(jié)的數(shù)據(jù)
AT+CIPSEND=0,5
OK
>

//輸入要發(fā)送的數(shù)據(jù),僅前五個字節(jié)數(shù)據(jù)被發(fā)出,其他數(shù)據(jù)無效。
Recv5bytes
SENDOK
95f62b56-0d46-11ed-ba43-dac502259ad0.jpg
審核編輯:彭靜
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 數(shù)據(jù)傳輸
    +關(guān)注

    關(guān)注

    9

    文章

    1748

    瀏覽量

    64349
  • 服務(wù)器
    +關(guān)注

    關(guān)注

    12

    文章

    8874

    瀏覽量

    84983
  • AP
    AP
    +關(guān)注

    關(guān)注

    0

    文章

    105

    瀏覽量

    48775

原文標(biāo)題:ESP8266兩種工作模式數(shù)據(jù)傳輸測試

文章出處:【微信號:zhuyandz,微信公眾號:FPGA之家】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    esp32和esp8266代碼共用嗎

    本文將介紹ESP32和ESP8266款流行的微控制器在代碼共用性方面的可能性與差異性。 一、引言 隨著物聯(lián)網(wǎng)技術(shù)的飛速發(fā)展,越來越多的智能設(shè)備開始進入我們的生活。其中,ESP32和
    的頭像 發(fā)表于 08-19 18:23 ?810次閱讀

    esp8266esp32區(qū)別是什么

    以下是關(guān)于ESP8266ESP32的主要區(qū)別: 處理器和架構(gòu) : ESP8266 :使用一個Tensilica L106 80MHz的處理器,屬于Xtensa架構(gòu)。 ESP32 :使
    的頭像 發(fā)表于 08-19 18:16 ?3051次閱讀

    esp8266不燒錄可以使用嗎

    ESP8266是一款非常流行的Wi-Fi模塊,廣泛應(yīng)用于物聯(lián)網(wǎng)項目中。然而,如果不進行燒錄,ESP8266將無法正常工作。 1. ESP8266簡介
    的頭像 發(fā)表于 08-19 17:28 ?497次閱讀

    esp8266wifi模塊怎么連接手機

    ESP8266 WiFi模塊連接手機主要可以通過兩種方式實現(xiàn): 通過路由器連接(STA模式)和直接作為熱點連接(AP模式) 。以下是兩種連接
    的頭像 發(fā)表于 08-19 17:27 ?1470次閱讀

    ESP8266是否支持監(jiān)控模式?

    我是ESP8266的新手,我已經(jīng)瀏覽了幾篇帖子和博客,得出的結(jié)論是ESP8266不支持監(jiān)控模式,但是它確實支持混雜模式,但在最新的SDK中,它不允許我們查看捕獲的
    發(fā)表于 07-22 07:21

    ESP8266-12退出深度睡眠模式時掛起怎么解決?

    我正在使用 adafruits 的 esp8266 HUZZAH 板 (ESP8266-12),該板連接到溫度/濕度傳感器 (DHTxx),該傳感器正在向 thingspeak 發(fā)送溫度/濕度數(shù)據(jù)
    發(fā)表于 07-22 06:26

    ESP8266發(fā)送失敗的原因?如何解決?

    ,并將數(shù)據(jù)傳輸到它旁邊的 iPhone。 什么會導(dǎo)致 ESP8266 的 SEND FAIL 響應(yīng)?我們有一個類似的 IC,我們正在與發(fā)送的 ESP8266一起進行測試,而不會出現(xiàn)故障。 如何從發(fā)送失敗中恢復(fù)/重新開始發(fā)送?
    發(fā)表于 07-22 06:00

    Esp8266在AP模式無法隱藏SSID怎么解決?

    在 softAP 模式配置 ESP8266 時,我正在使用此 AT 命令 AT+CWSAP=, , , [, ][, ] whereparameter is set to 1 (i.e do
    發(fā)表于 07-16 07:48

    使用esp8266進行數(shù)據(jù)傳輸遇到的幾個疑問求解

    我正在 esp8266 上進行數(shù)據(jù)傳輸測試,以下是我關(guān)于這個問題的問題。 [測試摘要] 作為測試的一部分,esp8266 作為客戶端工作,不斷向 TCP 服務(wù)器發(fā)送
    發(fā)表于 07-16 07:09

    ESP8266透傳模式是如何工作的?

    /4a-esp8266_at_instruction_set_en.pdf) 表示傳輸之間存在 20 毫秒的延遲,發(fā)送的最大字節(jié)數(shù)為 2048 字節(jié)。這是否意味著每 20 毫秒發(fā)送一個數(shù)據(jù)包,并且發(fā)送的
    發(fā)表于 07-15 07:48

    使用esp8266的HSPI與STM32進行通信時遇到的疑問求解

    卻不是我寫的內(nèi)容。 單片機這邊我配置的是八位數(shù)據(jù)傳輸,空閑低電平,上升沿讀取數(shù)據(jù),esp8266這邊使用的是spi_slave_init()函數(shù),最大傳輸32字節(jié),是我單片機這邊配置出
    發(fā)表于 07-10 06:45

    ESP8266_RTOS_SDK為什么無法從WiFi AP模式切換到STA模式?

    和 STA 之間進行切換,但它不起作用。 我嘗試了一切:停止 wifi 并在兩種模式之間重新啟動它;停止交換機之間的反初始化;只需在不停止 WiFi 的情況更改操作模式......
    發(fā)表于 07-09 07:36

    ESP8266 STA+AP模式丟包如何解決?

    AT命令模式ESP8266 STA+AP模式,發(fā)送數(shù)據(jù)(at命令發(fā)送 上位機發(fā)送modbus
    發(fā)表于 06-26 06:25

    國產(chǎn)低成本W(wǎng)i-Fi SoC解決方案芯片ESP8266ESP8285對比差異

    ESP8285對比ESP8266差異如下: 1、ESP8285內(nèi)部集成1/2MB Flash,DOUT模式。ESP8266則需要外接Fla
    的頭像 發(fā)表于 05-17 11:44 ?1058次閱讀
    國產(chǎn)低成本W(wǎng)i-Fi SoC解決方案芯片<b class='flag-5'>ESP8266</b>與<b class='flag-5'>ESP</b>8285對比差異

    使用Wi-Fi ESP8266方案模組接入云平臺

    選擇Wi-Fi的應(yīng)用模式,列出、加入、退出接入點,建立TCP/UDP連接、獲得狀態(tài)、發(fā)送數(shù)據(jù)等操作。ESP8266模塊的三工作
    的頭像 發(fā)表于 05-10 08:20 ?1543次閱讀
    使用Wi-Fi <b class='flag-5'>ESP8266</b>方案模組接入云平臺