当前位置: 首页 > article >正文

基于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秒/次太快了会闪得眼瞎。基于STM32的温湿度、甲醛、PM2.5空气质量检测系统采集设计资料联系赠送答辩模板等全套资料。 主要功能: 使用STM32为主控制器可采集当前环境下的温湿度、甲醛、PM2.5值当采集值超过预设阀值时蜂鸣器自动报警。 采集到的温湿度、甲醛、PM2.5会显示在LCD1602显示屏上且自动上传至上位机手机可以在手机查收采集到的各种参数。 可通过三个按键任意设置报警阀值。 功能在图1具体内容图2实物图3 注意事项: [1]由于资料包的特殊性 [2]单片机采用STM32不改别的单片机 [3]APP不支持修改报警阈值设置用了三个贴片按键长按进入设置模式这个逻辑坑了我一晚上。关键点在于要防抖处理状态机实现存阈值时记得用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就能直接用。

相关文章:

基于STM32的空气质量检测系统:实时显示温湿度、甲醛及PM2.5,超限报警并手机查看

基于STM32的温湿度、甲醛、PM2.5空气质量检测系统采集设计资料,联系赠送答辩模板等全套资料。 主要功能: 使用STM32为主控制器,可采集当前环境下的温湿度、甲醛、PM2.5值,当采集值超过预设阀值时,蜂鸣器自动报警。 采集到的温湿度…...

PowerDMIS测头校准

一、标准球定义 选择“设备”中的“标准球”: 标准球定义如下:当前标准球:是一个可以下拉的菜单,包含了当前所有定义的标准球名称;这个下拉框是可以选择被定义过的标准球,也允许通过编辑来修改;…...

Linux CFS 的 wakeup_affine:唤醒亲和性的判断与优化

一、简介在多核处理器架构日益普及的今天,Linux内核的调度子系统面临着前所未有的挑战:如何在保证公平性的同时,最大化缓存利用率并最小化任务迁移开销?唤醒亲和性(wakeup affinity)机制正是CFS&#xff08…...

Notepad正则表达式实战:从日志清洗到代码重构的高效技巧

1. 正则表达式入门:从零开始理解文本匹配魔法 第一次接触正则表达式时,我也被那些奇怪的符号组合搞得一头雾水。直到有次需要处理上千行的服务器日志,手动操作差点让我崩溃,这才硬着头皮学起了正则。现在回想起来,正则…...

从HAL库到LL库:STM32CubeMX工程配置详解与切换指南(附性能对比)

从HAL库到LL库:STM32CubeMX工程配置详解与切换指南(附性能对比) 在嵌入式开发领域,效率与性能始终是开发者追求的核心目标。对于使用STM32系列MCU的工程师而言,STM32CubeMX作为官方提供的图形化配置工具,已…...

手把手教你用Eclipse搭建泰凌微TLSR8208开发环境(附SDK下载与避坑指南)

从零构建TLSR8208开发环境:Eclipse配置全攻略与实战避坑指南 当一块崭新的泰凌微TLSR8208蓝牙芯片放在桌上时,大多数嵌入式工程师的第一反应不是兴奋,而是隐隐的焦虑——如何快速搭建起可用的开发环境?本文将彻底解决这个痛点&…...

如何有效选择回归测试用例集

本文讨论一下在回归测试活动中,如何选择测试用例集。 已知前篇中:回归测试用例集包括基本测试用例集(原始用例)迭代新增测试用例集(修复故障引入的用例和新增功能引入的用例集)。 如:假设开发…...

Playwright与持续集成(CI)系统的集成策略

将Playwright与持续集成(Continuous Integration, CI)系统集成是确保Web应用程序质量的关键步骤之一。通过在CI管道中运行自动化测试,可以尽早发现并修复缺陷,从而提高软件产品的质量和发布周期的效率。以下是将Playwright集成到C…...

Snap.Hutao:为原神玩家量身打造的开源桌面工具箱

Snap.Hutao:为原神玩家量身打造的开源桌面工具箱 【免费下载链接】Snap.Hutao 实用的开源多功能原神工具箱 🧰 / Multifunctional Open-Source Genshin Impact Toolkit 🧰 项目地址: https://gitcode.com/GitHub_Trending/sn/Snap.Hutao …...

