基于STM32F103C8T6的智能家居环境监测系统(多传感器+WiFi+OLED) 基于STM32F103C8T6的智能家居环境监测系统多传感器WiFiOLED前言随着人们对居住环境健康与安全的关注度日益提升实时监测室内温湿度、气压、空气质量等参数变得越来越重要。市面上的环境监测设备功能单一或价格偏高于是萌生了用STM32自己搭建一套多功能环境监测系统的想法。本项目以STM32F103C8T6为主控集成了6种环境传感器温湿度、气压、烟雾、一氧化碳、空气质量、光照通过OLED分页显示各项数据4按键菜单导航交互操作并利用ESP8266-01S将数据通过WiFi实时推送到手机超标时还有声光报警。整个系统成本低、扩展性强非常适合嵌入式学习和DIY。项目亮点速览7项环境参数同时采集温/湿/压/光/烟/CO/空气OLED 8页分页显示 菜单导航状态机WiFi双模自动切换STA优先AP兜底手机TCP实时接收数据超标声光报警一、系统总体设计1.1 系统架构系统采用“主控-传感器-显示-通信”四层架构STM32F103C8T6作为核心通过不同接口与各模块连接层级模块接口STM32引脚传感器层DHT11温湿度单总线(GPIO)PB4传感器层BMP280气压软件I2CPB10/PB11传感器层MQ-2烟雾ADCPA7传感器层MQ-7一氧化碳ADCPA6传感器层MQ-135空气质量ADCPA5传感器层光敏传感器ADCPA4显示交互层0.96寸OLED软件I2CPB6/PB7显示交互层4个独立按键GPIOPB12~PB15显示交互层LED蜂鸣器GPIOPA0/PA1通信层ESP8266-01SUSART2PA2/PA3设计要点BMP280和OLED都用I2C但本项目采用两组独立的软件I2CBMP280接PB10/PB11OLED接PB6/PB7避免地址冲突也降低了时序耦合风险。1.2 功能概览功能模块具体描述多参数采集同时采集温度、湿度、气压、光照、烟雾、CO、空气质量共7项参数本地显示OLED实时分页显示8个数据页 菜单页交互控制4按键实现上移/下移/确定/返回菜单导航无线传输ESP8266建立TCP服务器手机APP实时接收数据超限报警烟雾/CO/空气质量超标时LED闪烁蜂鸣器鸣响双模WiFiSTA优先连接路由器失败自动切换AP热点二、元器件清单完整的元器件清单如下供大家参考采购。2.1 主控核心元件型号规格数量用途STM32核心板STM32F103C8T6Cortex-M3, 72MHz, 64KB Flash, 20KB SRAM1系统主控ST-Link调试器ST-Link V2SWD/JTAG1程序下载与调试2.2 环境传感器元件型号规格数量用途温湿度传感器DHT110-50℃±2℃20-90%RH±5%RH1检测温湿度气压传感器BMP280I2C地址0x76300~1100hPa1检测大气压强烟雾传感器MQ-2模拟输出5V供电1烟雾/LPG/甲烷检测一氧化碳传感器MQ-7模拟输出5V供电1CO浓度检测空气质量传感器MQ-135模拟输出5V供电1NH3/NOx/CO2等有害气体光敏传感器光敏电阻模块AODO双输出1环境光照检测2.3 人机交互 通信元件型号规格数量用途OLED显示屏0.96寸 I2C SSD1306 128×641数据显示与菜单导航独立按键12×12mm轻触开关4菜单导航上移/下移/确定/返回LED3mm红色 150Ω限流电阻1报警指示蜂鸣器有源蜂鸣器 5V1报警提示音WiFi模块ESP8266-01SAT指令3.3V1WiFi数据传输2.4 外围电路元件规格数量用途杜邦线母对母/公对母/公对公 各10根1套模块连线面包板830孔1块电路搭建电阻10kΩ×4, 150Ω×1, 1kΩ若干若干上拉/限流/分压避坑提醒ESP8266-01S严禁接5V峰值电流可达200mAMQ系列传感器需要预热几分钟才能稳定输出三、硬件设计3.1 引脚分配总览STM32F103C8T6共48个引脚本项目使用了17个GPIO引脚功能模式连接模块PA0LED推挽输出报警指示灯低电平亮PA1蜂鸣器推挽输出有源蜂鸣器低电平响PA2USART2_TX复用推挽ESP8266 RXDPA3USART2_RX浮空输入ESP8266 TXDPA4ADC1_IN4模拟输入光敏传感器PA5ADC1_IN5模拟输入MQ-135PA6ADC1_IN6模拟输入MQ-7PA7ADC1_IN7模拟输入MQ-2PB4GPIO开漏/输入DHT11 DATAPB6I2C_SCL(软件)开漏输出OLED SCLPB7I2C_SDA(软件)开漏输出OLED SDAPB10I2C_SCL(软件)开漏输出BMP280 SCLPB11I2C_SDA(软件)开漏输出BMP280 SDAPB12KEY1上拉输入按键1-上移PB13KEY2上拉输入按键2-下移PB14KEY3上拉输入按键3-确定PB15KEY4上拉输入按键4-返回引脚资源利用率约46%还有充足空间扩展更多传感器。3.2 关键硬件连接说明ESP8266-01S接线最易出错重点注意ESP8266-01SSTM32说明VCC3.3V严禁接5VGNDGND共地TXDPA3 (USART2_RX)模块发送→MCU接收RXDPA2 (USART2_TX)MCU发送→模块接收EN/CH_PD3.3V使能引脚高电平有效四、软件设计4.1 软件架构main.c ├── 系统初始化层 │ ├──OLED_Init()// OLED初始化│ ├──LED_Init()// LED蜂鸣器GPIO初始化│ ├──AD_Init()// ADC1初始化4通道轮询│ ├──DHT11_Init()// DHT11初始化│ ├──ESP8266_Init()// USART2中断初始化│ ├──BMP280_Init()// BMP280软件I2C初始化│ └──Key_Init()// 按键GPIO初始化│ ├── 主循环逻辑 │ ├── 按键扫描与菜单状态机处理 │ ├── ESP8266客户端连接检测 │ ├── DHT11数据采集 │ ├── ADC四通道轮询采集 │ ├── 报警阈值判断与声光报警 │ ├── BMP280气压温度读取 │ ├── OLED显示刷新 │ └── WiFi数据推送TCP每2秒 │ └── 中断服务层 └── USART2_IRQHandler// ESP8266串口数据接收中断4.2 OLED分页显示OLED采用8个数据页 1个菜单页的设计每页固定4行布局页面标题显示内容数据来源0Temperature温度(℃)BMP280/DHT111Humidity湿度(%)DHT112Barometer气压(hPa)BMP2803Light光照(%)光敏ADC4Smoke烟雾(ppm)MQ-25COCO(ppm)MQ-76Air Quality空气质量(ppm)MQ-1357WiFi Info模式/IP/端口ESP8266每页布局第1行标题栏第2行实时数值第4行传感器来源4.3 菜单导航——按键交互4个按键的映射关系按键引脚菜单模式功能数据模式功能按键1PB12上移 / 翻上一页切换上一个传感器页按键2PB13下移 / 翻下一页切换下一个传感器页按键3PB14确定进入数据页—按键4PB15—返回回到菜单菜单状态机逻辑菜单模式 (g_in_menu1) │ │ 按键3(确定) ▼ 数据显示模式 (g_in_menu0) │ │ 按键4(返回) ▼ 回到菜单模式菜单共8项每页显示3项分3页显示。关键变量g_menu_page当前菜单页码(0~2)g_menu_cursor页内光标位置(0~2)g_sensor_page g_menu_page * 3 g_menu_cursor选中项索引(0~7)// 菜单项数组staticconstchar*menu_items[]{Temperature,Humidity,Pressure,Light,Smoke,CO,Air Quality,WiFi Info};4.4 WiFi数据传输方案连接策略STA/AP自动回退上电初始化 │ ▼ 尝试STA模式连接路由器 │ ├── 成功 → 获取STA_IP → 启动TCP Server(端口8080) │ └── 失败 → 自动切换AP模式 │ ▼ 创建热点STM32-Env(密码12345678) │ ▼ 固定IP: 192.168.4.1 │ ▼ 启动TCP Server(端口8080)数据推送协议推送周期约2秒数据格式为纯文本T:28,H:65,P:1013,L:45 G2:120,G7:30,GA:60字段含义示例T温度(℃)T:28H湿度(%)H:65P气压(hPa)P:1013L光照(%)L:45G2烟雾(ppm)G2:120G7CO(ppm)G7:30GA空气质量(ppm)GA:60手机连接方式STA模式手机和STM32连同一个WiFi用TCP调试助手连接路由器分配的IP:8080AP模式手机直接连STM32-Env热点访问192.168.4.1:8080推荐使用「网络调试助手」或「SocketTool」等TCP工具接收数据五、报警功能当环境参数超标时系统自动触发声光报警参数报警阈值触发动作烟雾(MQ-2)≥ 240 ppmLED闪烁 蜂鸣器鸣响一氧化碳(MQ-7)≥ 50 ppmLED闪烁 蜂鸣器鸣响空气质量(MQ-135)≥ 80 ppmLED闪烁 蜂鸣器鸣响测试方法用打火机在MQ-7附近释放少量气体即可触发CO报警。六、使用说明6.1 硬件连接STM32核心板插入面包板中央按引脚分配表连接各传感器ESP8266接3.3VMQ系列接5V4个按键一端接PB12~PB15另一端接GNDLED接PA0→150Ω→GND蜂鸣器接PA1→GNDUSB供电5V建议≥1A6.2 软件烧录ST-Link连接SWD接口VCC/GND/SWCLK/SWDIO打开Keil工程Project.uvprojx编译F7确保0 Error下载F8烧录到STM32按复位键OLED显示启动画面6.3 首次运行流程上电自检OLED显示--- STM32 Env ---WiFi连接优先STA模式失败自动开AP热点传感器初始化检测BMP280芯片ID(0x58)进入菜单按键1/2上下移动按键3进入详情页查看数据数据页按1/2切换按4返回菜单手机连接TCP调试助手连接 IP:8080七、项目文件结构代码/ ├── Hardware/ // 硬件驱动层 │ ├── AD.c/h // ADC1多通道采集驱动 │ ├── BMP280.c/h // BMP280气压传感器驱动 │ ├── DHT11.c/h // DHT11温湿度驱动 │ ├── ESP8266.c/h // ESP8266 WiFi AT指令驱动 │ ├── Key.c/h // 4按键扫描驱动 │ ├── LED.c/h // LED蜂鸣器驱动 │ ├── OLED.c/h // SSD1306 OLED驱动 │ └── OLED_Font.h // 8×16 ASCII字模表 ├── Library/ // STM32标准外设库 ├── Start/ // 启动文件 ├── System/ // 系统公共函数 ├── User/ │ └── main.c // 主程序状态机主循环 └── Project.uvprojx // Keil工程文件八、总结与展望项目成果本项目实现了一套基于STM32的智能家居环境监测系统具备多参数采集、OLED分页显示、菜单导航、WiFi数据传输、超标报警等完整功能。系统采用模块化设计各传感器驱动独立封装便于扩展。不足与改进方向MQ传感器精度MQ系列为半导体气敏传感器精度有限未来可换用电化学传感器如ME2-CO数据存储目前数据只在手机端实时显示可增加SD卡或云端存储历史数据MQTT协议ESP8266目前用TCP透传后续可升级为MQTT协议对接物联网平台如阿里云IoT、OneNET手机APP目前用TCP调试助手接收数据后续可开发专用APP支持图表展示和报警推送低功耗增加电池供电方案和休眠唤醒机制资源下载完整项目资源包已上传包含资源说明完整工程代码Keil MDK工程含所有驱动源码项目文档(Word)系统架构、引脚分配、软件设计、使用说明项目展示PPT10页可用于答辩或项目展示硬件设计电路图和PCB制版文件资源链接https://download.csdn.net/download/2501_91784214/93217936如果这篇文章对你有帮助欢迎点赞收藏关注也欢迎在评论区交流讨论开发环境Keil MDK-ARM v5.38 STM32标准外设库v3.5.0 ST-Link V2适用场景嵌入式课程设计、物联网DIY项目

