本文最后更新于23 天前,其中的信息可能已经过时,如有错误请发送邮件到zheegbm@163.com
STM32+ESP8266 物联网智能温湿度与门控系统 | 开源项目完整分享
本文给大家分享一个完整可落地的STM32物联网开源项目——智能温湿度与门控系统。项目基于STM32F103C8T6主控开发,集成环境数据采集、本地可视化、Wi-Fi远程通信、门锁远程控制等完整功能,非常适合物联网入门学习、智能家居DIY场景使用。
一、项目简介
本项目基于STM32F103C8T6单片机核心开发,整合了环境监测与远程门控两大核心能力。系统可通过DHT11传感器实时采集环境温湿度数据,在0.96寸OLED屏幕完成本地实时显示;同时借助ESP8266 Wi-Fi模块,通过MQTT/TCP协议与云端/APP完成通信,实现环境数据的远程上传,以及对舵机门锁的远程开关控制。
项目完整开源,硬件方案成熟、代码结构清晰,既可以直接用于智能家居、机房环境监控等实际场景,也非常适合高校学生、嵌入式爱好者作为物联网入门学习的实践项目。
二、核心功能特性
- 环境实时监测:采用DHT11温湿度传感器,通过单总线通信实时采集环境温度、湿度数据
- 本地数据显示:搭载0.96寸OLED屏幕,实时刷新显示系统状态、温湿度数值、网络连接状态
- 远程通信能力:集成ESP8266(ESP-01S) Wi-Fi模块,通过串口AT指令驱动,支持Wi-Fi联网,基于MQTT/TCP协议完成数据上云与指令下发
- 远程门控执行:通过PWM信号驱动SG90/MG995舵机,实现智能门锁的远程开关控制
- 系统状态指示:板载LED灯,可直观指示系统运行状态与Wi-Fi网络连接状态
- 本地用户交互:预留独立按键接口,支持本地手动触发门锁控制等操作
三、硬件清单
| 硬件分类 | 型号/规格 | 核心用途 | 备注说明 |
|---|---|---|---|
| 主控芯片 | STM32F103C8T6 | 系统核心控制器 | 项目核心主控 |
| 温湿度传感器 | DHT11 | 环境温湿度数据采集 | 单总线通信方式 |
| 显示屏 | 0.96寸 OLED屏 | 本地数据与状态显示 | 支持I2C/SPI接口(详见代码定义) |
| Wi-Fi通信模块 | ESP8266 (ESP-01S) | 无线网络通信与数据透传 | 串口通信,AT指令驱动 |
| 执行机构 | SG90 / MG995 舵机 | 智能门锁开关执行 | PWM信号驱动控制 |
| 程序下载工具 | ST-Link V2 / J-Link | 程序编译下载与在线调试 | 用于Keil环境下的程序烧录 |
| 外围配件 | 按键、LED灯、杜邦线、面包板/PCB | 系统基础外围电路 | 按需选配即可 |
四、引脚配置参考
⚠️ 以下为项目通用引脚配置,最终请以项目Hardware目录下的头文件定义为准,避免硬件接线错误。
| 功能模块 | STM32对应引脚 | 功能描述 | 对应代码文件 |
|---|---|---|---|
| DHT11温湿度传感器 | PAx / PBx | 单总线数据引脚 | Hardware/dht11.h |
| OLED显示屏 | PB6 (SCL)、PB7 (SDA) | I2C通信接口(示例) | Hardware/oled.h |
| ESP8266 Wi-Fi模块 | PA2 (TX)、PA3 (RX) | USART2串口通信 | ESP/esp8266.h |
| 舵机PWM控制 | PA1 / PA6 | TIM定时器PWM输出 | Hardware/pwm.h |
| 系统状态LED | PC13 / PA1 | 运行/联网状态指示 | Hardware/led.h |
| 用户按键 | PA0 / PB12 | 本地输入控制 | Hardware/key.h |
五、软件环境要求
| 软件/工具 | 版本/规格说明 |
|---|---|
| 开发IDE | Keil uVision 5 (MDK-ARM) |
| 固件库 | STM32F10x Standard Peripheral Library(标准库) |
| 编译器 | ARMCC (AC5/AC6) |
| 辅助调试工具 | 串口调试助手(XCOM/Vofa+等) |
六、快速上手使用指南
1. 硬件连接
按照上方引脚配置表,完成所有硬件模块的接线,确认接线无误后再进行上电操作,避免短路损坏元器件。
2. 配置文件修改
- 打开项目工程中的 ESP/esp8266.c 或 main.c 文件
- 修改对应配置项中的Wi-Fi名称(SSID)与Wi-Fi密码(Password)为自己的环境参数
- 若使用MQTT协议对接云端,同步修改MQTT服务器地址与端口号
3. 程序编译与下载
- 使用Keil uVision 5打开项目工程文件 Projek.uvprojx
- 执行工程编译,确认编译无报错、无警告
- 通过ST-Link/J-Link下载器连接开发板,将编译好的程序下载到STM32单片机中
4. 系统运行与测试
- 给开发板上电,OLED屏幕会先显示系统初始化界面
- 等待ESP8266模块完成Wi-Fi联网,联网成功后会在屏幕更新对应状态
- 联网完成后,即可在配套的云端/APP端查看实时温湿度数据,同时可远程下发指令控制舵机门锁的开关
七、项目目录结构
项目代码工程结构清晰,各模块分层管理,便于修改与二次开发,核心目录结构如下:
32温湿度6.0/ ├── User/ # 主程序入口(main.c)、中断服务函数 ├── Hardware/ # 硬件驱动层(DHT11、OLED、PWM、LED、KEY等外设驱动) ├── ESP/ # ESP8266 Wi-Fi模块驱动与通信逻辑 ├── System/ # 系统底层配置、延时函数等核心配置 ├── Library/ # STM32F10x 标准外设库文件 ├── Start/ # STM32 启动文件与内核相关文件 └── ...
八、反馈与贡献
如果您在项目代码使用、硬件调试过程中遇到任何问题,欢迎通过邮件联系交流:
📧 Email:zheegbm@163.com
同时也欢迎大家在GitHub仓库提交Issue反馈问题,或是提交Pull Request来共同完善项目代码。
九、项目开源地址
🔗 完整项目工程、硬件说明、源码均已开源,可直接访问下方仓库地址获取:
https://github.com/ZRGBM/ESP8266-STM32-OneNET
https://github.com/ZRGBM/ESP8266-STM32-OneNET


