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

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

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

基于STM32物聯(lián)網(wǎng)開發(fā)板(5)--ESP8266

wang123a ? 來源:wang123a ? 作者:wang123a ? 2023-05-14 15:07 ? 次閱讀

1.概述

ESP8266 系列無線模塊是安信可科技自 主研發(fā)設(shè)計的一系列高性價比 WiFi SOC 模組。該系列模塊支持標(biāo)準(zhǔn)的 IEEE802.11 b/g/n 協(xié)議, 內(nèi)置完整的 TCP/IP 協(xié)議棧。 用戶可以使用該系列模塊為現(xiàn)有的設(shè)備添加聯(lián)網(wǎng)功能, 也可以構(gòu)建獨(dú)立的網(wǎng)絡(luò)控制器。

特性:

  • 完整的802. 11b/g/n Wi-Fi SoC模塊;
  • 內(nèi)置 Tensilica L106 超低功耗32位微型MCU,主頻支持 80 MHz和160 MHz,支持RTOS;
  • 內(nèi)置1路10 bit高精度ADC;
  • 支持UART/GPIO/ADC/PWM/SPI/I2C接口;
  • 采用SMD-22封裝;
  • 集成Wi-Fi MAC/ BB/RF/PA/LNA;
  • 支持多種休眠模式,深度睡眠電流低至 20uA
  • 串口速率最高可達(dá)4Mbps;
  • 內(nèi)嵌Lwip協(xié)議棧;
  • 支持 STA/AP/STA+AP工作模式;
  • 支持安卓、IOS的Smart Config(APP) /AirKiss(微信)一鍵配網(wǎng);
  • 支持串口本地升級和遠(yuǎn)程固件升級(FOTA);
  • 通用AT指令可快速上手;
  • 支持二次開發(fā),集成了Windows、Linux開發(fā)環(huán)境;
poYBAGRggYmAEkHFAAFHYP8ckvA832.pngpoYBAGRggZyAEdDBAAVQe0XPzn4858.png


硬件接口:

引腳

說明

TXD0

PC11串口3接收腳

RXD0

PC10串口3發(fā)送腳

2.通訊協(xié)議

本模塊采用串口通訊方式,波特率115200,1位起始信號+8位數(shù)據(jù)位+1位停止位,無校驗位,AT指令集開發(fā)。

AT 指令可以細(xì)分為四種類型:

類型

指令格式

描述

測試指令

AT+=?

該命令?于該命令?于查詢設(shè)置指令的參數(shù)以及取值范圍。

查詢指令

AT+?

該命令?于返回參數(shù)的當(dāng)前值。

設(shè)置指令

AT+=<...>

該命令?于設(shè)置?戶?定義的參數(shù)值。

執(zhí)行指令

AT+

該命令?于執(zhí)?受模塊內(nèi)部程序控制的變參數(shù)不可變的功能。

注意:

  • 不是每條AT指令都具備上述4種類型命令。
  • 括號內(nèi)為缺省值,不必填寫或者可能不顯示。使用雙引號表示字符串?dāng)?shù)據(jù),例如:AT+CWSAP=”ESP56290”,”21030826”,1,4
  • 默認(rèn)波特率為115200。
  • AT指令必須大寫,并且以回車換行符結(jié)尾(CRLF)。

3.常用AT指令

(1)測試指令A(yù)T

執(zhí)行指令

AT

響應(yīng)

OK

參數(shù)說明

-

(2)重啟模塊AT+RST

執(zhí)行指令

AT+RST

響應(yīng)

OK

參數(shù)說明

-

(3)開關(guān)回顯ATE

執(zhí)行指令

ATE

響應(yīng)

OK

參數(shù)說明

ATE0:關(guān)閉回顯

ATE1:開啟回顯

(4)AT+CWMODE_DEF設(shè)置WIFI模式并保存到Flash

指令

測試指令:

AT+CWMODE_DEF=?

查詢指令:

AT+CWMODE_DEF?

功能:查詢當(dāng)前WIFI模式

設(shè)置指令:

AT+CWMODE_DEF=

功能:設(shè)置當(dāng)前wifi模式

