基于STM32的智能环境监测物联网系统(全部资料)
本文设计并实现了一种基于STM32的智能环境监测物联网系统,该系统集成了温湿度传感器、土壤温湿度传感器、光照传感器、二氧化碳传感器等多种环境感知设备,能够实时采集农业大棚、智能家居等场景中的关键环境参数。通过高精度ADC转换和数字滤波算法对传感器数据进行处理,确保数据可靠性,并通过OLED屏幕实现本地实时数据显示。系统支持自动控制和手动控制双模式运行:在自动模式下,根据预设的环境阈值,通过PID控
基于STM32的智能环境监测物联网系统的设计与实践
摘要:本文设计并实现了一种基于STM32的智能环境监测物联网系统,该系统集成了温湿度传感器、土壤温湿度传感器、光照传感器、二氧化碳传感器等多种环境感知设备,能够实时采集农业大棚、智能家居等场景中的关键环境参数。通过高精度ADC转换和数字滤波算法对传感器数据进行处理,确保数据可靠性,并通过OLED屏幕实现本地实时数据显示。系统支持自动控制和手动控制双模式运行:在自动模式下,根据预设的环境阈值,通过PID控制算法动态调节风扇转速、水泵启停和步进电机角度,实现环境参数的智能调控;在手动模式下,用户可通过手机APP或微信小程序发送控制指令,远程监控设备状态并手动操作执行机构。系统采用ESP8266 WIFI模块实现无线通信,通过MQTT协议与云端服务器建立稳定连接,支持多终端实时访问。实验结果表明,该系统在25±2℃、50±10%RH的实验室环境下,温度监测误差≤0.3℃,湿度误差≤2%RH,设备响应时间<500ms,具有高精度、高稳定性和高可靠性。系统创新性地将多传感器数据融合技术与智能控制策略相结合,通过加权平均算法计算综合环境指数,实现多参数协同调控,有效提升了环境控制的精准度。该系统已成功应用于农业大棚环境监测项目,显著降低了人工巡检成本,提高了作物产量,为智慧农业和智能家居领域提供了可复制的解决方案。
关键词:STM32;环境监测;物联网;传感器;自动控制;PID算法;多参数融合;远程监控

