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

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
• [](选填参数):允许连⼊ esp8266 softap 的最多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,asdfghjkl12rn,//连接wifiat+cipmux=0rn,//设置单连接at+cifsrrn,//查询ipat+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=1024)usart3_cnt=0; dma1->ifcr|=1ccr|=1
氟化工冷凝器管板与管束焊接口腐蚀渗漏保护,创新技术将设备维修带入崭新格局
iOS 11 恐怕是系统体验最糟糕的一个版本 今年更新的 iOS 12 可能也不会有特别大的变化
MAX2173用于数字音频广播的RF调谐器
SKI的化学材料子公司SK IE Technology目前正在进行IPO
电场探头的速度与准确性
基于STM32物联网开发板(5)--ESP8266
荣耀10i入网 搭载麒麟710运行Android9系统
如何使用热转印纸做电路板
带有SMS通知的水位指示器的制作
详解U-Mail邮件系统密级设置功能
天啊,我是不是用了假的Office啊?为什么你用了这么多年却突然不认识Microsoft Office呢
LTC2380-24 ADC采样精确度分析报告
中频电源的零压启动装置结构及工作原理
东芝推出新款4.5-kV双栅极反向传导注入增强型栅极晶体管
开关电源波纹的产生、测量及抑制
被低估的NFC:次世代智能穿戴的突围方向
雷达天线电源故障检测电路的设计
博通恶意收购高通分析:博通欲替换高通董事会所有成员
一系列同构环状夹层化合物的设计、合成和表征,并将其命名为“环烯”
新能源汽车产业与锂电设备市场发展趋势