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

【单片机毕业设计选题24099】-室内空气质量检测及净化系统

系统功能:

系统上电后OLED显示“欢迎使用请稍后”两秒后进入正常界面显示,

第一行显示温湿度和MQ2值

第二行显示采集到的甲醛值

第三行显示采集到的PM2.5值

第四行显示设定的PM2.5值

短按B4按键增加PM2.5设定阈值

短按B5按键减小PM2.5设定阈值

如果PM2.5采集值大于设定值则开启风扇

蓝牙连接后,手机可收到系统上报的信息。

主要功能模块原理图:

电源时钟烧录接口:

单片机和按键输入电路:

传感器采集电路:

继电器输出电路:

资料获取地址

系统主要功能模块代码

初始化代码:

  /* USER CODE BEGIN 1 *//* USER CODE END 1 *//* MCU Configuration--------------------------------------------------------*//* Reset of all peripherals, Initializes the Flash interface and the Systick. */HAL_Init();/* USER CODE BEGIN Init */InitVar();/* USER CODE END Init *//* Configure the system clock */SystemClock_Config();/* USER CODE BEGIN SysInit *//* USER CODE END SysInit *//* Initialize all configured peripherals */MX_GPIO_Init();MX_USART1_UART_Init();MX_USART2_UART_Init();MX_USART3_UART_Init();MX_ADC1_Init();/* USER CODE BEGIN 2 *///uart2打开接收中断HAL_UART_Receive_IT(&huart2, (uint8_t*)&uart2RecBuff, 1);//uart3打开接收中断HAL_UART_Receive_IT(&huart3, (uint8_t*)&uart3RecBuff, 1);InitOled();InitOledDisp();ResetDHT11();/* USER CODE END 2 */

系统控制代码;
 

//系统信息更新void SystemControl(void){static uint8_t updateCnt = 0;updateCnt++;   if(updateCnt>=SYSTEM_UPDATE_INTER){updateCnt = 0;if(DHT11ReadData()==0)  //DHT11温湿度读取OK{;}UpdateBleData();       }ReadSensorVal();}

系统显示:

//处理OLED显示内容void SystemDisplay(void){char textBuf[20];//第一行显示温湿度和烟雾浓度值sprintf(textBuf,"T%2d H%3d M%4d", DHT11_Data.temp_int, DHT11_Data.humi_int, getMQ2Val);OledShowString(0, 0, (uint8_t*)textBuf, OLED_FONT_8X16);    //第二行显示获取到的甲醛浓度值sprintf(textBuf,"GetCH2O:%3d", getCH2OVal);OledShowString(0, 2, (uint8_t*)textBuf, OLED_FONT_8X16);//第三行显示获取到的PM2.5值sprintf(textBuf,"GetPM25:%3d", getPM25Val);OledShowString(0, 4, (uint8_t*)textBuf, OLED_FONT_8X16);//第四行显示设定的PM2.5值sprintf(textBuf,"SetPM25:%3d", setPM25Val);OledShowString(0, 6, (uint8_t*)textBuf, OLED_FONT_8X16); }

此设计提供的资料包含原理图PCB(包含PDF,AD,立创EDA三个版本),源代码,系统框图,主程序流程图,物料清单(包含使用到的器件手册),功能操作说明等。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 学习笔记第十七天
  • 15.75.【C语言】表达式求值
  • Dubbo源码深度解析(中)
  • yum 方式下载安装 java 1.8
  • Android SurfaceFlinger——渲染开始帧(四十三)
  • MySQL基础练习题22-第二高的薪水
  • C#:通用方法总结—第15集
  • AGI思考探究的意义、价值与乐趣Ⅳ
  • 36k Star的开源大模型应用开发平台,太强了!
  • cdlinux虚拟机iso文件
  • Leetcode梦开始的地方--两数相加
  • 聊聊跨境电商平台与固定IP的那些事
  • ECMAScript 12 (ES12, ES2021) 新特性
  • C:关于static 和 extern 关键字的介绍-学习笔记
  • electron-updater实现electron全量更新和增量更新——渲染进程UI部分
  • 自己简单写的 事件订阅机制
  • 【跃迁之路】【477天】刻意练习系列236(2018.05.28)
  • Git同步原始仓库到Fork仓库中
  • idea + plantuml 画流程图
  • JavaScript类型识别
  • nfs客户端进程变D,延伸linux的lock
  • Sass 快速入门教程
  • Transformer-XL: Unleashing the Potential of Attention Models
  • vue和cordova项目整合打包,并实现vue调用android的相机的demo
  • 基于Mobx的多页面小程序的全局共享状态管理实践
  • 三分钟教你同步 Visual Studio Code 设置
  • 使用 QuickBI 搭建酷炫可视化分析
  • 使用putty远程连接linux
  • -- 数据结构 顺序表 --Java
  • 新版博客前端前瞻
  • Spark2.4.0源码分析之WorldCount 默认shuffling并行度为200(九) ...
  • 直播平台建设千万不要忘记流媒体服务器的存在 ...
  • ​软考-高级-系统架构设计师教程(清华第2版)【第15章 面向服务架构设计理论与实践(P527~554)-思维导图】​
  • #Linux杂记--将Python3的源码编译为.so文件方法与Linux环境下的交叉编译方法
  • #QT(TCP网络编程-服务端)
  • (C++二叉树05) 合并二叉树 二叉搜索树中的搜索 验证二叉搜索树
  • (k8s)Kubernetes 从0到1容器编排之旅
  • (pojstep1.1.1)poj 1298(直叙式模拟)
  • (solr系列:一)使用tomcat部署solr服务
  • (苍穹外卖)day03菜品管理
  • (附源码)springboot宠物医疗服务网站 毕业设计688413
  • (附源码)ssm失物招领系统 毕业设计 182317
  • (黑马出品_高级篇_01)SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式
  • (六)Hibernate的二级缓存
  • (南京观海微电子)——COF介绍
  • (转)iOS字体
  • ..回顾17,展望18
  • ./configure,make,make install的作用(转)
  • .NET 2.0中新增的一些TryGet,TryParse等方法
  • .Net 垃圾回收机制原理(二)
  • .net(C#)中String.Format如何使用
  • .w文件怎么转成html文件,使用pandoc进行Word与Markdown文件转化
  • @ModelAttribute注解使用
  • @Slf4j idea标红Cannot resolve symbol ‘log‘
  • [ vulhub漏洞复现篇 ] JBOSS AS 4.x以下反序列化远程代码执行漏洞CVE-2017-7504