相关新闻

最新新闻

CentOS7虚拟机部署OpenClaw系统全指南

CentOS7虚拟机部署OpenClaw系统全指南

1. 项目概述在本地CentOS7虚拟机上部署OpenClaw(龙虾)系统是一个典型的开发环境搭建过程。OpenClaw作为一款新兴的开源自动化工具,在数据处理和任务编排领域有着广泛的应用前景。这个安装过程涉及虚拟机配置、系统环境准备、依赖项安装以及Op…

2026/8/3 11:18:54
Unity DOTS架构下大批量骨骼动画的高性能实现方案

Unity DOTS架构下大批量骨骼动画的高性能实现方案

1. 项目概述:当骨骼动画遇上DOTS 如果你正在开发一款需要同屏渲染成千上万个独立角色、且每个角色都需要流畅播放骨骼动画的游戏,比如大规模的RTS、MMO主城、或者丧尸围城类的生存游戏,那么传统的GameObject Animator方案大概率会让你陷入性…

2026/8/3 11:18:54
Unity第三人称角色控制:Cinemachine与CharacterController黄金组合实战

Unity第三人称角色控制:Cinemachine与CharacterController黄金组合实战

1. 项目概述与核心价值在Unity里做第三人称角色控制,听起来是个基础活,但真上手了才发现,从“能动起来”到“手感丝滑”之间,隔着十万八千里。新手最容易掉进的坑就是自己手搓相机跟随和角色移动逻辑,结果不是角色移动…