響應(yīng)

+CWMODE_DEF:取值列表

OK

+CWMODE_DEF:

OK

OK

參數(shù)

1:Station模式

2:SoftAP模式

3:SoftAP+Station模式

注意

本設(shè)置保存到Flash system parameter區(qū)域,

示例

AT+CWMODE_DEF=3

(5)AT+CWJAP_DEF 連接AF,保存到Flash

指令

查詢指令:

AT+CWJAP_DEF?

功能:查詢WIFI已連接的AP信息

設(shè)置指令:

AT+CWJAP_DEF=,,[,bassid,]

功能:設(shè)置需要連接的AP

響應(yīng)

+CWJAP_DEF:,,,
OK

OK
或者
+CWJAP_DEF:
FAI

參數(shù)

:字符串參數(shù),AP的SSID
:AP的MAC地址
:信道號
:信號強(qiáng)度

:?標(biāo)AP的SSID

:密碼最?64字節(jié)ASCII
[]:?標(biāo)AP的MAC地址,?般?于

有多個SSID相同的AP的情況;
[]:選填參數(shù),不允許連接WEP和

open的路由器,可?于PCI認(rèn)證
? :(僅供參考,并不可靠)
?1:連接超時
? 2:密碼錯誤
? 3:找不到?標(biāo)AP
? 4:連接失敗
參數(shù)設(shè)置需要開啟Station模式,若SSID或者password中含有特殊符號,例如,或者 “或者 時,需要進(jìn)?轉(zhuǎn)義,其它字符轉(zhuǎn)義?效。

注意

本設(shè)置保存到 Flash系統(tǒng)參數(shù)區(qū)。

示例

AT+CWJAP_DEF="abc","0123456789"
例如,?標(biāo)AP的SSID為"ab,c",password為"0123456789"",則指令如下:
AT+CWJAP_DEF="ab\,c","0123456789""
如果有多個AP的SSID均為"abc",可通過BSSID確定?標(biāo)AP:
AT+CWJAP_DEF="abc","0123456789","ca:d7:19:d8:a6:44"

(6)AT+CIPMUX 設(shè)置多連接

指令

查詢指令:

AT+CIPMUX?

設(shè)置指令:

AT+CIPMUX=

響應(yīng)

+CIPMUX:

OK

OK

參數(shù)

? 0:單連接模式
? 1:多連接模式

注意

?默認(rèn)為單連接;
?只有?透傳模式(AT+CIPMODE=0),才能設(shè)置為多連接;
?必須在沒有連接建?的情況下,設(shè)置連接模式;
?如果建?了TCP服務(wù)器,想切換為單連接,必須關(guān)閉服務(wù)器(AT+CIPSERVER=0),服務(wù)器僅?持多連接。

示例

AT+CIPMUX=1

(7)AT+CIPMODE 設(shè)置傳輸模式

指令

查詢指令:

AT+CIPMODE?

功能:查詢傳輸模式

設(shè)置指令:

AT+CIPMODE=

功能:設(shè)置傳輸模式

響應(yīng)

+CIPMODE:

OK

OK

參數(shù)

? 0:普通傳輸模式
? 1:透傳模式,僅?持TCP單連接和UDP固定通信對端的情況

注意

?本設(shè)置不保存到Flash。
?透傳模式傳輸時,如果連接斷開,ESP8266會不停嘗試重連,此時單獨(dú)輸?+++退出透傳,則停?重連;普通傳輸模式則不會重連,提示連接斷開。

示例

AT+CIPMODE=1

(8)AT+CIFSR查詢本地IP

指令

AT+CIFSR

響應(yīng)

+CIFSR:APIP,
+CIFSR:APMAC,
+CIFSR:STAIP,
+CIFSR:STAMAC,
OK

參數(shù)


ESP8266 SoftAP的 IP 地址
ESP8266 Station 的IP地址

ESP8266 SoftAP 的MAC地址
ESP8266 Station 的MAC地址

注意

ESP8266 Station IP 需連上AP 后,才可以查詢。

(9)AT+CIPSTART 建立TCP連接、UDP傳輸或者SSL連接

