stm32+mqtt+Onenet云平台+esp8266项目
一、系统设计目标与原理
本设计以 STM32F103C8T6 为控制核心,构建温湿度传感器采集报警系统,旨在实现对特定环境温湿度的实时监测与异常报警。核心目标是监测温度(-40℃~85℃,精度 ±0.5℃)、湿度(0%~100% RH,精度 ±3% RH),支持用户自定义温湿度上下限阈值,当检测值超出阈值时,立即触发声光报警。
1、采集温度和湿度数据,在OLED显示屏上显示相关数值。
2、可以通过按键设置温度、湿度阀值,当温度或者湿度超过设定的阀值时,会触发声光报警功能。
3、APP可以远程控制单片机声光报警功能、LED灯开关功能。
4、单片机采集到的数据可以远程发送给APP,在APP上展示温度和湿度数据。
系统工作原理基于 "采集 - 判断 - 报警" 的闭环逻辑:STM32 通过温湿度传感器实时获取环境参数,经数据处理后与预设阈值比对;若参数超标,驱动报警装置工作并记录报警事件;实时数据与报警状态通过显示屏同步展示,用户可通过按键交互修改阈值或查看历史数据。STM32 的高效处理能力确保数据采集的连续性与报警的及时性,传感器的高精度特性保障监测数据的可靠性。
二、硬件架构设计
硬件架构以 STM32F103C8T6 为核心,主要包含六大模块:
(一)核心控制模块
STM32F103C8T6 作为主控制器,负责数据采集、逻辑判断与外设控制,关键资源配置:
I2C1:连接温湿度传感器(AH20),实现数据通信。
GPIO:控制报警装置(蜂鸣器、LED)、按键输入与显示屏。
USART1:预留串口接口,可扩展蓝牙模块实现远程报警。
系统时钟:8MHz 外部晶振,倍频至 72MHz,确保指令高效执行。
内部 Flash:存储历史报警记录(最多 100 条)与用户设置的阈值参数。
(二)温湿度采集模块
采用 SHT30 数字温湿度传感器,具备以下特性:
通信接口:I2C 总线(SCL=PB6,SDA=PB7),支持 100kHz/400kHz 通信速率。
测量性能:温度测量范围 - 40℃~85℃,湿度 0%~100% RH,重复性 ±0.1℃/±0.5% RH。
供电:3.3V 直流供电,工作电流≤1.5mA(测量模式),待机电流≤0.5μA,低功耗特性适合长时间监测。
硬件设计:传感器与 STM32 之间串联 4.7kΩ 上拉电阻,确保 I2C 信号稳定,PCB 布局时远离热源与干扰源。
(三)报警输出模块
声光报警:
蜂鸣器:有源蜂鸣器(5V 供电),通过 NPN 三极管(2N3904)驱动,基极限流电阻 1kΩ,报警时发出 1kHz 持续声响。
LED 指示灯:红色高亮度 LED,与蜂鸣器同步工作,通过 220Ω 限流电阻连接至 STM32 的 GPIO 引脚(PA0),报警时闪烁(频率 2Hz)。
驱动逻辑:STM32 输出高电平时,三极管导通,蜂鸣器与 LED 工作;输出低电平时关闭。
(四)人机交互模块
显示模块:1602 字符型 LCD(并行接口),通过 GPIO 连接 STM32(RS=PA1,RW=PA2,E=PA3,D0-D7=PB0-PB7),显示内容包括:
实时温湿度:"T:25.3℃ H:58% RH"
阈值范围:"T:10-30℃ H:40-70% RH"
报警状态:"ALARM! T:32.5℃"
按键控制:3 个独立按键(设置键、加键、减键),分别连接至 STM32 的 PB12、PB13、PB14 引脚,功能如下:
设置键:短按进入阈值设置模式,长按(3 秒)复位报警状态。
加 / 减键:在设置模式下调节阈值数值,短按步进 1℃/1% RH,长按快速调节。
(五)电源模块
供电方案:5V 直流电源输入,经以下转换:
3.3V 输出:通过 AMS1117-3.3V 线性稳压器为 STM32、SHT30 传感器供电。
5V 输出:直接为蜂鸣器、LCD 显示屏供电。
保护电路:输入端串联 1A 自恢复保险丝,防止过流损坏;输出端并联 100μF 电解电容与 0.1μF 陶瓷电容,滤除电源纹波,确保供电稳定。



需要代码的,可以私聊我!!