首页 最新 热门 推荐

  • 首页
  • 最新
  • 热门
  • 推荐

一篇文章教会你ESP8266串口WIFI无线模块实现物联网无线收发,附STM32代码示例

  • 25-04-24 12:44
  • 3921
  • 8261
blog.csdn.net

目录

 一、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芯片,广泛用于物联网和嵌入式系统。

29ed87ba80fc4ae18ec4dcd476848ad8.png

00490798560c4244a2a2db61bb83c11e.png 

(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)管脚定义:

ESP-01S引脚名称                                  备注
1GNDGND
2IO2U1_TXD,I2C_SDA, I2SO_WS
3I00GPIO0,HSPI_MISO,I2SI_DATA
4RXDGPIO3,I2SO_DATA
5TXDGPIO1
6EN芯片使能端,高电平有效
7RST复位引脚,低电平有效
8VCC模组供电引脚,电压范围 3.0~3.6V

(3)启动模式:

ESP系列模组启动模式说明:

模式

CH_DP

  (EN)

RSTGPIO15GPIO0GPIO2TXD0
下载模式高高      低低高高
运行模式高高      低高高高
测试模式高高     ——    ——  ——低

 二、ESP-01S出厂固件烧录:

(1)引脚接线:

模块引脚USB转TTL
3.3V3.3V
RST3.3V
EN3.3V
OI23.3V
GNDGND
IO0GND
TXRX
RXTX

使用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。

b1b5a70344b846f6b5670186e06c77c3.png

第二步: 找到固件库Ai-Thinker_ESP8266_DOUT_8Mbit_v1.5.4.1-a_20171130.bit对应的文件地址,选择相应的参数,找到自己TTL所连串口,波特率选择115200(ESP8266 系列模组默认波特率为115200)。

 d781ec27552b40c4ac3598ff5ade0743.png

 第三步:点击START开始烧录出厂固件。

 af2a5895d1a4489b8a40dffe9cc0be1a.png

def12873dae247a1bc7471e049855622.png如果出现长时间,等待模块上电,迟迟不进入下载中,并下载失败。可以在等待上电期间,将RST脚轻触GND脚,重启ESP-01S,复位上电。

 三、ESP-01S  AT指令:

(1)串口配置:

端口UART0波特率115200 校验位None
数据位8 停止位 1 HEX 否

(2)启动信息:

088b1e9ea50949d696f2d15208ac71b8.png

 (3)基础AT指令:

AT指令说明示例
AT测试 AT 是否 OK

AT

OK

AT+GMR返回固件版本信息

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

AT+RST软重启模组AT+RST
OK
AT+RESTORE重置模组为出厂设置

AT+RESTORE

OK

四、TCP 通信测试:

TCP Server 为 AP 模式,TCP Client 为 Station 模式。

(1)TCP Server 端配置:

步骤示例说明
第一步

Ai-Thinker Technology Co. Ltd.


ready

模块是否准备就绪

 (上电后会显示)

第二步AT+CWMODE=2

OK
配置为 AP 模式
第三步

AT+CWSAP_DEF="TCP_Server","12345678",5,4


OK

配置 AP 信息
第四步

AT+CIFSR

+CIFSR:APIP."192.168.4.1"
+CIFSR:APMAC,"a2:20:a6:19:c7:0a"

OK

查询本机 IP 地址
第五步AT+CIPMUX=1

OK
开启多链接
第六步

AT+CIPSERVER=1


OK

开启服务器
0,CONNECT

 
有一个客户端连接到服务器
+PD,0,10:Ai-Thinker接收到 10 个数据(Ai-Thinker)
第七步

AT+CIPSERVER=0


OK

关闭服务器
0,CLOSEDTCP 连接关闭

 (2)TCP Client 端配置:

步骤示例说明
第一步

Ai-Thinker Technology Co. Ltd.


ready

模块是否准备就绪

(上电后会显示)

第二步

AT+CWMODE=1


OK

配置为 Station 模式
第三步

AT+CWJAP_DEF="TCP Server","12345678"


WIFI CONNECTED

WIFI GOT IP


OK

连接到 AP
第四步

AT+CIFSR

+CIFSR:STAIP"192.168.4.2"

+CIFSR:STAMAC,"5c:cf:7f91:8b:3b"

OK

查询本机 IP 地址
第五步

AT+CIPMUX=0


OK

开启单链接
第六步

AT+CIPSTART="TCP","192.168.4.1",333

CONNECT


OK

连接到 TCP 服务器
第七步

AT+CIPSEND=10 


OK

发送 10 个字节的数据到服务器端
>出现该符号后串口发送 Ai-Thinker
Recv 10 bytes串口接收到数据
SEND OK发送成功
CLOSEDTCP 连接被关闭

 (3)测试模式下演示:

引脚接线:

模块引脚接线
3.3V3.3V
RST3.3V/悬空
EN3.3V
OI2悬空
GNDGND
IO0悬空
TXRX(TTL)
RXTX(TTL)

