模块3 WIFI物联网通信-项目2 数据上报下发-任务1 硬件设备连接OneNET MQTT服务器
基于STM32的物联网环境监测与远程控制系统实训套件-淘宝网
任务1 硬件设备连接OneNET MQTT服务器
一、任务描述
本任务基于STM32F103C8T6 最小系统板与ESP-01S WiFi模块,在已连接路由器 WiFi 的基础上,通过MQTT 协议与OneNET 物联网平台建立通信连接。
二、任务目标
1. 知识目标
1)深入理解ESP-01S WiFi 模块的硬件结构、通信方式、工作模式。
2)掌握串口 UART 异步通信原理、电平标准、数据格式。
3)熟练掌握ESP-01S 基础 AT 指令集。
4)理解 **STA 模式(客户端模式)** 连接路由器的工作流程。
2. 能力目标
1)能够完成 ESP-01S 硬件接线:TX→PA3,RX→PA2,VCC→3.3V,GND→GND。
2)能够在 STM32CubeMX 中正确配置USART2。
3)能够编写串口发送 AT 指令、接收模块响应数据的程序。
4)能够实现ESP-01S 成功连接路由器 WiFi并获取 IP。
3. 素质目标
1)培养串口通信严谨、AT 指令规范的开发习惯。
2)提升硬件接线、串口调试、指令收发、问题排查能力。
3)养成先测试模块 → 再设置模式 → 最后连接 WiFi的工程流程。
三、任务重难点
1. 任务重点
1)USART2 配置:波特率 115200、8N1、PA2-TX、PA3-RX。
2)TX/RX 交叉连接。
3)ESP-01S 必须 3.3V 供电。
4)核心 AT 指令:测试、设置 STA 模式、连接 WiFi、查询 IP。
2. 任务难点
1)供电不足导致模块不响应、乱码、重启。
2)串口数据收发不完整、指令缺少\r\n。
3)WiFi 名称 / 密码错误、信号弱导致连接失败。
4)串口调试与数据解析。
四、知识准备
1.ESP-01S WiFi模块介绍
ESP-01S是乐鑫公司推出的一款低成本、高性能的 WiFi 模块,它基于 ESP8266 芯片,具有体积小、功耗低、易于集成等特点,广泛应用于物联网(IoT)项目中。
- 芯片:ESP8266
- 接口:UART 串口
- 通信方式:AT 指令集
- 工作电压:3.3V(严禁 5V)
- 模式:STA 模式(连接路由器)
- 默认波特率:115200
2. 串口 UART 通信知识(STM32 ↔ESP-01S)
本任务使用 USART2
PA2 = USART2_TX (发送)
PA3 = USART2_RX (接收)
串口必须配置:
- 波特率:115200
- 数据位:8
- 停止位:1
- 校验位:无
- 流控:无
注意:TX 与 RX 必须交叉连接!
STM32_TX(PA2) → ESP_RX
STM32_RX(PA3) → ESP_TX
3. AT 指令知识(连接 WiFi 核心)
所有 AT 指令必须以 \r\n 结尾。
1)AT
功能:测试模块是否正常
回复:OK
2)AT+CWMODE=1
功能:设置为 STA 模式(客户端,连接路由器)
回复:OK
- AT+CWJAP="SSID","PASSWORD"
功能:连接 WiFi
示例:AT+CWJAP="MyWiFi","12345678"
回复:OK 表示连接成功
4)AT+CIFSR
功能:获取模块 IP
回复:WIFI GOT IP
4.供电要求
- ESP-01S 必须 3.3V 供电
- 工作电流峰值较大,必须共地(GND 连在一起)
- 供电不足会导致模块乱码、无响应、反复重启
五、硬件连接
ESP-01S模块与主控STM32F103C8T6的引脚连接如表1所示。
表1 ESP-01S模块与主控STM32F103C8T6的引脚连接
|
编号 |
ESP-01S模块 |
主控STM32F103C8T6 |
|
1 |
VCC |
3V3 |
|
2 |
GND |
GND |
|
3 |
TX |
PA3(USART2_RX) |
|
4 |
RX |
PA2(USART2_TX) |
硬件连接电路图如图1所示。

图1 硬件连接电路图
六、任务实现
任务1.1 添加onenet.c文件
1.将onenet文件夹拷贝到工程根目录。
2.在项目中添加onenet.c文件,如图2所示。

图2 添加onenet.c文件
3.修改onenet.c文件中的代码。
#define PROID "tsK7G227aH" //产品ID
#define ACCESS_KEY "version=2018-10-31&res=products%2FtsK7G227aH%2Fdevices%2Fa1&et=1812532952&method=sha1&sign=nA1SYqi8zVaAjiMXpvxGhrdgang%3D" //token
#define DEVICE_NAME "a1" //设备名称
4.将\onenet\inc添加到Include Paths中,如图3所示。

图3 将\onenet\inc添加到Include Paths中
任务1.2 添加MqttKit.c文件
1.将MQTT文件夹拷贝到工程根目录。
2.在项目中添加MqttKit.c文件,如图4所示。

图4 添加MqttKit.c文件
3.将\MQTT添加到Include Paths中,如图5所示。

图5 将\onenet\inc添加到Include Paths中
任务 1.3 修改 main.c 代码
1.在/* USER CODE END Includes */前添加如下代码:
//连接onenet
#include "onenet.h"
2.在/* USER CODE END 2 */前添加如下代码:
while(OneNet_DevLink()) //连接OneNET
HAL_Delay(1000);
任务 1.4 编译、下载、查看结果
1.点击编译按钮
,编译程序。
2.点击下载按钮
,下载程序。
3.打开串口调试助手,按stm32f103c8t6主控板上的复位键,在串口调试助手中输出打印信息,如图6所示。

图6 输出打印信息
4.刷新 OneNET设备页面,设备状态由离线变为在线,如图7所示。

图7 设备在线
更多推荐
所有评论(0)