在智能家居、工业自动化及环境监测领域,基于STM32的智能模块凭借其高性能、低功耗和丰富的外设接口,成为集成温湿度、人体感应等传感器的理想平台。通过实时数据采集与智能控制,可实现环境自适应调节、安全预警等功能。本文将详细解析STM32智能模块的开发流程,涵盖传感器选型、硬件设计、软件编程及实际应用案例,助力开发者快速构建高效可靠的传感控制系统。
DHT11/DHT22:
数字输出,集成温湿度传感与信号处理电路,接口简单(单总线协议)。
DHT11:精度±2℃(湿度±5%),测量范围0-50℃(20-90%RH),价格低廉。
DHT22:精度±0.5℃(湿度±2%),测量范围-40~80℃(0-100%RH),适合高精度场景。
SHT3x:
I2C接口,支持CRC校验,抗干扰能力强,精度达±0.3℃(湿度±2%),适用于工业级应用。
选型建议:
消费级产品(如智能温控器)优先选择DHT22,兼顾成本与性能。
工业环境(如仓库温湿度监测)推荐SHT3x,确保数据可靠性。
PIR(热释电红外传感器):
检测人体红外辐射变化,输出数字信号,成本低(<1美元),但易受环境温度干扰。
典型应用:智能照明、安防报警。
毫米波雷达:
通过发射电磁波检测目标距离与速度,支持多目标识别,抗干扰能力强,但成本较高(>10美元)。
典型应用:无人零售、智能养老看护。
选型建议:
简单场景(如走廊灯控制)选择PIR,性价比高。
复杂场景(如人员定位与行为分析)需毫米波雷达,提供更丰富的数据。
以STM32F103C8T6为例,核心电路包括:
电源管理:LDO(如AMS1117-3.3)将5V输入转换为3.3V,为MCU及传感器供电。
时钟电路:8MHz外部晶振提供主时钟,32.768kHz晶振用于RTC实时时钟。
调试接口:SWD接口连接ST-Link,支持程序下载与调试。
DHT22连接:
DATA引脚通过4.7kΩ上拉电阻连接至STM32的PA0引脚,确保信号稳定性。
示例代码(基于HAL库):
c#include "dht22.h"DHT22_DataTypeDef dht22_data;if (DHT22_Read(&dht22_data) == DHT22_OK) { printf("Temp: %.1f℃, Humi: %.1f%%\r\n", dht22_data.Temperature, dht22_data.Humidity);}PIR传感器连接:
OUT引脚连接至STM32的PA1(外部中断引脚),检测到人体时触发中断。
中断服务函数示例:
cvoid EXTI1_IRQHandler(void) { if (EXTI->PR & EXTI_PR_PR1) { HAL_GPIO_TogglePin(LED_GPIO_Port, LED_Pin); // 检测到人体时翻转LED状态 EXTI->PR |= EXTI_PR_PR1; // 清除中断标志 }}无线通信:通过ESP8266(Wi-Fi)或CC1310(Sub-1GHz)实现数据上传至云端。
本地存储:外接W25Q128(16MB Flash)存储历史数据,支持断网续传。
人机交互:集成OLED屏幕(SSD1306驱动)实时显示温湿度及人体检测状态。
硬件抽象层(HAL):封装传感器驱动(如DHT22_Read、PIR_Init)。
业务逻辑层:实现环境阈值判断与控制策略(如温湿度超标时启动风扇)。
应用层:提供用户接口(如手机APP、Web端)配置参数并查看数据。
温湿度联动控制:
cvoid Env_Control(float temp, float humi) { if (temp > 30.0) { HAL_GPIO_WritePin(FAN_GPIO_Port, FAN_Pin, GPIO_PIN_SET); // 启动风扇 } else if (temp < 25.0) { HAL_GPIO_WritePin(HEATER_GPIO_Port, HEATER_Pin, GPIO_PIN_SET); // 启动加热器 } else { FAN_OFF(); HEATER_OFF(); // 关闭所有设备 } if (humi > 70.0) { HAL_GPIO_WritePin(DEHUMIDIFIER_GPIO_Port, DEHUMIDIFIER_Pin, GPIO_PIN_SET); // 启动除湿机 } else { DEHUMIDIFIER_OFF(); }}人体感应防盗报警:
cuint8_t alarm_enabled = 1;void PIR_Callback(void) { if (alarm_enabled) { HAL_UART_Transmit(&huart1, (uint8_t*)"ALARM: Intruder detected!\r\n", 28, 100); // 可扩展:发送短信/推送通知至用户手机 }}硬件:STM32F407 + SHT3x(温湿度) +土壤湿度传感器 + 继电器模块(控制灌溉泵)。
功能:
实时监测温湿度与土壤湿度,超限时自动启动灌溉。
数据通过LoRa模块上传至云端,支持远程查看与历史曲线分析。
硬件:STM32L051 + PIR传感器 + 光敏电阻 + LED驱动电路。
功能:
白天光线充足时关闭照明,夜间检测到人体时自动开灯。
支持延时关闭(如无人移动10分钟后熄灯),节能率达60%。