基于STM32单片机的温湿度报警 无线蓝牙物联网WIFI 智能家居 DIY
·
STM32温湿度报警系统概述
基于STM32的温湿度报警系统结合无线通信技术(蓝牙/WIFI),可实现环境数据实时监测、超阈值报警及远程控制功能。适用于智能家居、农业温室、仓储监控等场景,支持DIY扩展。
核心硬件组成
- 主控芯片:STM32F103C8T6(性价比高,资源丰富)
- 传感器:DHT22(高精度温湿度)或SHT30(工业级)
- 无线模块:
- 蓝牙:HC-05/HC-06(低功耗,短距离控制)
- WIFI:ESP8266(接入云平台,远程查看数据)
- 报警模块:蜂鸣器+LED指示灯,可选配GSM短信报警
软件功能设计
- 阈值设置:通过按键或手机APP设定温湿度报警范围(如温度>30℃触发)。
- 数据传输:蓝牙串口透传或WIFI MQTT协议上传至云平台(如阿里云IoT)。
- 报警逻辑:传感器数据超出阈值时,触发本地声光报警并推送手机通知。
关键代码示例(STM32 HAL库)
DHT22数据读取:
void DHT22_Read(float *temp, float *humi) {
uint8_t data[5] = {0};
HAL_GPIO_WritePin(DHT_GPIO_Port, DHT_Pin, GPIO_PIN_RESET);
HAL_Delay(18);
HAL_GPIO_WritePin(DHT_GPIO_Port, DHT_Pin, GPIO_PIN_SET);
// ... 接收并校验数据
*humi = (data[0] << 8 | data[1]) / 10.0;
*temp = (data[2] << 8 | data[3]) / 10.0;
}
ESP8266 MQTT上传:
void ESP_SendData(float temp, float humi) {
char cmd[128];
sprintf(cmd, "AT+CIPSEND=0,%d\r\n", strlen(json));
HAL_UART_Transmit(&huart1, (uint8_t*)cmd, strlen(cmd), 100);
sprintf(json, "{\"temp\":%.1f,\"humi\":%.1f}", temp, humi);
HAL_UART_Transmit(&huart1, (uint8_t*)json, strlen(json), 100);
}
扩展应用方向
- 多节点组网:搭配LoRa模块实现大面积区域监测。
- 能源优化:加入太阳能供电模块,适合户外部署。
- 语音交互:集成LD3320语音识别芯片实现声控查询。
注意事项
- 传感器需定期校准,避免数据漂移。
- WIFI模块注意配网逻辑,建议采用SmartConfig一键配网。
- 低功耗设计可选用STM32L系列芯片并优化睡眠模式。
该系统完整开源代码及电路图可在GitHub平台搜索“STM32 DHT22 Bluetooth WIFI”获取参考项目。






源码文档获取/同行可拿货,招校园代理 :文章底部获取博主联系方式!
需要成品或者定制,加我们的时候,不满意的可以定制
文章最下方名片联系我即可~
更多推荐

所有评论(0)