象棋AI连线工具:VinXiangQi让深度学习为你下棋

象棋AI连线工具:VinXiangQi让深度学习为你下棋 【免费下载链接】VinXiangQi Xiangqi syncing tool based on Yolov5 / 基于Yolov5的中国象棋连线工具 项目地址: https://gitcode.com/gh_mirrors/vi/VinXiangQi 想在象棋对弈中获得职业级AI辅助吗?…...

鸿蒙游戏如何避免“巨型页面文件”?

子玥酱 (掘金 / 知乎 / CSDN / 简书 同名) 大家好,我是 子玥酱,一名长期深耕在一线的前端程序媛 👩‍💻。曾就职于多家知名互联网大厂,目前在某国企负责前端软件研发相关工作,主要聚…...

保姆级教程:手把手教你用Visual Studio 2022编译Fluent与EDEM 2024耦合器(附资源获取)

从零到精通:Visual Studio 2022编译Fluent-EDEM耦合器全流程实战指南 当颗粒动力学遇上计算流体力学,Fluent与EDEM的耦合仿真为多相流研究打开了新世界。但对于刚接触这一领域的工程师和学生来说,编译耦合器往往是横亘在科研路上的第一道门槛…...

Seedance 2.0全面开放API服务

4月14日,字节跳动旗下的火山引擎正式向企业及个人开发者开放了Seedance 2.0系列API服务,这是其视频生成模型迈向全面商业化的关键一步。该模型定位为全球性能领先(SOTA)的多模态视频生成模型,此次开放不仅意味着将顶尖…...

B站会员购自动化抢票工具:终极指南与完整使用教程

B站会员购自动化抢票工具:终极指南与完整使用教程 【免费下载链接】biliTickerBuy b站会员购购票辅助工具 项目地址: https://gitcode.com/GitHub_Trending/bi/biliTickerBuy 🚀 你是否厌倦了在B站会员购抢票时总是慢人一步?biliTicke…...

QMC音频解码器:一键解锁加密音乐,实现跨平台播放自由

QMC音频解码器:一键解锁加密音乐,实现跨平台播放自由 【免费下载链接】qmc-decoder Fastest & best convert qmc 2 mp3 | flac tools 项目地址: https://gitcode.com/gh_mirrors/qm/qmc-decoder 还在为QQ音乐下载的加密音频无法在其他设备上播…...

避坑指南:Unity3D离线数字地球开发中的资源获取与优化技巧

Unity3D离线数字地球开发实战:资源获取与性能优化全攻略 在三维可视化领域,数字地球一直是令人着迷的技术挑战。当项目要求从在线环境转向离线部署时,开发者往往面临资源获取和性能优化的双重考验。我曾带领团队完成过三个离线数字地球项目&a…...

网卡高级设置优化指南:提升网络性能与稳定性

1. 网卡高级设置入门:为什么需要手动优化? 很多朋友可能遇到过这样的情况:明明家里装了千兆宽带,下载速度却总是不稳定;玩在线游戏时突然卡顿,明明网络信号满格;或者局域网传文件时速度像蜗牛爬…...

SeuratWrappers终极指南:3步解锁单细胞分析扩展工具集

SeuratWrappers终极指南:3步解锁单细胞分析扩展工具集 【免费下载链接】seurat-wrappers Community-provided extensions to Seurat 项目地址: https://gitcode.com/gh_mirrors/se/seurat-wrappers 你是否曾在使用Seurat进行单细胞数据分析时,渴望…...

别再手动改路径了!用Python脚本一键清洗你的Ultralytics YAML数据集配置文件

别再手动改路径了!用Python脚本一键清洗你的Ultralytics YAML数据集配置文件 在计算机视觉项目的日常开发中,数据集路径配置问题堪称"经典"的绊脚石。特别是当项目需要在Windows开发环境和Linux服务器之间频繁切换时,路径格式不一致…...

Python 类型提示:从基础到高级