指令

TCP 單連接(AT+CIPMUX=0)時:
AT+CIPSTART=,,

[,]

TCP 多連接(AT+CIPMUX=1) 時:
AT+CIPSTART=,,,

[,]

響應(yīng)

OK

ERROR
如果連接已經(jīng)存在,則返回
ALREADY CONNECTED

參數(shù)

? :?絡(luò)連接ID (0 ~ 4),?于多連接的情況
? :字符串參數(shù),連接類型,"TCP","UDP"或"SSL"
? :字符串參數(shù),遠(yuǎn)端IP地址
? :遠(yuǎn)端端?號
? []:TCP keep-alive偵測時間,默認(rèn)關(guān)閉此功能
?0:關(guān)閉TCP keep-alive功能
? 1 ~ 7200:偵測時間,單位為1s

示例

AT+CIPSTART="TCP","iot.espressif.cn",8000
AT+CIPSTART="TCP","192.168.101.110",1000

(10)AT+CIPSEND發(fā)送數(shù)據(jù)

指令

設(shè)置指令:
1.單連接時(+CIPMUX=0)
AT+CIPSEND=
2.多連接時(+CIPMUX=1)
AT+CIPSEND=,
3.如果是UDP傳輸,可以設(shè)置遠(yuǎn)端IP和端?:
AT+CIPSEND=[,] [,,]
功能:在普通傳輸模式時,設(shè)置發(fā)送數(shù)據(jù)的?
度。

執(zhí)?指令:AT+CIPSEND

功能:在透傳模式時,開始發(fā)送數(shù)據(jù)。

響應(yīng)

發(fā)送指定?度的數(shù)據(jù)。
收到此命令后先換?返回>,然后

開始接收串?數(shù)據(jù),當(dāng)數(shù)據(jù)?度滿

時發(fā)送數(shù)據(jù),回到普通指令模

式,等待下?條AT指令。

若未建?連接或連接被斷開,返回:ERROR

如果數(shù)據(jù)發(fā)送成功,返回:SEND OK

如果數(shù)據(jù)發(fā)送失敗,返回:SEND FAIL

收到此命令后先換?返回 >。

進(jìn)?透傳模式發(fā)送數(shù)據(jù),每包最?2048字

節(jié),或者每包數(shù)據(jù)以20 ms間隔區(qū)分。
當(dāng)輸?單獨(dú)?包 +++ 時,返回普通AT

指令模式。發(fā)送 +++ 退出透傳時,請?少

間隔 1秒再發(fā)下?條AT指令。

本指令必須在開啟透傳模式以及單連接

下使?。
若為 UDP 透傳,指令A(yù)T+CIPSTART參數(shù)

必須為0。

參數(shù)

? :?絡(luò)連接ID號(0 ~ 4),?于多連接的情況
? :數(shù)字參數(shù),表明發(fā)送數(shù)據(jù)的?度,最??度為2048
? []:UDP傳輸可以設(shè)置對端IP
? []:UDP傳輸可以設(shè)置對端端?

-

示例

-

(11)AT+AT+CWSAP_DEF 設(shè)置SoftAP參數(shù)并保存到flash

指令

查詢指令:
AT+CWSAP_DEF?
查詢ESP8266 SoftAP的配置參數(shù)。

設(shè)置指令:
AT+CWSAP_DEF=,,,[,
][,]
功能:設(shè)置ESP8266 SoftAP的配置參數(shù)。

響應(yīng)

+CWSAP_DEF:,,,,,

OK

ERROR

參數(shù)

? :字符串參數(shù),接?點(diǎn)名稱
? :字符串參數(shù),密碼?度范圍:

8 ~ 64 字節(jié)ASCII
? :通道號
? :加密?式,不?持WEP
?0:OPEN
? 2:WPA_PSK
? 3:WPA2_PSK
? 4:WPA_WPA2_PSK
? [](選填參數(shù)):允許連? ESP8266SoftAP 的最多Station數(shù)?,取值范圍[1, 8]。
? [](選填參數(shù)):默認(rèn)為 0,開啟?播ESP8266 SoftAP SSID。
? 0:?播SSID
? 1:不?播SSID

