您当前的位置:首页 >> 云端 >  >> 正文
基于STM32物联网开发板(5)--ESP8266|焦点日报
来源: wang123a      时间:2023-05-14 15:31:05

1.概述

ESP8266系列无线模块是安信可科技自 主研发设计的一系列高性价比 WiFi SOC 模组。该系列模块支持标准的 IEEE802.11 b/g/n 协议, 内置完整的 TCP/IP 协议栈。 用户可以使用该系列模块为现有的设备添加联网功能, 也可以构建独立的网络控制器。


(资料图片仅供参考)

特性:

完整的802. 11b/g/n Wi-FiSoC模块;内置 Tensilica L106 超低功耗32位微型MCU,主频支持 80 MHz和160 MHz,支持RTOS;内置1路10 bit高精度ADC;支持UART/GPIO/ADC/PWM/SPI/I2C接口;采用SMD-22封装;集成Wi-Fi MAC/ BB/RF/PA/LNA;支持多种休眠模式,深度睡眠电流低至 20uA串口速率最高可达4Mbps;内嵌Lwip协议栈;支持 STA/AP/STA+AP工作模式;支持安卓、IOS的Smart Config(APP) /AirKiss(微信)一键配网;支持串口本地升级和远程固件升级(FOTA);通用AT指令可快速上手;支持二次开发,集成了Windows、Linux开发环境;

硬件接口:

引脚

说明

TXD0

PC11串口3接收脚

RXD0

PC10串口3发送脚

2.通讯协议

本模块采用串口通讯方式,波特率115200,1位起始信号+8位数据位+1位停止位,无校验位,AT指令集开发。

AT 指令可以细分为四种类型:

类型

指令格式

描述

测试指令

AT+=?

该命令⽤于该命令⽤于查询设置指令的参数以及取值范围。

查询指令

AT+?

该命令⽤于返回参数的当前值。

设置指令

AT+=<...>

该命令⽤于设置⽤户⾃定义的参数值。

执行指令

AT+

该命令⽤于执⾏受模块内部程序控制的变参数不可变的功能。

注意:

不是每条AT指令都具备上述4种类型命令。括号内为缺省值,不必填写或者可能不显示。使用双引号表示字符串数据,例如:AT+CWSAP=”ESP56290”,”21030826”,1,4默认波特率为115200。AT指令必须大写,并且以回车换行符结尾(CRLF)。

3.常用AT指令

(1)测试指令AT

执行指令

AT

响应

OK

参数说明

-

(2)重启模块AT+RST

执行指令

AT+RST

响应

OK

参数说明

-

(3)开关回显ATE

执行指令

ATE

响应

OK

参数说明

ATE0:关闭回显

ATE1:开启回显

(4)AT+CWMODE_DEF设置WIFI模式并保存到Flash

指令

测试指令:

AT+CWMODE_DEF=?

查询指令:

AT+CWMODE_DEF?

功能:查询当前WIFI模式

设置指令:

AT+CWMODE_DEF=

功能:设置当前wifi模式

响应

+CWMODE_DEF:取值列表

OK

+CWMODE_DEF:

OK

OK

参数

1:Station模式

2:SoftAP模式

3:SoftAP+Station模式

注意

本设置保存到Flash system parameter区域,

示例

AT+CWMODE_DEF=3

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

指令

查询指令:

AT+CWJAP_DEF?

功能:查询WIFI已连接的AP信息

设置指令:

AT+CWJAP_DEF=,,[,bassid,]

功能:设置需要连接的AP

响应

+CWJAP_DEF:,,,OK

OK或者+CWJAP_DEF:FAI

参数

:字符串参数,AP的SSID:AP的MAC地址:信道号:信号强度

:⽬标AP的SSID

:密码最⻓64字节ASCII[]:⽬标AP的MAC地址,⼀般⽤于

有多个SSID相同的AP的情况;[]:选填参数,不允许连接WEP和

