基于STM32的物联网环境监测与远程控制系统实训套件-淘宝网

任务1 连接WIFI

一、任务描述

本任务基于STM32F103C8T6 最小系统板,通过串口 UART驱动ESP-01S WiFi 模块。

使用AT 指令实现 STM32 对 ESP-01S 的控制,完成WiFi 模块初始化、连接路由器 WiFi、测试网络等功能。掌握 STM32 串口通信、AT 指令收发、WiFi 模块驱动的基本方法,为后续网络数据传输、远程控制奠定基础。

二、任务目标

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

  1. 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 STM32CubeMX软件配置USART2

1.在工程根目录打开 STM32CubeMX文件,在USART2 global interrupt后挑勾,如图2所示。

图2 配置USART2

2.点击“GENERATE CODE”生成代码并在keil中打开工程。

任务1.2 添加esp-01s 驱动

1.将esp-01s文件夹拷贝到工程根目录。

2.在项目中添加esp-01s.c文件如图3所示

图3 添加esp-01s.c文件

3.将\esp-01s\inc目录添加到Include Paths中,如图4所示。

图4 将\esp-01s\inc添加到Include Paths中

任务 1.3 修改 main.c 代码

1.在/* USER CODE END Includes */前添加如下代码:

//esp-01s头文件

#include "esp-01s.h"

2.在/* USER CODE END 0 */前添加如下代码:

extern uint8_t Uart2_RxData;

3.在/* USER CODE END 2 */前添加如下代码:

 HAL_UART_Receive_IT(&huart2,(uint8_t *)&Uart2_RxData, 1);//开启串口中断

HAL_Delay(500);

    esp01s_Init(); //初始化esp01s,连接wifi

 HAL_Delay(500);

任务 1.4 编译、下载、查看结果

1.点击编译按钮,编译程序。

2.点击下载按钮,下载程序。

3.打开串口调试助手,按stm32f103c8t6主控板上的复位键,在串口调试助手中输出打印信息,如图5所示。

图5 输出打印信息

更多推荐