news 2026/3/4 2:31:12

基于STM32的温湿度、甲醛、PM2.5空气质量检测系统全套资料及功能详解

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
基于STM32的温湿度、甲醛、PM2.5空气质量检测系统全套资料及功能详解

基于STM32的温湿度、甲醛、PM2.5空气质量检测系统采集设计资料,联系赠送答辩模板等全套资料。 主要功能: 使用STM32为主控制器,可采集当前环境下的温湿度、甲醛、PM2.5值,当采集值超过预设阀值时,蜂鸣器自动报警。 采集到的温湿度、甲醛、PM2.5会显示在LCD1602显示屏上,且自动上传至上位机(手机),可以在手机查收采集到的各种参数。 可通过三个按键任意设置报警阀值。 功能在图1,具体内容图2,实物图3 注意事项: [1]由于资料包的特殊性 [2]单片机采用STM32,不改别的单片机 [3]APP不支持修改

最近在实验室折腾了个空气质量检测系统,能测温湿度、甲醛和PM2.5,超标了还会哔哔叫。这玩意儿用STM32F103C8T6当大脑,成本不过百来块,但功能倒是挺全乎。给大家看看我是怎么把传感器、显示屏和手机APP串起来的。

先说传感器这块,DHT11负责温湿度,这货虽然精度一般但胜在便宜。甲醛检测用的ZE08B电化学模块,注意这玩意儿需要预热3分钟才能稳定。PM2.5传感器选的GP2Y1010,遇到个坑——必须用PWM控制LED光源,不然数据飘得亲妈都不认识。

//DHT11数据读取核心代码 void DHT11_Read(uint8_t *temp, uint8_t *humi) { GPIO_InitTypeDef gpio; //拉低总线18ms HAL_GPIO_WritePin(DHT11_GPIO_Port, DHT11_Pin, GPIO_PIN_RESET); delay_ms(18); //切换输入模式等响应 gpio.Pin = DHT11_Pin; gpio.Mode = GPIO_MODE_INPUT; gpio.Pull = GPIO_PULLUP; HAL_GPIO_Init(DHT11_GPIO_Port, &gpio); //等待80us低电平响应 while(HAL_GPIO_ReadPin(DHT11_GPIO_Port, DHT11_Pin) == GPIO_PIN_RESET); //...后续处理40位数据 }

LCD1602显示这块有个骚操作——自己画了个甲醛的图标字符。注意这个屏的驱动电压要和STM32的3.3V电平匹配,我加了个74HC245做电平转换,不然显示会花屏。数据显示刷新率控制在1秒/次,太快了会闪得眼瞎。

报警阈值设置用了三个贴片按键,长按进入设置模式这个逻辑坑了我一晚上。关键点在于要防抖处理+状态机实现,存阈值时记得用FLASH模拟EEPROM,掉电才不会丢数据:

//按键状态机伪代码 void Key_Handler() { static uint8_t state = 0; if(HAL_GPIO_ReadPin(KEY_GPIO_Port, KEY_Pin) == GPIO_PIN_RESET) { if(state == 0) { state = 1; key_press_time = HAL_GetTick(); } else if((HAL_GetTick() - key_press_time) > 1000) { enter_setting_mode(); //长按1秒进设置 state = 2; } } else { if(state == 1) { short_press_action(); //短按处理 } state = 0; } }

手机通信这part最魔幻,本来想用蓝牙模块,结果发现某宝买的HC-05固件锁了AT指令。最后改用ESP8266走TCP直连,在APP inventor上搓了个简易接收端。注意STM32的串口中断接收缓冲区要开够大,不然数据包会被截断:

//数据上传帧格式 void Send_To_APP() { char buf[32]; sprintf(buf, "T:%.1f H:%.1f F:%.2f P:%d\r\n", temperature, humidity, formaldehyde, pm25); HAL_UART_Transmit(&huart1, (uint8_t*)buf, strlen(buf), 1000); }

实测发现甲醛传感器在高温环境下容易误报,后来加了温度补偿算法。有个邪门现象——当PM2.5传感器和蜂鸣器同时工作时,ADC采集值会漂移,最后在蜂鸣器控制线加了个74HC14施密特触发器才解决。

整套系统打样时犯了个低级错误,把STM32的OSCIN和OSCOUT接反了,导致芯片死活不启动。现在资料包里已经更新了正确的PCB文件,需要完整工程源码的哥们儿可以留言,顺手把毕设答辩模板也塞进去了,改改LOGO就能直接用。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/26 23:28:27

40、Linux 软件开发与应用全解析

Linux 软件开发与应用全解析 1. C 源代码编译基础 在编译 C 源代码时,可在 C 预处理器标志(CPPFLAGS)中包含路径选项。同时要记住,可能还需要 -L 链接器标志来配合头文件使用。 若看起来没有缺少某个库,有可能是在尝试为源代码不支持的操作系统进行编译。此时可检查 Ma…

作者头像 李华
网站建设 2026/3/2 23:59:46

Code Llama-7b-hf 代码智能助手:从零开始掌握AI编程神器

Code Llama-7b-hf 代码智能助手:从零开始掌握AI编程神器 【免费下载链接】CodeLlama-7b-hf 项目地址: https://ai.gitcode.com/hf_mirrors/ai-gitcode/CodeLlama-7b-hf 还在为重复的编码任务烦恼吗?Code Llama-7b-hf 作为Meta推出的专业代码生成…

作者头像 李华
网站建设 2026/3/3 22:20:25

第7篇 目标检测(上):R-CNN家族的“两阶段”进化史

《人工智能AI之计算机视觉:从像素到智能》专栏 模块二:核心感知(上)——2D世界的精细化理解(模型核心) 第 7 篇 朋友们好。 在上一模块,我们一起拆解了机器视觉的核心引擎——CNN(卷积神经网络)。我们知道,通过卷积、池化这些精妙的操作,CNN能把一张复杂的照片一步…

作者头像 李华
网站建设 2026/3/3 20:54:24

如何快速部署鸿蒙远程投屏工具:HOScrcpy完整使用指南

如何快速部署鸿蒙远程投屏工具:HOScrcpy完整使用指南 【免费下载链接】鸿蒙远程真机工具 该工具主要提供鸿蒙系统下基于视频流的投屏功能,帧率基本持平真机帧率,达到远程真机的效果。 项目地址: https://gitcode.com/OpenHarmonyToolkitsPl…

作者头像 李华
网站建设 2026/3/3 19:24:08

理解这几个安全漏洞,你也能做安全测试!

Hi,大家好,我是测试界的飘柔。如今安全问题显得越来越重要,一个大型的互联网站点,你如果每天查看日志,会发现有很多尝试攻击性的脚本。 如果没有,证明网站影响力还不够大。信息一体化的背后深藏着各类安全…

作者头像 李华
网站建设 2026/3/3 18:56:15

爱美剧Mac客户端:重新定义你的美剧追剧体验

爱美剧Mac客户端:重新定义你的美剧追剧体验 【免费下载链接】iMeiJu_Mac 爱美剧Mac客户端 项目地址: https://gitcode.com/gh_mirrors/im/iMeiJu_Mac 还在为追剧过程中的各种困扰而烦恼吗?资源分散、画质不佳、搜索困难,这些问题都在爱…

作者头像 李华