基于STM32物联网开发板(5)--ESP8266

2023-05-15
关注

1.概述

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

特性:

  • 完整的802. 11b/g/n Wi-Fi SoC模块;
  • 内置 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",8000
AT+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=1
AT+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 */
}

您觉得本篇内容如何
评分

相关产品

Honeywell 霍尼韦尔智能工业 在线/便携烟气分析仪专用传感器 气体传感器

CO 传感器;SO2传感器;NO2 传感器;NO传感器;氧气传感器

南方泰科 TGM 压力传感器

TGM是一款SOP8封装的压阻式MEMS压力传感器,其压力传感器芯片封装在 SOP8 塑封壳内。在传感器压力量程内,当用固定电压供电时,传感器产生毫伏输出电压,正比于输入压力。压力传感器芯片为绝压,可提供不同的压力量程的SOP8 压力传感器。

Huba Control 富巴 525系列 压力传感器

525系列压力传感器采用集公司20多年研发经验的陶瓷压力传感器芯片技术。该系列压力传感器可选压力范围大,电气连接形式多。最小量程为50mbar。大批量使用具有很好的性价比。

Cubic 四方光电 PM3009BP 室外粉尘传感器

PM3009BP是一款专门针对餐饮油烟监测的油烟传感器,其采用旁流采样方式,自带除水雾装置,结合智能颗粒物识别算法,确保传感器能够快速准确的检测油烟浓度的变化,同时创新的镜头自清洁技术的应用,能够长效防护传感器油烟污染,大幅度延长传感器的使用寿命。

Winsen 炜盛科技 MH-410D 红外CO2气体传感器 红外传感器

MH-410D红外气体传感器是通用型、智能型、微型传感器,该红外传感器利用非色散红外(NDIR)原理对空气中存在的CO2进行探测,具有很好的选择性,无氧气依赖性,性能稳定、寿命长。内置温度补偿。该红外传感器是通过将成熟的红外吸收气体检测技术与微型机械加工、精良电路设计紧密结合而制作出的小巧型高性能红外传感器。该红外传感器可广泛应用于暖通制冷与室内空气质量监控、工业过程及安全防护监控、农业及畜牧业生产过程监控。

Alliance 莱恩&联众传感线缆 Aurora Tool Cable 医疗电线 医疗线缆

用于连接两个5DOF传感器或一个6DOF传感器的电缆。 可重复使用 用于电磁跟踪系统

RAYCOH 锐科智能 30GM系列 IO-Link输出 2EP-IO,IUEP-IO 超声波测距传感器和接近开关

RAYCOH 锐科智能30GM系列 IO-Link输出 超声波线性位置传感器和开关

评论

您需要登录才可以回复|注册

提交评论

感知论坛

这家伙很懒,什么描述也没留下

关注

点击进入下一篇

2020年自动驾驶技术还有多远?

提取码
复制提取码
点击跳转至百度网盘