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.
|
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/ # 项目工程文件
│ └── RVMDK(uv5)/ # 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 # 本说明文件
使用方法
-
编译和下载
- 使用Keil uVision5打开项目工程文件
- 编译项目并下载到STM32开发板
-
配置网络
- 修改WiFi连接参数
- 确保TCP服务器正常运行
-
功能测试
- 上电后系统会自动连接WiFi并连接到服务器
- 观察串口输出的温湿度数据
- 查看OLED屏幕显示的实时温湿度数据
- 通过网络发送LED控制命令测试LED控制功能
- 按下KEY1按键测试继电器控制功能
- 通过串口查看W25Q64存储的数据信息
功能扩展
本项目已经集成了多种功能模块,可以根据需要进行以下扩展:
-
远程继电器控制
- 添加通过WiFi控制继电器的功能
- 实现家电远程控制
-
数据上云
- 将存储的温湿度数据上传到云平台
- 实现远程数据监控和分析
-
多传感器支持
- 添加更多类型的传感器
- 实现更全面的环境监测
注意事项
- 确保DHT11传感器连接正确
- WiFi网络配置参数需要根据实际环境修改
- 服务器端需要能够接收TCP连接和数据
- LED控制命令需要严格按照定义的格式发送
- W25Q64存储功能需要正确初始化才能使用
- OLED显示功能依赖于正确的I2C配置
技术支持
如有问题,请参考原项目文档或联系开发者。
版本历史
- V1.0 (2025-09-19) - 初始版本,集成DHT11数据发送和LED控制功能
- V1.1 (2025-09-24) - 添加W25Q64存储、OLED显示和继电器控制功能