同左。
?注意:
指令只有在SoftAP模式開啟后有效。

注意

本設(shè)置保存到 Flash system parameter區(qū)域。

示例

AT+CWSAP_DEF="ESP8266","1234567890",5,3

(12)AT+CIPSERVER建?TCP服務(wù)器

指令

AT+CIPSERVER=[,]

響應(yīng)

OK

參數(shù)

? :
?0:關(guān)閉服務(wù)器
? 1:建?服務(wù)器

? :端?號,默認(rèn)為333。

注意

?多連接情況下(AT+CIPMUX=1),才能開啟TCP服務(wù)器。
?創(chuàng)建TCP服務(wù)器后,?動建?TCP服務(wù)器監(jiān)聽。
?當(dāng)有TCP客戶端接?,會?動占??個連接ID。

示例

AT+CIPMUX=1
AT+CIPSERVER=1,1001

(13) 創(chuàng)建TCP服務(wù)器配置示例

"ATrn",//測試指令
"ATE0rn",//關(guān)閉回顯
"AT+CWMODE_DEF=2rn",//--設(shè)置為AP(熱點(diǎn))模式
"AT+RSTrn",//模塊重啟
"ATE0rn",//關(guān)閉回顯
"AT+CWSAP="EPS8266_123","01234567",1,4rn", //--設(shè)置wifi信息
"AT+CIPMUX=1rn",//設(shè)置多連接
"AT+CIPSERVER=1,10rn", //--設(shè)置TCP服務(wù)器模式,端口號(0~65535)
"AT+CIFSRrn"http://查詢IP地址

(14) 創(chuàng)建TCP客戶端示例

"ATrn",//測試指令
"ATE0rn",//關(guān)回顯
"AT+CWMODE=1rn",//設(shè)置STA模式
"AT+RSTrn",//模塊復(fù)位
"ATE0rn",//關(guān)回顯
"AT+CWJAP="HUAWEIshui","asdfghjkl12"rn",//連接wifi
"AT+CIPMUX=0rn",//設(shè)置單連接
"AT+CIFSRrn",//查詢IP
"AT+CIPSTART="TCP","192.168.43.204",8080rn",//連接服務(wù)器
"AT+CIPMODE=1rn",//設(shè)置透傳模式
"AT+CIPSENDrn",//開始發(fā)送數(shù)據(jù)

4.WIFI配置示例

開發(fā)平臺:STM32CubeMX6.0+KEIL5

硬件資源:STM32F103RET6

通訊方式:串口通訊(USART3)

4.1 硬件配置

ESP8266通訊接口為串口3,波特率115200,1位起始信號+8位數(shù)據(jù)位+1位停止位,無校驗位。

pYYBAGRghVSAUGcHAAO-jl4cXac374.pngpYYBAGRghYmAL-AOAACUC_ZEGnk797.pngpoYBAGRghZuAO159AAB4CHYNPWc007.png

配置完成,生成代碼。

4.2 DMA接收處理示例

通過DMA處理串口數(shù)據(jù)接收。

uint8_t usart3_rx_buff[1024];//串口1接收數(shù)據(jù)緩沖區(qū)
uint16_t usart3_cnt=0;//保存數(shù)組下班
uint8_t usart3_flag;//接收完成標(biāo)志符
/*************************串口接收數(shù)據(jù)函數(shù)********************/
static void Usart3_Receive_Data(void)
{
	DMA1_Channel3->CCR&=~(1<<0);//關(guān)閉通道傳輸
	usart3_cnt=1024-DMA1_Channel3->CNDTR;//獲取接收到是字符長度
	if(usart3_cnt>=1024)usart3_cnt=0;
	DMA1->IFCR|=1<<9;//清除標(biāo)志位
	DMA1_Channel3->CNDTR=1024;//從新賦值
	DMA1_Channel3->CCR|=1<<0;//開啟通道傳輸
	usart3_flag=1;
}

串口中斷服務(wù)函數(shù)如下:

void USART3_IRQHandler(void)
{
  /* USER CODE BEGIN USART3_IRQn 0 */
  uint8_t c;
  /* USER CODE END USART3_IRQn 0 */
  HAL_UART_IRQHandler(&huart3);
  /* USER CODE BEGIN USART3_IRQn 1 */
  if(__HAL_UART_GET_FLAG(&huart3,UART_FLAG_IDLE))
  {
    c=huart3.Instance->DR;
    c=c;
    Usart3_Receive_Data();
  }
  /* USER CODE END USART3_IRQn 1 */
}

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 控制器
    +關(guān)注

    關(guān)注

    112

    文章

    16037

    瀏覽量

    176699
  • 物聯(lián)網(wǎng)
    +關(guān)注

    關(guān)注

    2899

    文章

    43807

    瀏覽量

    369224
  • STM32
    +關(guān)注

    關(guān)注

    2263

    文章

    10847

    瀏覽量

    353814
  • 開發(fā)板
    +關(guān)注

    關(guān)注

    25

    文章

    4840

    瀏覽量

    96867
  • ESP8266
    +關(guān)注

    關(guān)注

    50

    文章

    962

    瀏覽量

    44692
收藏 人收藏

    評論

    相關(guān)推薦

    使用ESP8266STM32進(jìn)行聯(lián)網(wǎng)開發(fā)板設(shè)計

    聯(lián)網(wǎng)系列①——使用ESP8266STM32進(jìn)行聯(lián)網(wǎng)開發(fā)
    發(fā)表于 08-19 09:06

    ESP8266 IOT MiniBoard聯(lián)網(wǎng)迷你開發(fā)板有哪些性能

    ESP8266 IOT MiniBoard聯(lián)網(wǎng)迷你開發(fā)板是什么?ESP8266 IOT MiniBoard
    發(fā)表于 10-27 07:52

    esp8266聯(lián)網(wǎng)開發(fā)板的教程

    之前在做智能家居的時候需要用到esp8266,我這邊因為esp8266聯(lián)網(wǎng)開發(fā)板的技小新教程相對齊全就不用串口模塊,直接使用板子,但是沒想
    發(fā)表于 12-09 07:35

    NodeMCU基于ESP8266的一款wifi開發(fā)板

    NodeMCU基于ESP8266的一款wifi開發(fā)板,這是它的API指令手冊。
    發(fā)表于 10-29 11:49 ?526次下載

    使用esp8266實現(xiàn)STM32聯(lián)網(wǎng)(最簡單USART方法)

    到電腦上的java程序 這一篇 esp8266STM32連接,電腦通過STM32配置esp8266實現(xiàn)聯(lián)網(wǎng)發(fā)送數(shù)據(jù)具體流程如下圖 2=
    發(fā)表于 11-22 11:51 ?1.2w次閱讀

    基于ESP8266芯片方案的WIFI開發(fā)板的詳細(xì)介紹和使用說明資料概述

     隨著聯(lián)網(wǎng)市場的爆發(fā),WIFI傳輸方案和芯片也越來越多。本公司開發(fā)了一款基于ESP8266芯片方案的WIFI開發(fā)板,
    發(fā)表于 08-28 18:44 ?62次下載
    基于<b class='flag-5'>ESP8266</b>芯片方案的WIFI<b class='flag-5'>開發(fā)板</b>的詳細(xì)介紹和使用說明資料概述

    聯(lián)網(wǎng)入門:ESP8266-NodeMCU基礎(chǔ)

    參考目錄基礎(chǔ)準(zhǔn)備工作:開發(fā)板ESP8266-NodeMCU基礎(chǔ)準(zhǔn)備工作:開發(fā)板ESP8266-NodeMCU其中要注意的是:1、為開發(fā)板
    發(fā)表于 10-25 14:06 ?14次下載
    <b class='flag-5'>物</b><b class='flag-5'>聯(lián)網(wǎng)</b>入門:<b class='flag-5'>ESP8266</b>-NodeMCU基礎(chǔ)

    聯(lián)網(wǎng)】基礎(chǔ)篇 ESP8266-NodeMCU學(xué)習(xí)一

    聯(lián)網(wǎng)】基礎(chǔ)篇 ESP8266-NodeMCU學(xué)習(xí)一本篇文章:本篇文章主要是關(guān)于ESP8266-NodeMCU的學(xué)習(xí)。正文如下:一、ESP8266
    發(fā)表于 10-26 14:21 ?16次下載
    【<b class='flag-5'>物</b><b class='flag-5'>聯(lián)網(wǎng)</b>】基礎(chǔ)篇 <b class='flag-5'>ESP8266</b>-NodeMCU學(xué)習(xí)一

    NodeMCU-ESP8266開發(fā)板搭建Arduino IDE開發(fā)環(huán)境

    ;首選項->附加開發(fā)板管理網(wǎng)址,填入地址:http://arduino.esp8266.com/stable/package_esp8266com_index.json,然后確定。 接著工具->
    發(fā)表于 10-26 20:06 ?18次下載
    NodeMCU-<b class='flag-5'>ESP8266</b><b class='flag-5'>開發(fā)板</b>搭建Arduino IDE<b class='flag-5'>開發(fā)</b>環(huán)境

    Esp8266聯(lián)網(wǎng)開發(fā)板詳細(xì)使用教程

    之前在做智能家居的時候需要用到esp8266,我這邊因為esp8266聯(lián)網(wǎng)開發(fā)板的技小新教程相對齊全就不用串口模塊,直接使用板子,但是沒想
    發(fā)表于 11-26 13:36 ?15次下載
    <b class='flag-5'>Esp8266</b><b class='flag-5'>物</b><b class='flag-5'>聯(lián)網(wǎng)</b><b class='flag-5'>開發(fā)板</b>詳細(xì)使用教程

    RuilongMaker ESP8266聯(lián)網(wǎng)開發(fā)板 串口WIFI模塊無線收發(fā) Mini版

    ESP8266 IOT MiniBoard 聯(lián)網(wǎng)迷你開發(fā)板,是一款以ESP8266-12F為核心的
    發(fā)表于 11-30 11:51 ?0次下載
    RuilongMaker <b class='flag-5'>ESP8266</b><b class='flag-5'>物</b><b class='flag-5'>聯(lián)網(wǎng)</b><b class='flag-5'>開發(fā)板</b> 串口WIFI模塊無線收發(fā) Mini版

    esp筆記(2)使用Arduino IDE 開發(fā) esp8266

    本文開發(fā)環(huán)境:MCU型號:esp8266開發(fā)環(huán)境 :Arduino 1.8.9硬件平臺:V3 開發(fā)板本文內(nèi)容:Esp8266 V3
    發(fā)表于 12-05 14:51 ?55次下載
    <b class='flag-5'>esp</b>筆記(2)使用Arduino IDE <b class='flag-5'>開發(fā)</b> <b class='flag-5'>esp8266</b>

    配置esp8266開發(fā)板的Arduino開發(fā)環(huán)境

    1.esp8266開發(fā)板硬件:基于esp8266的nodemuc開發(fā)板 需要microUSB連接線。ESP8266-NodeMCU是一個開源
    發(fā)表于 12-08 14:51 ?33次下載
    配置<b class='flag-5'>esp8266</b><b class='flag-5'>開發(fā)板</b>的Arduino<b class='flag-5'>開發(fā)</b>環(huán)境

    開發(fā)板ESP8266開源分享

    電子發(fā)燒友網(wǎng)站提供《開發(fā)板ESP8266開源分享.zip》資料免費(fèi)下載
    發(fā)表于 08-10 14:49 ?16次下載
    <b class='flag-5'>開發(fā)板</b><b class='flag-5'>ESP8266</b>開源分享

    nodemcu和esp8266是什么關(guān)系?

    nodemcu和esp8266是什么關(guān)系 nodemcu和esp8266是什么關(guān)系?通俗理解就是nodemcu是一個開發(fā)板,基于esp8266開發(fā)
    的頭像 發(fā)表于 10-20 14:53 ?3521次閱讀
    nodemcu和<b class='flag-5'>esp8266</b>是什么關(guān)系?