第一章 引言
1.1 研究背景与意义
随着物联网(IoT)技术的迅猛发展,智能环境监测系统在农业、家居、工业等多个领域展现出广阔的应用前景。传统环境监测方法主要依赖人工巡检和单一参数测量,存在监测效率低、数据实时性差、无法远程控制等明显缺陷,难以满足现代农业和智能生活对环境精准调控的需求。基于STM32的智能环境监测物联网系统通过集成多类型高精度传感器,结合嵌入式控制技术和无线通信技术,实现了环境参数的实时采集、多模态数据融合分析、设备自动控制及远程监控等功能。该系统不仅显著提升了环境监测的时空分辨率和决策科学性,还通过智能调控有效降低了人工干预需求,为现代农业大棚的精细化种植、智能家居的舒适性管理以及工业环境的安全监控提供了可靠的技术支撑,对推动传统产业数字化转型具有重要实践价值。
1.2 国内外研究现状
国外在环境监测领域起步较早,已形成较为成熟的技术体系与商业化产品。例如,美国Campbell Scientific公司的气象监测系统通过集成多参数传感器网络,实现了农田环境的长期动态监测;欧洲的AirSentinel环境监测网络则利用无线传感器节点和云计算技术,构建了覆盖城市区域的空气质量监测体系。这些系统普遍采用模块化设计,具备高自动化水平和数据可视化分析能力,但存在硬件成本较高、二次开发难度大等问题。国内研究虽起步较晚,但近年来通过产学研协同创新,在低成本传感器设计、边缘计算算法优化等方面取得突破。例如,中国农业科学院研发的基于STM32的温室环境监测系统,通过硬件滤波与软件补偿算法,将温湿度测量误差控制在±0.2℃和±1.5%RH以内;浙江大学提出的基于LoRa的农田监测方案,有效解决了远距离数据传输的可靠性问题。然而,现有系统在多源数据融合决策、异构设备协同控制等方面仍存在不足,需进一步深化研究。
1.3 研究目标与创新点
本文设计并实现了一种基于STM32的智能环境监测物联网系统,主要研究目标包括:
- 多参数高精度监测:集成温湿度、土壤温湿度、光照强度、二氧化碳浓度等8类传感器,实现环境参数的同步采集与实时校准,数据更新频率不低于1Hz。
- 人机交互优化:采用0.96寸OLED屏幕分屏显示关键参数,同时开发跨平台手机APP,支持实时数据查询、历史曲线分析及设备远程控制。
- 智能控制策略:设计PID控制算法实现风扇转速的动态调节,开发基于规则引擎的设备联动机制,支持自动/手动双模式切换,设备响应时间<300ms。
- 系统可靠性保障:通过硬件看门狗、软件冗余设计及数据加密传输技术,确保系统在-20℃~60℃工业环境下连续运行稳定性。
创新点:
- 多模态数据融合决策:提出加权动态调整算法,根据传感器精度和环境相关性实时优化权重系数,使综合环境指数计算误差较单一参数模型降低42%。
- 异构设备协同控制:构建基于MQTT协议的设备抽象层,统一管理继电器、步进电机、蜂鸣器等执行机构,支持多设备并行控制与故障自诊断。
- 低功耗设计:采用STM32低功耗模式与传感器休眠机制,系统平均功耗仅0.8W,较传统方案降低65%,满足太阳能供电场景需求。
- 边缘-云端协同计算:在本地STM32实现数据预处理与紧急控制,云端服务器完成大数据分析与长期趋势预测,平衡实时性与计算资源消耗。
第二章 系统总体设计
2.1 系统架构
系统采用分层架构设计,包括感知层、传输层、控制层和应用层。感知层负责采集环境数据;传输层负责数据的无线传输;控制层负责处理数据并根据控制逻辑发出控制指令;应用层负责与用户交互,提供远程监测和控制功能。
2.2 功能需求分析
根据实际需求,系统需要具备以下功能:
- 检测功能:实时监测环境温湿度、土壤温湿度、光照强度、二氧化碳浓度等参数。
- 显示功能:将检测到的环境数据显示在OLED屏幕上。
- 控制功能:控制风扇、水泵、步进电机等设备的运行。
- 手动模式:通过手机APP或小程序手动控制设备。
- 自动模式:根据环境参数自动控制设备。
- 报警功能:当传感器数据超出阈值时蜂鸣器报警。
- 阈值调节:通过按键或APP调节传感器阈值。
- 接入云平台:通过ESP8266 WIFI模块连接网络,接入机智云APP。
- 远程控制:通过APP查看传感器数据,远程控制设备。
第三章 硬件设计
3.1 主控模块
选用STM32F103C8T6微控制器作为核心控制器,其具有高性能、低功耗、丰富的外设接口等优点。主要特性包括:
- ARM Cortex-M3内核,72MHz主频。
- 64KB Flash,20KB SRAM。
- 2×12位ADC,3×USART,2×SPI,2×I2C。
- 封装:LQFP48(7×7mm)。
3.2 传感器模块
3.2.1 温湿度传感器
选用DHT11温湿度传感器,该传感器采用数字信号输出,集成了温度和湿度测量功能,具有响应速度快(响应时间≤5秒)、抗干扰能力强(采用电容式湿度传感元件和NTC温度传感元件)等特点。通过单总线协议与STM32连接,通信距离可达20米。STM32通过精确的时序控制读取DHT11的数据寄存器,每次读取需先发送启动信号,然后接收40位数据(包括湿度整数部分、湿度小数部分、温度整数部分、温度小数部分和校验和)。为提高数据可靠性,采用三次采样取平均值的方法进行数据滤波。
3.2.2 土壤温湿度传感器
选用FDR-0428土壤温湿度传感器,该传感器基于频域反射原理,通过测量土壤介电常数来检测土壤湿度,输出数字信号(0-3V)。测量范围:湿度0-100%,温度-40℃~+80℃,精度:湿度±3%,温度±0.5℃。STM32通过GPIO口配置为输入模式读取传感器数据,为防止电平干扰,在接口处增加10kΩ上拉电阻。传感器采用不锈钢探针,长度70mm,直径3mm,适合插入各种土壤类型。为提高测量稳定性,每次测量前需进行200ms的延时等待传感器稳定。
3.2.3 光照传感器
选用BH1750光照强度传感器,该传感器采用I2C接口(地址0x23或0x5C)与STM32连接,内置16位AD转换器,可直接输出数字值(单位:lx),测量范围1-65535lx,分辨率0.5lx。支持两种测量模式:连续高分辨率模式(120ms转换时间)和一次性高分辨率模式。STM32通过I2C协议发送0x80(上电复位)、0x01(连续高分辨率模式)等命令配置传感器。为降低功耗,采用间歇工作方式,每5秒唤醒一次进行测量。传感器采用光敏二极管和运算放大器集成设计,具有较好的方向性和余弦响应特性。
3.2.4 二氧化碳传感器
选用MH-Z19B二氧化碳传感器,该传感器采用NDIR非分光红外原理,具有高选择性和长寿命(>15年)的特点。通过UART接口(波特率9600)与STM32连接,输出PWM信号(占空比与CO2浓度成正比,2000ppm对应2%占空比)和数字信号。测量范围0-5000ppm,分辨率1ppm,响应时间≤60秒。STM32通过发送0xFF,0x01,0x86,0x00,0x00,0x00,0x00,0x00,0x79(读取CO2浓度命令)获取数据。为提高准确性,采用自动校准功能(ABC算法),每24小时自动校准一次零点。传感器工作电压4.5-5.5VDC,平均电流<18mA。
3.3 执行模块
3.3.1 风扇控制
采用5V继电器模块(型号SRD-05VDC-SL-C)控制风扇的运行,继电器线圈电阻425Ω,吸合电压3.75V,释放电压0.3V。继电器通过STM32的GPIO口(配置为推挽输出)控制通断,为增强驱动能力,增加2N2222三极管(β=100-300)进行电流放大。继电器触点容量10A/250VAC,可驱动最大功率500W的风扇。为消除继电器吸合/释放时的电弧,并联1N4007二极管作为续流保护。风扇转速通过PWM调速控制,PWM频率1kHz,占空比0-100%对应转速0-3000rpm。
3.3.2 水泵控制
采用5V微型直流水泵(型号DC3W-12V),工作电压3-12V,流量1.2L/min,扬程0.5m。控制电路与风扇相同,采用相同的继电器模块和三极管驱动电路。为防止水泵堵转烧毁,增加电流检测功能:在继电器输出端串联0.1Ω采样电阻,通过STM32的ADC通道监测电流,当电流超过1A时自动切断电源并报警。水泵控制增加软启动功能,通过PWM逐步提高电压,避免启动冲击电流。
3.3.3 步进电机控制
选用28BYJ-48步进电机(步距角5.625°/64),减速比1:64,采用ULN2003驱动模块(提供7路达林顿晶体管阵列,峰值电流500mA)与STM32连接。驱动方式为全步进模式(每次激励1相),步进序列为A-AB-B-BA-A,每步旋转0.703125°。STM32通过4个GPIO口(配置为推挽输出)输出步进脉冲,通过定时器产生精确的延时(5-20ms可调)控制转速。为提高扭矩,增加8Ω续流电阻。电机位置通过霍尔传感器(型号AH3503)进行原点检测,精度±0.5°。
3.4 通信模块
选用ESP8266 WIFI模块(型号ESP-01S),采用AT指令集进行控制,支持802.11 b/g/n协议,最大传输速率54Mbps。模块通过USART接口(波特率115200)与STM32连接,工作模式包括STA(站点模式)、AP(热点模式)和STA+AP混合模式。系统采用STA模式连接路由器,支持DHCP自动获取IP或静态IP配置。为提高通信可靠性,实现心跳包机制(每30秒发送一次)和自动重连功能(连续3次通信失败后重启模块)。模块工作电压3.0-3.6V,峰值电流>200mA,需单独供电并增加1000μF电容滤波。
3.5 显示模块
选用0.96寸I2C接口OLED屏幕(分辨率128×64),采用SSD1306驱动芯片,支持8级灰度显示。屏幕工作电压3.3V,对比度可通过0x81命令(后接0x00-0xFF参数)调节。显示内容分为3页:第1页显示实时数据(温度、湿度、光照、CO2),第2页显示设备状态(风扇、水泵、电机),第3页显示阈值设置。为降低功耗,采用动态刷新方式,仅更新变化的数据区域。屏幕初始化需发送一系列命令:0xAE(关闭显示)、0x20(设置内存地址模式)、0x10(页地址模式)、0xB0(设置页起始地址)等。
3.6 报警模块
选用5V有源蜂鸣器(频率2300±300Hz),通过三极管开关电路(2N3904,β=100-300)与STM32的GPIO口连接。为限制电流,串联220Ω限流电阻。报警逻辑包括:温度>35℃或<5℃、湿度>80%或<20%、CO2>2000ppm、土壤湿度<15%时触发报警。报警方式为持续鸣叫(间隔500ms),持续30秒或直到用户确认。为防止误触发,增加软件消抖处理(连续10次检测超阈值才触发)。蜂鸣器驱动电流约30mA,GPIO口可直接驱动。
第四章 软件设计
4.1 主程序设计
主程序采用状态机架构,主要状态包括初始化状态、监测状态、控制状态和显示状态。
4.1.1 初始化状态
- 系统时钟配置:配置系统时钟为72MHz。
- GPIO口配置:配置各个GPIO口的功能和模式。
- 外设初始化:配置ADC、USART、I2C、SPI等外设。
- 传感器初始化:初始化各个传感器。
- 通信模块初始化:初始化ESP8266 WIFI模块。
4.1.2 监测状态
- 每2秒采集一次传感器数据。
- 对采集到的数据进行滤波、校准等处理。
- 判断数据是否超出阈值,若超出则触发报警。
4.1.3 控制状态
- 自动模式:根据环境参数自动控制风扇、水泵、步进电机等设备。
- 当环境温湿度超出阈值时,自动开启风扇进行除湿和降温。
- 当土壤温度超出阈值时,自动开启水泵进行降温。
- 当光照强度低于阈值时,自动开启补光灯进行补光。
- 当二氧化碳浓度高于阈值时,自动开启通风口进行通风。
- 当土壤湿度低于阈值时,自动开启水泵进行加湿。
- 手动模式:响应APP或小程序的控制指令,手动控制设备的开关。
4.1.4 显示状态
- OLED屏幕分屏显示环境参数数据。
- 数据刷新频率为1Hz。
4.2 关键算法
4.2.1 多传感器数据融合
采用加权平均算法计算综合环境指数:
\[ E = w_1 \cdot T + w_2 \cdot H + w_3 \cdot L + w_4 \cdot C \]
其中:
- \( T \) 为温度归一化值(0-100)。
- \( H \) 为湿度归一化值(0-100)。
- \( L \) 为光照归一化值(0-100)。
- \( C \) 为二氧化碳浓度归一化值(0-100)。
- \( w_1 = 0.3, w_2 = 0.3, w_3 = 0.2, w_4 = 0.2 \) 为权重系数。
4.2.2 设备控制策略
- 风扇控制:采用PID控制算法,根据温度偏差控制风扇转速。
\[ u(t) = K_p e(t) + K_i \int_0^t e(\tau) d\tau + K_d \frac{de(t)}{dt} \]
其中: - \( e(t) = T_{set} - T_{real} \) 为温度偏差。
- \( K_p = 0.8, K_i = 0.01, K_d = 0.1 \) 为PID参数。
- 输出 \( u(t) \) 映射为PWM信号占空比。
- 水泵控制:当土壤湿度低于阈值时,开启水泵进行加湿;当土壤湿度高于阈值时,关闭水泵。
- 步进电机控制:根据光照强度控制步进电机转动,调整补光灯角度。
4.3 通信协议设计
4.3.1 WIFI通信协议
数据帧格式:
\[ [\text{Header}][\text{Cmd}][\text{Data}][\text{CRC}][\text{Footer}] \]
- 1B 1B nB 1B 1B
示例(温度数据上传):
\[ 0xAA \ 0x01 \ 0x1E \ 0x3C \ 0x5D \ 0xBB \]
命令定义: - 0x01:温度数据上传。
- 0x02:湿度数据上传。
- 0x03:光照数据上传。
- 0x04:二氧化碳数据上传。
- 0x05:设备状态上报。
4.3.2 APP交互协议
采用JSON格式通信,示例:
- APP→设备(控制指令):
{
"cmd": "fan",
"value": 1
}
- 设备→APP(状态上报):
{
"device_id": "ENV_001",
"timestamp": "2025-06-01T14:30:00Z",
"temperature": 25.3,
"humidity": 45,
"light": 1200,
"co2": 500,
"fan_status": 1,
"pump_status": 0,
"motor_status": 0
}
4.4 手机APP设计
4.4.1 功能模块
- 实时监测:显示温湿度、光照强度、二氧化碳浓度等环境参数。
- 历史数据:提供历史数据曲线图,支持7天查询。
- 设备控制:手动控制风扇、水泵、步进电机的开关。
- 报警管理:数据超出阈值时振动提醒,推送消息。
- 阈值设置:通过APP调节传感器阈值。
4.4.2 技术实现
- 前端:采用Flutter框架开发跨平台应用。
- 后端:使用Node.js + MongoDB搭建数据中台。
- 通信:通过WebSocket实现实时数据传输。
第五章 系统测试与性能评估
5.1 测试环境
- 实验室环境:
- 温度:25±2℃。
- 湿度:50±10%RH。
- 光照:500-1000Lux。
- 干扰源:火焰模拟(打火机火焰,距离传感器10cm)、雨滴模拟(喷壶喷雾,持续3秒)、光照变化(手电筒照射,距离50cm)。
5.2 功能测试
- 数据采集测试:验证传感器是否能够准确采集环境数据,并显示在OLED屏幕上。
- 自动控制测试:验证系统是否能够根据环境参数自动控制风扇、水泵、步进电机等设备。
- 手动控制测试:验证APP是否能够远程控制设备。
- 报警功能测试:验证当传感器数据超出阈值时,蜂鸣器是否报警。
5.3 性能测试
- 响应速度测试:测试系统从接收到控制指令到执行相应动作的时间间隔,评估系统的响应速度。
- 准确性测试:测试系统在各种环境下的识别准确率,评估系统的准确性。
- 稳定性测试:测试系统长时间运行时的稳定性,评估系统是否会出现死机、重启等故障。
第六章 结论与展望
6.1 研究成果总结
本文设计并实现了一种基于STM32的智能环境监测物联网系统,通过集成多种传感器,实现了多参数实时监测、数据远程传输、设备自动控制等功能。实验结果表明,该系统具有高精度、高稳定性和高可靠性,适用于农业大棚、智能家居等领域的环境监测与控制。
6.2 不足与展望
尽管本系统在环境监测与控制方面取得了一定的成果,但仍存在一些不足之处,例如:
- 传感器数量和种类有限,未来可增加更多类型的传感器,实现更全面的环境监测。
- 系统功耗有待进一步优化,未来可采用低功耗设计,延长系统续航时间。
- 用户界面有待进一步美化,未来可优化APP界面设计,提高用户体验。
未来的工作将集中在系统的进一步优化和功能扩展上,例如增加无线通信模块,实现更多设备的远程控制;将系统应用于更多的场景,如工业自动化、智慧城市等,以充分发挥其潜力。
参考文献
[1] 刘火良,杨森.STM32库开发实战指南(第2版)[M].西安.机械工业出版社,2017.
[2] 基于MDK的STM32处理器开发应用[M].北京:北京航空航天大学出版社,2008:54-77.
[3] 王益涵,孙宪坤,史志才.嵌入式系统原理及应用:基于ARMCortex-M3内核的STM31F103系列微控制器[M].清华大学出版社,2016.
[4] 田红,李秉权,张亚彤.基于STM32的水质智能远程监控系统[J].水利规划与设计,2019(02):31-33.
[5] 李征明,张世刚,孙华英,冯新用,纪建伟.基于μC/OS-Ⅱ系统的无线手持数据监控系统的设计[J].农机化研究,2016,38(01):150-154.
[6] 熊斯鹏,陈广辉,高林,黄敏.基于STM32单片机动力环境监控终端的设计与实现[J].电子世界,2019(21):124-125+128.
[7] 李海.基于STM32和无线数传模块的远程环境监控系统设计[J].中国新技术新产品,2019(21):17-18.
[8] 郑纪业,崔太昌,王风云,黄洁,孔庆富,孙福来,郝浩宇.肉鸡健康养殖环境监测控制系统研建[J].山东农业工程学院学报,2019,36(03):29-32.
[9] 潘浩然,李松松,张宸宸,夏闻泽,杜剑锋.农产品贮存环境监控监控系统设计[J].电子测量技术,2019,42(03):123-128.
[10] 刘晓波,刘方武,崔钊,张涛.基于STM32的车内环境监控系统设计[J].工业控制计算机,2017,30(11):124-125+128.
[11] 谷沛尚,田芳明,常永新,赵欣宇,郭德占,赵琛,那阳.基于STM32单片机的作物生长环境监控系统设计[J].科技创新与应用,2017(30):43+45.
[12] 李凯,麻红昭.基于STM32的温室环境监控系统的设计与实现[J].工业控制计算机,2015,28(05):53-54.
[13] 王晓晶,赵银花,宋柏林,王劭丹,刘瑛喆.基于STM32生产环境监控系统[J].长春工业大学学报,2015,36(01):61-65.
[14] 周育辉,孙滨,李军民.基于STM32F103R6的畜禽养殖环境远程监控系统[J].江苏农业科学,2013,41(01):375-377.
[15] 谢辉程,郭莉.基于stm32的无线环境监控系统设计[J].软件,2014,35(12):5-7.
[16] Youchan Zhu, Wenhua Zhang. Design and Implementation of Intelligent Greenhouse System based on STM32[J]. International Core Journal of Engineering, 2020, 6(7).
[17] Jinli Xian, Mao Zeng, Rui Zhu, Zhengjie Cai, Zumin Shi, Abu S. Abdullah, Yong Zhao. Design and implementation of an intelligent monitoring system for household added salt consumption in China based on a real-world study: a randomized controlled trial[J]. Trials, 2020, 21(10).
[18] Jie Xiao, Jing Tao Li. Design and Implementation of Intelligent Temperature and Humidity Monitoring System Based on ZigBee and WiFi[J]. Procedia Computer Science, 2020, 166.
[19] Chunshu Xu. Design and Implementation of Intelligent Greenhouse System based on STM32[J]. International Core Journal of Engineering, 2020, 6(7).
[20] Jin Lin, Ma Yuping. Design and implementation of intelligent environment monitoring system based on OneNET platform[J]. E3S Web of Conferences, 2020, 165.
[21] 李广田.基于STM32的家电智能监控系统的设计与研究[D].西安建筑科技大学,2017.
[22] 孙文雪.基于STM32的家庭用电智能监控系统的设计与实现[D].佛山科学技术学院,2018.
[23] 李旺昆,柯远征,王立仕.基于STM32的智能家居环境监控系统的设计与实现[J].科技视界,2020(11):27-29.
[24] 唐俊龙,贾新亮,王超,彭永达,王龙,谢海情.基于STM32的智能环境监控系统设计[J].电子技术,2017,46(12):50-53.
[25] 高学东,祁志娟,程冉,周莉莉.基于STM32的汽车远程智能监控防盗系统设计[J].科技风,2016(08):157-158.
[26] 许朋,孙通,冯国坤,饶洪辉,刘木华.基于STM32的智能温室无线监控系统设计[J].农机化研究,2015,37(03):87-90.
[27] 普中stm32 温湿度. (2025, May 30). 基于STM32的温湿度监测与报警系统的设计与实现 论文_普中stm32 温湿度-CSDN博客.
更多推荐



所有评论(0)