基础AT指令测试:

44cd5101f238473d8fc9bede6b3fd176.png

TCP Server 端配置:

9e27ae8226334209a4d0c785d0dec08f.png

51dae64fb57c4c4894f15592878c2247.png

TCP Client 端配置:

连接手机热点,连接到物联网云平台。

aca96c603bd041d59a8b0a28f45e18e0.png

打开手机热点,热点名称:AP  密码:88888888   频段:2.4GHz。

名称和密码可自行设置,频段要设置为2.4GHz。

e5571342052341939956c1d85c506f3c.png

向服务器发送数据:

发送序列号9U6897255YW63AH6,连接到物联网云平台设备端。

d8c3c46fd31b4fedac1733d968ff2677.png

 打开物联网云平台设备端,查看设备是否正常连接。

4588a8e8a9d9485392ada6cdbd9ac38f.png

根据自定义TCP数据协议发送数据。

0b1ecce1e11d42e69f787637ceb9fc78.png 打开物联网云平台设备端,查看数据是否传输正常。

a8277b9c131d4d01b3c589fcd6440f4c.png

五、实际应用:

 (1)物联网云平台配置:

打开TLINK物联网平台,登录或注册账号,并进入控制台。

e2e6293cb9db40868b793954d26bcbef.png

找到项目栏,如下: 

83430ec6ec4b4a30a740a2d2fed6b7e6.png监控中心:可以监控设备情况,如查看传感器数据,以及数据下发到设备端等等。

设备管理:可以新增设备组和新增传感器等等。

设备地图:可以查看当前设备所处的位置。

触发器:可以设置传感器的触发条件,如温度高于30摄氏度报警。

进入设备管理界面,新建设备组,并命名设备组名称。

681fb1f28c5d4620999b8858ae795ff5.png

点击添加设备,设置设备名称,链接协议及传感器数量。

d2d1635a83aa403db00faf92e4156b62.png 选择设备位置后,创建新设备,点击设置连接,配置TCP协议标签。

b8cfbee1945944a1877db7e5c29516a6.png d38bfa83e42a4e74be905263fae0df79.png

29ea42e33e2c46df873400c002b5620a.png如图配置好通信协议后,能接收到的数据包为#数据1,数据2#,数据1,数据2按传感器的序号,给到对应的传感器。

在设备连接界面可以看到,设备IP:tcp.tlink.io,端口号:8647,序列号:7S7BJ2E4GS37174X

550ad03aedab44608dfae36b728bfcd1.png

使用ESP-01S连接到该设备服务器端。

31f0d2be41824f6081122a675dffaef2.png

注意事项,连接到服务器端后发送的第一条数据要为设备的序列号:7S7BJ2E4GS37174X,使之连接到该设备。

d3c007bbbfe94534a9b6b11b9629692f.png

 发送序列号后将连接到对应的设备。 

035ea3c5c77b4c6eaf15570ea938cc7f.png

之后发送数据, 使用测试数据#25.10,25.20#。

3f549a13174c40708322a688a7ff9a60.png49cae3b5797844fd9848ad88ad372914.png

至此, 物联网云平台配置基本完成,后续可增加和修改相应配置。

(2)设备端配置:

设备端配置采用STM32F103C8T6最小系统板,温湿度采集使用DHT11模块,无线模块使用ESP-01S的测试模式,使用串口1(PA9,PA10)进行数据传输。

引脚接线:

引脚接线
ESP-01S_3V33.3V
ESP-01S_EN3.3V
ESP-01S_GNDGND
ESP-01S_RXPA9
ESP-01S_TXPA10
DHT11_VCC5V
DHT11_DATPA5
DHT11_GNDGND
ESP-01S_RST3.3V/悬空

DHT11数据采集教程:

一篇文章教会你DHT11读取温湿度,附STM32代码示例

串口使用教程:

一篇文章教会你串口通信原理,附STM32代码示例

ESP-01S初始化连接到TCP服务器:

  1. //ESP-01S初始化连接到TCP服务器
  2. void Tcp_Init(void){
  3. // printf("AT+RESTORE\r\n"); //重置模块为出厂设置
  4. // Delay_ms(7000);
  5. printf("AT+CWMODE=1\r\n"); //配置为Station模式
  6. Delay_ms(3000);
  7. printf("AT+CWJAP_DEF=\"AP\",\"88888888\"\r\n"); //连接到AP
  8. Delay_ms(10000);
  9. printf("AT+CIFSR\r\n"); //查询主机IP地址
  10. Delay_ms(3000);
  11. printf("AT+CIPMUX=0\r\n"); //开启单链接
  12. Delay_ms(3000);
  13. printf("AT+CIPSTART=\"TCP\",\"tcp.tlink.io\",8647\r\n"); //连接到TCP服务器
  14. Delay_ms(3000);
  15. printf("AT+CIPSEND=16\r\n"); //发送16个字节到TCP服务器
  16. Delay_ms(3000);
  17. printf("7S7BJ2E4GS37174X\r\n"); //发送设备序列号,连接设备
  18. }