Python 类型提示:从基础到高级 核心结论 类型提示:Python 3.5 引入的特性,用于静态类型检查基本类型:int, float, str, bool, list, dict 等内置类型高级类型:Union, Optional, List, Dict, Tuple, TypeVar, Protoco…...

终极Dell G15散热控制指南:从新手到专家的完整解决方案

终极Dell G15散热控制指南:从新手到专家的完整解决方案 【免费下载链接】tcc-g15 Thermal Control Center for Dell G15 - open source alternative to AWCC 项目地址: https://gitcode.com/gh_mirrors/tc/tcc-g15 还在为Dell G15游戏本的过热问题而烦恼吗&a…...

告别代码:QGIS 3.22可视化分割遥感影像,5步搞定YOLO训练数据

QGIS 3.22可视化分割遥感影像:零代码生成YOLO训练数据集实战指南 在计算机视觉项目中,高质量的数据预处理往往比模型架构更影响最终效果。传统Python脚本裁剪方式需要处理坐标系转换、像素对齐等复杂问题,而QGIS的可视化网格分割功能让这一切…...

GLM-4.1V-9B-Base创意无限:基于MATLAB算法仿真的AI艺术生成联动

GLM-4.1V-9B-Base创意无限:基于MATLAB算法仿真的AI艺术生成联动 1. 科学与艺术的奇妙碰撞 当严谨的数学计算遇上天马行空的AI想象力,会擦出怎样的火花?我们尝试将MATLAB生成的科学可视化图像输入GLM-4.1V-9B-Base模型,让AI为这些…...

若依(RuoYi)框架安全自查清单:开发者必须避开的5个高危配置与漏洞

若依(RuoYi)框架安全加固实战指南:5个关键防御策略与深度修复方案 若依框架作为国内广泛使用的开源快速开发平台,其安全性直接影响着成千上万企业系统的稳定运行。去年某金融机构因若依默认配置漏洞导致百万用户数据泄露的事件,再次提醒我们&…...

乙巳马年·皇城大门春联生成终端W数据持久化方案:C语言文件读写操作实例

乙巳马年皇城大门春联生成终端W数据持久化方案:C语言文件读写操作实例 最近在捣鼓一个挺有意思的小项目,一个运行在终端里的春联生成器。生成效果还不错,但每次运行完,那些有趣的春联文本就没了,下次想看看之前都生成…...

Ubuntu 22.04 下 Neo4j 5.3.0 安装与配置全攻略(含 Java 17 环境搭建)

Ubuntu 22.04 下 Neo4j 5.3.0 与 Java 17 全栈部署指南 当图数据库遇上现代开发需求,Neo4j 凭借其独特的属性图模型成为处理复杂关系数据的首选。本文将带您完成从 Java 环境搭建到 Neo4j 生产级部署的完整旅程,特别针对 Ubuntu 22.04 系统优化配置方案…...

解决Python卸载报错No Python 3.9 installation was detected的实用指南

1. 遇到"No Python 3.9 installation was detected"报错怎么办? 最近在帮同事清理开发环境时,遇到了一个典型问题:卸载Python 3.9时系统提示"No Python 3.9 installation was detected"。这个报错看似简单,但…...

AI教材写作新玩法:低查重秘诀,轻松搞定专业教材!

AI写作工具助力教材编写 教材的初稿终于完成,但接下来的修改和优化过程真是煎熬!在认真审阅全文时,我得仔细找出逻辑上的错误和知识点的偏差,这需要耗费我大量的时间;就算调整一个章节的结构,也会影响到后…...

所有的天气状态

这个问题其实没有一个**全球统一“固定数量”**的天气状态标准,不同气象机构(比如中国气象局、WMO、METAR航空天气)分类都不一样。 但在嵌入式/APP开发里,一般会用一个**“工程上够用 覆盖常见情况”**的分类,大概 2…...

从iCaRL到现实应用:拆解增量学习如何让AI模型持续进化

1. 增量学习:让AI像人类一样持续成长 第一次听说"增量学习"这个概念时,我正被一个推荐系统项目折磨得焦头烂额。每当新增商品类别时,模型就会像得了健忘症一样,把之前学到的用户偏好忘得一干二净。这让我意识到&#xf…...