一、模块介绍
ESP8266 系列无线模块是安信可科技自主研发设计的一系列高性价比WiFiSOC 模组。该系列模块支持标准的IEEE802.11 b/g/n 协议,内置完整的TCP/IP协议栈。用户可以使用该系列模块为现有的设备添加联网功能,也可以构建独立的网络控制器。
官方资料链接:ESP8266系列模组专题 | 安信可科技
二、硬件介绍和典型应用
三、工作模式
ATK-ESP8266 模块支持 STA、AP、STA+AP 三种工作模式。
STA 模式: ESP8266 模块通过路由器连接互联网(如阿里云、腾讯云),手机或电脑通过互联网实现对设备的远程控制。
AP 模式:默认模式 ATK_ESP8266 模块作为热点,实现手机或电脑直接与模块通信,实现局域网无线控制。
STA+AP 模式:两种模式的共存模式,(STA 模式)即可以通过路由器连接到互联网,并通过互联网控制设备;(AP 模式)也可作为 wifi 热点,其他 wifi设备连接到模块。这样实现局域网和广域网的无缝切换,方便操作。
四、烧录AT 固件
1.为什么要烧录AT固件
我们可以使用AT指令,控制esp8266模块的工作状态(包括控制运行模式)、设置esp8266模块的参数。在此之前,要确保模块运行的软件(固件)是不是我们要的版本。版本有很多,可以查看官网:AT固件汇总 | 安信可科技。根据不同的需要,烧录对应版本的AT固件。
2.烧录AT固件步骤
1)使设备进入下载模式
GPIO0 管脚下拉时,设备进入下载模式
2) 下载烧录软件
烧录软件下载:工具 | 乐鑫科技
3)打开烧录软件
4)下载配置
填入需要烧录的 bin 文件,和对应的烧录地址,勾选 bin 文件前面的复选框,并根据自己实际需求填入 SPI SPEED、SPI MODE、COM 及BAUD。
注意:
- 选择对应flash大小的固件版本——小编1M的flash选择:Ai-Thinker_ESP8266_DOUT_8Mbit_v1.5.4.1-a_20171130.bin(8Mbit=8M)
- 波特率小点错误率没那么高,但是下载速度会慢
5)点击 START 开始下载
下载前GPIO0接地,重新上电。下载过程中,下载工具会读取 flash 的信息和芯片的MAC 地址。
6)下载完成
五、TCP Client 单连接透传
方便您理解esp8266连接服务器,下面列举了TCP Client 单连接透传的AT指令。AT指令和更多的连接模式,请参考官方文档。
注意:
- AT指令必须以"\r\n"结尾
- 连接WiFi频率2.4GHz
- 连接WIFI后再次使用ESP8266无法连接WIFI时,重新插拔接入3.3V的ESP8266电源线和EN线,芯片恢复正常且能正常连接WIFI。(也可能wifi模块不合格)
1.连接WIFI
2.连接服务器
连接上wifi有网络后,连接服务器示例:
AT+CIPSTART="TCP","192.168.3.116",8080 //protocol, server IP and port
3.使能透传模式
AT+CIPMODE=1
4.发送数据
AT+CIPSEND
>指令后面的数据,会一次发送出去
- 注意:
- 发送数据时,如果输入的字节数超过了了设置长度(n):
- 系统将提示 busy,并发送数据的前 n 个字节,发送完成后响应 SEND OK。
- 超出长度的部分数据被认为是无效数据,不不被接受。
5.退出发送数据
在透传发送数据过程中,若识别到单独的一包数据 “+++”,则退出透传发送。
如果使用键盘打字输入 “+++” ,可能耗时太长,不被认为是连续的三个 “+”,建议使用之后,请至少间隔 1 秒,再发下一条 AT 指令。
6.退出透传模式
AT+CIPMODE=0
7.断开 TCP 连接
AT+CIPCLOSE
六、阿里云连接
接下来使用STM32与esp8266,AT+MCU方式接入阿里云物联网平台。
1.物联网平台创建设备
1)注册登录实名认证后打开控制台
2)打开物联网平台
3)开通公共实例
4)创建产品
5)添加设备
6)添加物模型
2.硬件连接
本文章代码模板使用的MCU型号是STM32F103C8T6
Debug接口:Uart1
Esp8266与Uart2相连TXD----->PA2, RXD------->PA3.
3.代码配置
1)修改堆栈
代码需要比较大的堆栈。需要修改默认的堆栈大小,确保有足够的运行空间。
2)修改配置文件
配置文件esp8266_conf.h
a.硬件连接配置
b.其它的接口
c.wifi连接
注意:WIFI频段2.4GHz
d.在阿里云平台的设备信息中,打开MQTT连接参数
e.根据连接参数,修改代码配置
f.在阿里云平台的设备信息中,查看三元组
g.根据三元组,修改代码配置
、
4.设备成功连上阿里云
5.修改设备上传到阿里云的属性(数据)
不知道怎么设置物模型属性,请看到前文 添加物模型 部分