open的路由器,可⽤于PCI认证• :(仅供参考,并不可靠) ‣1:连接超时 ‣ 2:密码错误 ‣ 3:找不到⽬标AP ‣ 4:连接失败参数设置需要开启Station模式,若SSID或者password中含有特殊符号,例如,或者 “或者 时,需要进⾏转义,其它字符转义⽆效。

注意

本设置保存到 Flash系统参数区。

示例

AT+CWJAP_DEF="abc","0123456789"例如,⽬标AP的SSID为"ab,c",password为"0123456789"",则指令如下:AT+CWJAP_DEF="ab\,c","0123456789""如果有多个AP的SSID均为"abc",可通过BSSID确定⽬标AP:AT+CWJAP_DEF="abc","0123456789","ca:d7:19:d8:a6:44"

(6)AT+CIPMUX 设置多连接

指令

查询指令:

AT+CIPMUX?

设置指令:

AT+CIPMUX=

响应

+CIPMUX:

OK

OK

参数

‣ 0:单连接模式‣ 1:多连接模式

注意

•默认为单连接;•只有⾮透传模式(AT+CIPMODE=0),才能设置为多连接;•必须在没有连接建⽴的情况下,设置连接模式;•如果建⽴了TCP服务器,想切换为单连接,必须关闭服务器(AT+CIPSERVER=0),服务器仅⽀持多连接。

示例

AT+CIPMUX=1

(7)AT+CIPMODE 设置传输模式

指令

查询指令:

AT+CIPMODE?

功能:查询传输模式

设置指令:

AT+CIPMODE=

功能:设置传输模式

响应

+CIPMODE:

OK

OK

参数

‣ 0:普通传输模式‣ 1:透传模式,仅⽀持TCP单连接和UDP固定通信对端的情况

注意

•本设置不保存到Flash。•透传模式传输时,如果连接断开,ESP8266会不停尝试重连,此时单独输⼊+++退出透传,则停⽌重连;普通传输模式则不会重连,提示连接断开。

示例

AT+CIPMODE=1

(8)AT+CIFSR查询本地IP

指令

AT+CIFSR

响应

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

参数

: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=,,,

[,]

响应

OK或ERROR如果连接已经存在,则返回ALREADY CONNECTED

参数

• :⽹络连接ID (0 ~ 4),⽤于多连接的情况• :字符串参数,连接类型,"TCP","UDP"或"SSL"• :字符串参数,远端IP地址• :远端端⼝号• []:TCP keep-alive侦测时间,默认关闭此功能 ‣0:关闭TCP keep-alive功能 ‣ 1 ~ 7200:侦测时间,单位为1s

示例

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

(10)AT+CIPSEND发送数据

指令

设置指令:1.单连接时(+CIPMUX=0) AT+CIPSEND=2.多连接时(+CIPMUX=1) AT+CIPSEND=,3.如果是UDP传输,可以设置远端IP和端⼝: AT+CIPSEND=[,] [,,]功能:在普通传输模式时,设置发送数据的⻓度。

执⾏指令:AT+CIPSEND

功能:在透传模式时,开始发送数据。

响应

发送指定⻓度的数据。收到此命令后先换⾏返回>,然后

开始接收串⼝数据,当数据⻓度满

时发送数据,回到普通指令模

式,等待下⼀条AT指令。

若未建⽴连接或连接被断开,返回:ERROR

如果数据发送成功,返回:SEND OK

如果数据发送失败,返回:SEND FAIL

收到此命令后先换⾏返回 >。

进⼊透传模式发送数据,每包最⼤2048字

节,或者每包数据以20 ms间隔区分。当输⼊单独⼀包 +++ 时,返回普通AT

指令模式。发送 +++ 退出透传时,请⾄少

间隔 1秒再发下⼀条AT指令。

本指令必须在开启透传模式以及单连接

下使⽤。若为 UDP 透传,指令AT+CIPSTART参数

必须为0。

参数

• :⽹络连接ID号(0 ~ 4),⽤于多连接的情况• :数字参数,表明发送数据的⻓度,最⼤⻓度为2048• []:UDP传输可以设置对端IP• []:UDP传输可以设置对端端⼝