注意,ESP-01S在连接过热点AP之后,若下次上电时为Station模式,热点名称密码若未更改,会自动连接先前连接过的热点AP。

连接TLINK物联网云平台:

  1. //连接TLINK物联网云平台
  2. void TCP_Connect(void){
  3. printf("AT+CIPSTART=\"TCP\",\"tcp.tlink.io\",8647\r\n"); //连接到TCP服务器
  4. Delay_ms(3000);
  5. printf("AT+CIPSEND=16\r\n"); //发送16个字节到TCP服务器
  6. Delay_ms(3000);
  7. printf("7S7BJ2E4GS37174X\r\n"); //发送设备序列号,连接设备
  8. Delay_ms(3000);
  9. }

 TCP协议向TLINK物联网云平台发送数据:

  1. //TCP协议向TLINK物联网云平台发送数据
  2. void Tcp_Data_Send(void){
  3. printf("AT+CIPSEND=13\r\n");
  4. Delay_ms(3000);
  5. printf("#%.2f,%.2f#\r\n", Temp, Humi);
  6. Delay_ms(2000);
  7. }

加适当的延时等待上一条指令完成。

  1. #include "stm32f10x.h" // Device header
  2. #include "Delay.h"
  3. #include "OLED.h"
  4. #include "uart.h"
  5. #include "Tcp.h"
  6. #include "DHT11.h"
  7. int main(void)
  8. {
  9. Uart_Init(115200);
  10. DHT11_Init();
  11. //Tcp_Init(); //初始化连接
  12. TCP_Connect(); //tcp连接
  13. Delay_ms(1000);
  14. while (1)
  15. {
  16. DH11_Data();
  17. Tcp_Data_Send();
  18. }
  19. }

可以将ESP-01S_TX引脚接在TTL上的RX脚上,串口助手查看数据发送情况。b930cd0ae19646fa81cea0e0275835d5.png

TLINK物联网云平台查看数据传输情况。0367968944c2489f99021c82bc18e4f8.png

(3)扩展:

添加触发器触发条件。

843bb68465284124af294f2f547760ba.pngTLINK提供了多种报警方式,如短信,语音,微信,邮箱。其中微信与邮箱可免费发送报警信息。

需在个人中心添加联系人。 

向DHT11吹气,测试触发器报警情况。

ee26ce7533f244c69cf3b72cdded26e5.png

a3fdb1da265f46919daabf1930009e99.png

e2259f148c8d4c2fb6c2803a85582816.png

b1a76bda803e4ed8966689a20498722b.png

 TLINK也可下发数据给设备。

f371fb2f728a48fe951753fad17ed944.png

24bb9ec4d6bf4d1cb83832b51ae29bbc.png

 接收到的数据为+IPD,6:123456,即,数据长度为6,内容为123456。

 手机APP上实时查看设备状态,变化曲线,历史记录。

836ac0ccdebe462b8e6bbe296172340e.png

4eccc644147e4befafb9d49f3ab31962.png

833d33cf985c4ae2adf0188a08031dae.png 六、STM32代码下载:

通过网盘分享的文件:29- ESP-01S物联网
链接: https://pan.baidu.com/s/1P3uguImoLmPeBM0wVdAYsQ?pwd=cfej 提取码: cfej

注:本文转载自blog.csdn.net的The_xzs的文章"https://blog.csdn.net/The_xz/article/details/144066973"。版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。如有侵权,请联系我们删除。
复制链接
复制链接
相关推荐
发表评论
登录后才能发表评论和回复 注册

/ 登录

评论记录:

未查询到任何数据!
回复评论:

分类栏目

后端 (14832) 前端 (14280) 移动开发 (3760) 编程语言 (3851) Java (3904) Python (3298) 人工智能 (10119) AIGC (2810) 大数据 (3499) 数据库 (3945) 数据结构与算法 (3757) 音视频 (2669) 云原生 (3145) 云平台 (2965) 前沿技术 (2993) 开源 (2160) 小程序 (2860) 运维 (2533) 服务器 (2698) 操作系统 (2325) 硬件开发 (2492) 嵌入式 (2955) 微软技术 (2769) 软件工程 (2056) 测试 (2865) 网络空间安全 (2948) 网络与通信 (2797) 用户体验设计 (2592) 学习和成长 (2593) 搜索 (2744) 开发工具 (7108) 游戏 (2829) HarmonyOS (2935) 区块链 (2782) 数学 (3112) 3C硬件 (2759) 资讯 (2909) Android (4709) iOS (1850) 代码人生 (3043) 阅读 (2841)

热门文章

124
嵌入式
关于我们 隐私政策 免责声明 联系我们
Copyright © 2020-2024 蚁人论坛 (iYenn.com) All Rights Reserved.
Scroll to Top