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

目录

一、ESP-01S无线模块:

(1)特点:

(2)管脚定义:

(3)启动模式:

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

(1)引脚接线:

(2)烧录工具:

(3)固件库:

(4)烧录方法:

[三、ESP-01S AT指令:](#三、ESP-01S AT指令:)

(1)串口配置:

(2)启动信息:

(3)基础AT指令:

[四、TCP 通信测试:](#四、TCP 通信测试:)

[(1)TCP Server 端配置:](#(1)TCP Server 端配置:)

[(2)TCP Client 端配置:](#(2)TCP Client 端配置:)

(3)测试模式下演示:

五、实际应用:

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

(2)设备端配置:

(3)扩展:

[​编辑 六、STM32代码下载:](#编辑 六、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)管脚定义:

|-------------|----------|-------------------------------|
| ESP-01S | 引脚名称 | 备注 |
| 1 | GND | GND |
| 2 | IO2 | U1_TXD,I2C_SDA, I2SO_WS |
| 3 | I00 | GPIO0,HSPI_MISO,I2SI_DATA |
| 4 | RXD | GPIO3,I2SO_DATA |
| 5 | TXD | GPIO1 |
| 6 | EN | 芯片使能端,高电平有效 |
| 7 | RST | 复位引脚,低电平有效 |
| 8 | VCC | 模组供电引脚,电压范围 3.0~3.6V |

(3)启动模式:

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

|----------|--------------------|---------|------------|------------|------------|----------|
| 模式 | CH_DP (EN) | RST | GPIO15 | GPIO0 | GPIO2 | TXD0 |
| 下载模式 | | | | | | |
| 运行模式 | | | | | | |
| 测试模式 | | | ------ | ------ | ------ | |

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

(1)引脚接线:

|----------|-------------|
| 模块引脚 | USB转TTL |
| 3.3V | 3.3V |
| RST | 3.3V |
| EN | 3.3V |
| OI2 | 3.3V |
| GND | GND |
| IO0 | GND |
| TX | RX |
| RX | TX |

使用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)串口配置:

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

(2)启动信息:

(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,CLOSED | TCP 连接关闭 |

(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 | 发送成功 |
| | CLOSED | TCP 连接被关闭 |

(3)测试模式下演示:

引脚接线:

|----------|-------------|
| 模块引脚 | 接线 |
| 3.3V | 3.3V |
| RST | 3.3V/悬空 |
| EN | 3.3V |
| OI2 | 悬空 |
| GND | GND |
| IO0 | 悬空 |
| TX | RX(TTL) |
| RX | TX(TTL) |

基础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)进行数据传输。

引脚接线:

|-----------------|-------------|
| 引脚 | 接线 |
| ESP-01S_3V3 | 3.3V |
| ESP-01S_EN | 3.3V |
| ESP-01S_GND | GND |
| ESP-01S_RX | PA9 |
| ESP-01S_TX | PA10 |
| DHT11_VCC | 5V |
| DHT11_DAT | PA5 |
| DHT11_GND | GND |
| ESP-01S_RST | 3.3V/悬空 |

DHT11数据采集教程:

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

串口使用教程:

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

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

cpp 复制代码
//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");     		//连接到AP
	Delay_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物联网云平台:

cpp 复制代码
//连接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物联网云平台发送数据:

cpp 复制代码
//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);
}

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

cpp 复制代码
#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

相关推荐
崔庆才丨静觅4 小时前
hCaptcha 验证码图像识别 API 对接教程
前端
2601_949146534 小时前
C语言语音通知接口接入教程:如何使用C语言直接调用语音预警API
c语言·开发语言
passerby60614 小时前
完成前端时间处理的另一块版图
前端·github·web components
AI_56785 小时前
AWS EC2新手入门:6步带你从零启动实例
大数据·数据库·人工智能·机器学习·aws
掘了5 小时前
「2025 年终总结」在所有失去的人中,我最怀念我自己
前端·后端·年终总结
崔庆才丨静觅5 小时前
实用免费的 Short URL 短链接 API 对接说明
前端
CRzkHbaXTmHw5 小时前
探索Flyback反激式开关电源的Matlab Simulink仿真之旅
大数据
崔庆才丨静觅5 小时前
5分钟快速搭建 AI 平台并用它赚钱!
前端
七夜zippoe5 小时前
CANN Runtime任务描述序列化与持久化源码深度解码
大数据·运维·服务器·cann
盟接之桥5 小时前
盟接之桥说制造:引流品 × 利润品,全球电商平台高效产品组合策略(供讨论)
大数据·linux·服务器·网络·人工智能·制造