2026/8/3 11:18:54
仅限前500名获取:AI逻辑思维训练能力图谱V2.3(含动态评估引擎+个性化训练路径生成器——已服务阿里达摩院/DeepMind 17个核心项目)

仅限前500名获取:AI逻辑思维训练能力图谱V2.3(含动态评估引擎+个性化训练路径生成器——已服务阿里达摩院/DeepMind 17个核心项目)

更多请点击: https://codechina.net 第一章:AI逻辑思维训练的范式演进与核心价值 AI逻辑思维训练已从早期基于规则引擎的符号推理,逐步演进为融合大语言模型理解力、强化学习反馈机制与可验证形式化逻辑的复合范式。这一演进并非简单替代&am…

2026/8/3 11:18:54
openai-agents-python-sdk 源码解析 | 第三篇:Agent 对象详解:instructions、output、tools 与 handoffs

openai-agents-python-sdk 源码解析 | 第三篇:Agent 对象详解:instructions、output、tools 与 handoffs

本篇导读 前两篇分别完成了项目地图和第一个文本 Agent。现在开始进入 SDK 的核心对象:Agent。 在 OpenAI Agents Python SDK 中,Agent 不是执行器。它更像一份运行声明:这个智能体叫什么、系统指令是什么、能调用哪些工具、能交接给哪些下游…

2026/8/3 11:18:54
Legacy iOS Kit终极实战指南:解锁旧款iOS设备的无限可能

Legacy iOS Kit终极实战指南:解锁旧款iOS设备的无限可能

Legacy iOS Kit终极实战指南:解锁旧款iOS设备的无限可能 【免费下载链接】Legacy-iOS-Kit An all-in-one tool to restore/downgrade, save SHSH blobs, jailbreak legacy iOS devices, and more 项目地址: https://gitcode.com/gh_mirrors/le/Legacy-iOS-Kit …

2026/8/3 11:13:54