一篇文章教会你ESP8266串口WIFI无线模块实现物联网无线收发,附STM32代码示例_8266wifi模块教程
目录
一、ESP-01S无线模块:
(1)特点:
(2)管脚定义:
(3)启动模式:
二、ESP-01S出厂固件烧录:
(1)引脚接线:
(2)烧录工具:
(3)固件库:
(4)烧录方法:
三、ESP-01S AT指令:
(1)串口配置:
(2)启动信息:
(3)基础AT指令:
四、TCP 通信测试:
(1)TCP Server 端配置:
(2)TCP Client 端配置:
(3)测试模式下演示:
五、实际应用:
(1)物联网云平台配置:
(2)设备端配置:
(3)扩展:
编辑 六、STM32代码下载:
一、ESP-01S无线模块:
ESP-01S是一款由安信可科技有限公司生产的低成本、高性能的Wi-Fi模块,基于ESP8266芯片,广泛用于物联网和嵌入式系统。
(1)特点:
核心处理器:ESP-01S的核心是ESP8266芯片,它集成了Tensilica L106超低功耗32位微型MCU,支持80 MHz和160 MHz的主频,并支持RTOS。
Wi-Fi功能:该模块支持标准的IEEE802.11 b/g/n协议和完整的TCP/IP协议栈,允许用户为现有设备添加联网功能或构建独立的网络控制器。
集成度:ESP-01S集成了Wi-Fi MAC/BB/RF/PA/LNA,并内置了1路10 bit高精度ADC,支持UART/GPIO/PWM接口。
封装和尺寸:ESP-01S采用DIP-8封装,尺寸为24.7mm*14.4mm,具有板载PCB天线。
功耗:支持多种休眠模式,待机功耗低至1.0mW,具有出色的节能特性。
串口速率:最高可达4Mbps,内嵌Lwip协议栈,支持STA/AP/STA+AP工作模式。
一键配网:支持安卓、iOS的Smart Config(APP)/AirKiss(微信)一键配网功能。
AT指令:通用AT指令可快速上手,支持二次开发,集成了Windows、Linux开发环境。
应用场景:ESP-01S适用于物联网设备、嵌入式系统、教育与学习等多个领域,可以用于智能家居系统、环境监测设备等。
认证信息:产品符合RoHS环保认证。
(2)管脚定义:
(3)启动模式:
ESP系列模组启动模式说明:
CH_DP
(EN)
二、ESP-01S出厂固件烧录:
(1)引脚接线:
使用ESP-01S模块时,不建议使用USB转TTL模块的3.3V或5V进行供电,主要原因有:
供电电流不足:ESP-01S模块的工作电流可能超过USB转TTL模块所能提供的电流。USB转TTL模块通常设计用于驱动低功耗的串口设备,而ESP-01S在工作时,尤其是启动和通信过程中,可能需要较大的电流,这可能导致供电不稳定或模块无法正常工作。
电压不稳定:USB转TTL模块提供的电压可能不稳定,这对于需要稳定电压工作的ESP-01S模块来说可能会导致运行不稳定或损坏模块。
保护模块:使用独立的电源,如两节干电池或经过LDO(Low Dropout Regulator)转换后的3.3V电源,可以更好地保护ESP-01S模块,避免由于供电问题导致的损坏。
避免干扰:使用独立的电源还可以减少由于USB转TTL模块可能引入的电磁干扰,这对于保持ESP-01S模块的稳定运行也是有益的。
(2)烧录工具:
通过网盘分享的文件:flash_download_tools_v3.6.4
链接: https://pan.baidu.com/s/1FrSQeS002O7HSjZuCfYWLQ?pwd=xs7h 提取码: xs7h
(3)固件库:
通过网盘分享的文件:ESP8266-01S
链接: https://pan.baidu.com/s/1NHd2cw8aVMOjade3l9UAeg?pwd=git3 提取码: git3
(4)烧录方法:
第一步:打开ESPFlashDownloadTool_v3.6.4烧录工具,选择ESP8266 DownloadTool。
第二步: 找到固件库Ai-Thinker_ESP8266_DOUT_8Mbit_v1.5.4.1-a_20171130.bit对应的文件地址,选择相应的参数,找到自己TTL所连串口,波特率选择115200(ESP8266 系列模组默认波特率为115200)。
第三步:点击START开始烧录出厂固件。
如果出现长时间,等待模块上电,迟迟不进入下载中,并下载失败。可以在等待上电期间,将RST脚轻触GND脚,重启ESP-01S,复位上电。
三、ESP-01S AT指令:
(1)串口配置:
(2)启动信息:
(3)基础AT指令:
AT
OK
AT+GMR
AT version:1.2.0.0(Jul 1 2016 20:04:45)
SDK version:1.5.4.1(39cb9a32)
Ai-Thinker Technology Co. Ltd.
Dec 2 2016 14:21:16
OK
OK
AT+RESTORE
OK
四、TCP 通信测试:
TCP Server 为 AP 模式,TCP Client 为 Station 模式。
(1)TCP Server 端配置:
Ai-Thinker Technology Co. Ltd.
ready
模块是否准备就绪
(上电后会显示)
OK
AT+CWSAP_DEF=\"TCP_Server\",\"12345678\",5,4
OK
AT+CIFSR
+CIFSR:APIP.\"192.168.4.1\"
+CIFSR:APMAC,\"a2:20:a6:19:c7:0a\"
OK
OK
AT+CIPSERVER=1
OK
AT+CIPSERVER=0
OK
(2)TCP Client 端配置:
Ai-Thinker Technology Co. Ltd.
ready
模块是否准备就绪
(上电后会显示)
AT+CWMODE=1
OK
AT+CWJAP_DEF=\"TCP Server\",\"12345678\"
WIFI CONNECTED
WIFI GOT IP
OK
AT+CIFSR
+CIFSR:STAIP\"192.168.4.2\"
+CIFSR:STAMAC,\"5c:cf:7f91:8b:3b\"
OK
AT+CIPMUX=0
OK
AT+CIPSTART=\"TCP\",\"192.168.4.1\",333
CONNECT
OK
AT+CIPSEND=10
OK
(3)测试模式下演示:
引脚接线:
基础AT指令测试:
TCP Server 端配置:
TCP Client 端配置:
连接手机热点,连接到物联网云平台。
打开手机热点,热点名称:AP 密码:88888888 频段:2.4GHz。
名称和密码可自行设置,频段要设置为2.4GHz。
向服务器发送数据:
发送序列号9U6897255YW63AH6,连接到物联网云平台设备端。
打开物联网云平台设备端,查看设备是否正常连接。
根据自定义TCP数据协议发送数据。
打开物联网云平台设备端,查看数据是否传输正常。
五、实际应用:
(1)物联网云平台配置:
打开TLINK物联网平台,登录或注册账号,并进入控制台。
找到项目栏,如下:
监控中心:可以监控设备情况,如查看传感器数据,以及数据下发到设备端等等。
设备管理:可以新增设备组和新增传感器等等。
设备地图:可以查看当前设备所处的位置。
触发器:可以设置传感器的触发条件,如温度高于30摄氏度报警。
进入设备管理界面,新建设备组,并命名设备组名称。
点击添加设备,设置设备名称,链接协议及传感器数量。
选择设备位置后,创建新设备,点击设置连接,配置TCP协议标签。
如图配置好通信协议后,能接收到的数据包为#数据1,数据2#,数据1,数据2按传感器的序号,给到对应的传感器。
在设备连接界面可以看到,设备IP:tcp.tlink.io,端口号:8647,序列号:7S7BJ2E4GS37174X
使用ESP-01S连接到该设备服务器端。
注意事项,连接到服务器端后发送的第一条数据要为设备的序列号:7S7BJ2E4GS37174X,使之连接到该设备。
发送序列号后将连接到对应的设备。
之后发送数据, 使用测试数据#25.10,25.20#。
至此, 物联网云平台配置基本完成,后续可增加和修改相应配置。
(2)设备端配置:
设备端配置采用STM32F103C8T6最小系统板,温湿度采集使用DHT11模块,无线模块使用ESP-01S的测试模式,使用串口1(PA9,PA10)进行数据传输。
引脚接线:
DHT11数据采集教程:
一篇文章教会你DHT11读取温湿度,附STM32代码示例
串口使用教程:
一篇文章教会你串口通信原理,附STM32代码示例
ESP-01S初始化连接到TCP服务器:
//ESP-01S初始化连接到TCP服务器void Tcp_Init(void){//printf(\"AT+RESTORE\\r\\n\");//重置模块为出厂设置//Delay_ms(7000);printf(\"AT+CWMODE=1\\r\\n\"); //配置为Station模式Delay_ms(3000);printf(\"AT+CWJAP_DEF=\\\"AP\\\",\\\"88888888\\\"\\r\\n\"); //连接到APDelay_ms(10000);printf(\"AT+CIFSR\\r\\n\"); //查询主机IP地址Delay_ms(3000);printf(\"AT+CIPMUX=0\\r\\n\");//开启单链接Delay_ms(3000);printf(\"AT+CIPSTART=\\\"TCP\\\",\\\"tcp.tlink.io\\\",8647\\r\\n\");//连接到TCP服务器Delay_ms(3000);printf(\"AT+CIPSEND=16\\r\\n\");//发送16个字节到TCP服务器Delay_ms(3000);printf(\"7S7BJ2E4GS37174X\\r\\n\");//发送设备序列号,连接设备}
注意,ESP-01S在连接过热点AP之后,若下次上电时为Station模式,热点名称密码若未更改,会自动连接先前连接过的热点AP。
连接TLINK物联网云平台:
//连接TLINK物联网云平台void TCP_Connect(void){printf(\"AT+CIPSTART=\\\"TCP\\\",\\\"tcp.tlink.io\\\",8647\\r\\n\");//连接到TCP服务器Delay_ms(3000);printf(\"AT+CIPSEND=16\\r\\n\");//发送16个字节到TCP服务器Delay_ms(3000);printf(\"7S7BJ2E4GS37174X\\r\\n\");//发送设备序列号,连接设备Delay_ms(3000);}
TCP协议向TLINK物联网云平台发送数据:
//TCP协议向TLINK物联网云平台发送数据void Tcp_Data_Send(void){printf(\"AT+CIPSEND=13\\r\\n\");Delay_ms(3000);printf(\"#%.2f,%.2f#\\r\\n\", Temp, Humi);Delay_ms(2000);}
加适当的延时等待上一条指令完成。
#include \"stm32f10x.h\" // Device header#include \"Delay.h\"#include \"OLED.h\"#include \"uart.h\"#include \"Tcp.h\"#include \"DHT11.h\"int main(void){Uart_Init(115200);DHT11_Init();//Tcp_Init(); //初始化连接TCP_Connect();//tcp连接Delay_ms(1000);while (1){DH11_Data();Tcp_Data_Send();}}
可以将ESP-01S_TX引脚接在TTL上的RX脚上,串口助手查看数据发送情况。
TLINK物联网云平台查看数据传输情况。
(3)扩展:
添加触发器触发条件。
TLINK提供了多种报警方式,如短信,语音,微信,邮箱。其中微信与邮箱可免费发送报警信息。
需在个人中心添加联系人。
向DHT11吹气,测试触发器报警情况。
TLINK也可下发数据给设备。
接收到的数据为+IPD,6:123456,即,数据长度为6,内容为123456。
手机APP上实时查看设备状态,变化曲线,历史记录。
六、STM32代码下载:
通过网盘分享的文件:29- ESP-01S物联网
链接: https://pan.baidu.com/s/1P3uguImoLmPeBM0wVdAYsQ?pwd=cfej 提取码: cfej