You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
wangrunpu fab9ee5a8c
初始化
3 weeks ago
..
README.md 初始化 3 weeks ago

README.md

ESP8266 综合功能项目

项目简介

这是一个基于STM32F103和ESP8266的综合功能项目集成了多种传感器和控制功能。该项目整合了温湿度监测、WiFi远程控制、数据存储、OLED显示和继电器控制等多种功能于一体。

主要功能

1. 温湿度监测与数据传输

  • 使用DHT11传感器采集环境温湿度数据
  • 通过SysTick定时器每10ms中断一次定时读取传感器数据
  • 将温湿度数据通过ESP8266 WiFi模块发送到TCP服务器
  • LED1会在每次发送数据时闪烁提示

2. LED远程控制

  • 持续监听来自WiFi的控制命令
  • 支持以下LED控制命令
    • LED_RED - 红色
    • LED_GREEN - 绿色
    • LED_BLUE - 蓝色
    • LED_YELLOW - 黄色
    • LED_PURPLE - 紫色
    • LED_CYAN - 青色
    • LED_WHITE - 白色
    • LED_RGBOFF - 关闭所有LED

3. W25Q64外部Flash数据存储

  • 每2秒自动将最新DHT11温湿度数据存储到W25Q64外部Flash
  • 支持覆盖模式和环形缓冲模式两种存储方式
  • 提供数据读取、擦除和格式化功能
  • 存储数据包含时间戳、温度、湿度和校验信息

4. OLED显示功能

  • 实时显示当前温湿度数据
  • 显示W25Q64中存储的最新数据
  • 支持中文和英文字符显示

5. 继电器控制功能

  • 通过按键(KEY1)控制继电器开关状态
  • 支持继电器状态查询和切换

硬件要求

  • STM32F103系列微控制器
  • ESP8266 WiFi模块
  • DHT11温湿度传感器
  • RGB LED灯
  • OLED显示屏(I2C接口)
  • 继电器模块
  • W25Q64外部Flash存储器
  • 按键模块
  • 相应的连接线路

引脚连接

ESP8266 WiFi模块

  • 通过USART2与STM32通信
  • 具体引脚定义见ESP8266/bsp_esp8266.h

DHT11温湿度传感器

  • 数据线连接到指定GPIO
  • 具体引脚定义见DHT11/bsp_dht11.h

OLED显示屏

  • SCL: PB6
  • SDA: PB7

继电器模块

  • 控制引脚: PB5

按键

  • KEY1: PA0

软件配置

WiFi连接配置

User/ESP8266/bsp_esp8266_test.h 文件中修改以下参数:

#define macUser_ESP8266_ApSsid        "你的WiFi名称"
#define macUser_ESP8266_ApPwd         "你的WiFi密码"
#define macUser_ESP8266_TcpServer_IP  "服务器IP地址"
#define macUser_ESP8266_TcpServer_Port "服务器端口"

W25Q64存储配置

User/W25Q64/Storage_Adapter.h 文件中可以配置存储模式:

// 设置存储模式: 0=覆盖模式, 1=环形缓冲模式
DHT11_Storage_SetMode(0);

项目结构

ESP8266_Combined/
├── Doc/                    # 文档目录
├── Libraries/              # STM32标准库
│   ├── CMSIS/             # CMSIS库文件
│   └── FWlib/             # 固件库文件
├── Project/               # 项目工程文件
│   └── RVMDKuv5/      # Keil uVision5工程
├── User/                  # 用户代码
│   ├── main.c            # 主程序文件
│   ├── common/           # 通用功能模块
│   ├── DHT11/            # DHT11传感器驱动
│   ├── dwt_delay/        # 精确延时模块
│   ├── ESP8266/          # ESP8266 WiFi模块驱动
│   ├── key/              # 按键驱动模块
│   ├── led/              # LED控制模块
│   ├── oled/             # OLED显示驱动
│   ├── relay/            # 继电器控制模块
│   ├── SPI/              # SPI通信模块
│   ├── SYS_TICK/         # 系统定时器
│   ├── usart/            # 串口通信
│   ├── util/             # 工具函数
│   └── W25Q64/           # W25Q64外部Flash驱动
├── Output/               # 编译输出文件
├── Listing/              # 编译列表文件
└── README.md            # 本说明文件

使用方法

  1. 编译和下载

    • 使用Keil uVision5打开项目工程文件
    • 编译项目并下载到STM32开发板
  2. 配置网络

    • 修改WiFi连接参数
    • 确保TCP服务器正常运行
  3. 功能测试

    • 上电后系统会自动连接WiFi并连接到服务器
    • 观察串口输出的温湿度数据
    • 查看OLED屏幕显示的实时温湿度数据
    • 通过网络发送LED控制命令测试LED控制功能
    • 按下KEY1按键测试继电器控制功能
    • 通过串口查看W25Q64存储的数据信息

功能扩展

本项目已经集成了多种功能模块,可以根据需要进行以下扩展:

  1. 远程继电器控制

    • 添加通过WiFi控制继电器的功能
    • 实现家电远程控制
  2. 数据上云

    • 将存储的温湿度数据上传到云平台
    • 实现远程数据监控和分析
  3. 多传感器支持

    • 添加更多类型的传感器
    • 实现更全面的环境监测

注意事项

  • 确保DHT11传感器连接正确
  • WiFi网络配置参数需要根据实际环境修改
  • 服务器端需要能够接收TCP连接和数据
  • LED控制命令需要严格按照定义的格式发送
  • W25Q64存储功能需要正确初始化才能使用
  • OLED显示功能依赖于正确的I2C配置

技术支持

如有问题,请参考原项目文档或联系开发者。

版本历史

  • V1.0 (2025-09-19) - 初始版本集成DHT11数据发送和LED控制功能
  • V1.1 (2025-09-24) - 添加W25Q64存储、OLED显示和继电器控制功能