-

示例

-

(11)AT+AT+CWSAP_DEF 设置SoftAP参数并保存到flash

指令

查询指令:AT+CWSAP_DEF?查询ESP8266 SoftAP的配置参数。

设置指令:AT+CWSAP_DEF=,,,[,][,]功能:设置ESP8266 SoftAP的配置参数。

响应

+CWSAP_DEF:,,,,,

OK或ERROR

参数

• :字符串参数,接⼊点名称• :字符串参数,密码⻓度范围:

8 ~ 64 字节ASCII• :通道号• :加密⽅式,不⽀持WEP‣0:OPEN‣ 2:WPA_PSK‣ 3:WPA2_PSK‣ 4:WPA_WPA2_PSK• [](选填参数):允许连⼊ ESP8266SoftAP 的最多Station数⽬,取值范围[1, 8]。• [](选填参数):默认为 0,开启⼴播ESP8266 SoftAP SSID。‣ 0:⼴播SSID‣ 1:不⼴播SSID

同左。⚠注意:指令只有在SoftAP模式开启后有效。

注意

本设置保存到 Flash system parameter区域。

示例

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

(12)AT+CIPSERVER建⽴TCP服务器

指令

AT+CIPSERVER=[,]

响应

OK

参数

• :‣0:关闭服务器‣ 1:建⽴服务器

• :端⼝号,默认为333。

注意

•多连接情况下(AT+CIPMUX=1),才能开启TCP服务器。•创建TCP服务器后,⾃动建⽴TCP服务器监听。•当有TCP客户端接⼊,会⾃动占⽤⼀个连接ID。

示例

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

(13) 创建TCP服务器配置示例

"ATrn",//测试指令"ATE0rn",//关闭回显"AT+CWMODE_DEF=2rn",//--设置为AP(热点)模式"AT+RSTrn",//模块重启"ATE0rn",//关闭回显"AT+CWSAP="EPS8266_123","01234567",1,4rn", //--设置wifi信息"AT+CIPMUX=1rn",//设置多连接"AT+CIPSERVER=1,10rn", //--设置TCP服务器模式,端口号(0~65535)"AT+CIFSRrn"//查询IP地址

(14) 创建TCP客户端示例

"ATrn",//测试指令"ATE0rn",//关回显"AT+CWMODE=1rn",//设置STA模式"AT+RSTrn",//模块复位"ATE0rn",//关回显"AT+CWJAP="HUAWEIshui","asdfghjkl12"rn",//连接wifi"AT+CIPMUX=0rn",//设置单连接"AT+CIFSRrn",//查询IP"AT+CIPSTART="TCP","192.168.43.204",8080rn",//连接服务器"AT+CIPMODE=1rn",//设置透传模式"AT+CIPSENDrn",//开始发送数据

4.WIFI配置示例

开发平台:STM32CubeMX6.0+KEIL5

硬件资源:STM32F103RET6

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

4.1 硬件配置

ESP8266通讯接口为串口3,波特率115200,1位起始信号+8位数据位+1位停止位,无校验位。

配置完成,生成代码。

4.2 DMA接收处理示例

通过DMA处理串口数据接收。

uint8_t usart3_rx_buff[1024];//串口1接收数据缓冲区uint16_t usart3_cnt=0;//保存数组下班uint8_t usart3_flag;//接收完成标志符/*************************串口接收数据函数********************/static void Usart3_Receive_Data(void){DMA1_Channel3->CCR&=~(1<<0);//关闭通道传输usart3_cnt=1024-DMA1_Channel3->CNDTR;//获取接收到是字符长度if(usart3_cnt>=1024)usart3_cnt=0;DMA1->IFCR|=1<<9;//清除标志位DMA1_Channel3->CNDTR=1024;//从新赋值DMA1_Channel3->CCR|=1<<0;//开启通道传输usart3_flag=1;}

串口中断服务函数如下:

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 */}
标签:

X 关闭

X 关闭