基于STM32的PM2.5监测系统设计

目录

1、设计要求

2、系统功能

3、演示视频和实物

4、系统设计框图

5、软件设计流程图

6、原理图

7、主程序

8、总结


🤞大家好,这里是5132单片机毕业设计,今天给大家分享的是《基于STM32的PM2.5监测系统设计》

设备的详细功能见网盘中的文章《基于STM32的PM2.5监测系统设计》:

链接:https://pan.baidu.com/s/1uWSZX2zbZwy9sYwwnvyktQ?pwd=5132

提取码:5132

       欢迎大家定制,非诚勿扰!

1、设计要求

 本设计系统以STM32F103C8T6单片机为基本核心,主要包括粉尘传感器采集模块,PM2.5传感器 GP2Y1014AU粉尘传感器,OLED显示模块,报警模块。单片机作为控制模块,显示屏作为显示模块。设计系统通过传感器电路检测 PM2.5粉尘信息,由 AD 模数转换,经过单片机的计算,最后在液晶上面显示。

2、系统功能

1. 灰尘传感器:实现对灰尘颗粒的感应。

2.A/D 转换电路:用于完成传感器输入模拟量转换成数字量

3.供电电路:实现对整体系统的供电。

4. 单片机最小系统: AT89S52  作为微处理器,包含时钟电路,复位电路控制其他的设备。

5. 显示液晶:用于完成对系统测量值和报警值得显示。

6.按键电路:用于完成报警值参数调整的功能。7.报警电路:实现系统的报警。

3、演示视频和实物

D3-基于STM32的PM2.5监测系统设计

 

4、系统设计框图

5、软件设计流程图

 本系统采用 STM32F103C8T6作为单片机的微控制中心,软件系统的设计主要包括系统初始化模块、驱动传感器模块、AD 转换模块、PM2.5 计算 、OLED显示模块, 每个模块具有不可磨灭的作用发挥主要作用,STM32F103C8T6实现硬件设备的单片机控制通过软件检测显示PM2.5 值。

6、原理图

7、主程序

#include "stm32f10x.h"  // 有问题和需求的,可以联系VX:lwfw123456789
#include <stdio.h>
#include <string.h>
#include "sys.h"  
#include "delay.h"
#include "OLED.h"
#include "Key.h"
#include "OLED.h"
#include "Serial.h"
#include "LED.h"
#include "Buzzer.h"
//#include "AD.h"
#include "Buzzer.h"
#include "JiDianQi.h"
#include "MyRTC.h"
#include "gp2y1014au.h"
uint16_t RTC_Time1[] = {7, 0, 0};    
uint16_t RTC_Time2[] = {19, 0, 0}; 
uint16_t AD0,AD1,AD2,AD3;         
uint8_t KeyNum;      
uint16_t shi;           
u8 state=1;    
u8 state1=1;   
u8 state2=1;   
int main(void)     
{NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);   /delay_init();	   SystemInit();Key_Init();   LED_Init();     OLED_Init(); Buzzer_Init();JIDIANQI_Init();MyRTC_Init();ADCX_Init();GP2Y_Init();OLED_ShowString(1, 4, "XXXX-XX-XX");OLED_ShowString(2, 5, "XX:XX:XX");OLED_ShowString(3,1,"PM2.5:");OLED_ShowChinese(4,1,63);   //Ë®±ÃºÍ²¹¹âOLED_ShowChinese(4,2,64);OLED_ShowString(4,5,":");OLED_ShowChinese(4,4,13);   		Serial_Init();   JIDIANQI1_OFF();while (1){	MyRTC_ReadTime();OLED_ShowNum(1, 4, MyRTC_Time[0], 4);OLED_ShowNum(1, 9, MyRTC_Time[1], 2);OLED_ShowNum(1, 12, MyRTC_Time[2], 2);OLED_ShowNum(2, 5, MyRTC_Time[3], 2);OLED_ShowNum(2, 8, MyRTC_Time[4], 2);OLED_ShowNum(2, 11, MyRTC_Time[5], 2);KeyNum = Key_GetNum();              if (KeyNum == 1)    //Ò»¼ü¿ØÖƶàýÌå   PB10{delay_ms(20);if (KeyNum == 1){state++;if(state>1){state=0;}} }if(state==0){LED1_ON();             //¿ªÆôָʾµÆOLED_ShowChinese(4,8,12);shi=Get_PM25_Average_Data();printf("\r\nPM2.5=%d\r\n",  shi); 		OLED_ShowNum(3, 10, shi, 2);    //oledÏÔʾ¹âÕÕÇ¿¶ÈOLED_ShowString(3, 12, "%");if(shi>80){Buzzer_Turn();OLED_ShowChinese(4,4,12);}else{Buzzer_OFF();OLED_ShowChinese(4,4,13);}}if(state==1){LED1_OFF(); 				 Buzzer_OFF();JIDIANQI1_OFF();OLED_ShowChinese(4,8,13);}}
}

8、总结

设计了一款PM25浓度检测及报警系统,本设计系统以STM32F103C8T6单片机为基本核心,主要包括粉尘传感器采集模块,PM2.5传感器 GP2Y1014AU粉尘传感器,OLED显示模块,报警模块。把测量值显示在显示器上,当检测浓度大于预设浓度时 LED 灯亮并且蜂鸣器报警。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/874400.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Nginx 怎样处理请求的重试机制?

&#x1f345;关注博主&#x1f397;️ 带你畅游技术世界&#xff0c;不错过每一次成长机会&#xff01; 文章目录 Nginx 怎样处理请求的重试机制&#xff1f;一、为何需要重试机制&#xff1f;二、Nginx 中的重试机制原理三、Nginx 重试机制的配置参数四、Nginx 重试机制的实际…

GPT盘新增容量后如何扩容?

场景&#xff1a;一块5T的GPT盘&#xff0c;现有需求再加10T&#xff0c; 在虚拟化平台加10T盘后&#xff0c;机器不重启&#xff0c;执行命令 echo 1 > /sys/block/sdb/device/rescan刷新磁盘容量&#xff0c;可看到容量已刷出。 但执行fdisk /dev/sdb时&#xff0c;发现创…

《0基础》学习Python——第二十二讲__网络爬虫/<5>爬取豆瓣电影封面图

一、爬取豆瓣电影的图片封面 1、经过上节课我们所爬取的豆瓣电影的电影名、年份、国家、导演、主演、剧情&#xff0c;那么接下来我们将学习如何去爬取这些电影的图片&#xff0c;并将这些图片存放在文件夹中。 2、过程实现&#xff1a; 2.1、获取网页源码 首先还是和爬取电影名…

Air780EP-AT开发-HTTP应用指南

简介 关联文档和使用工具&#xff1a; AT固件获取AT指令手册 概述 4G模块支持HTTP和HTTPS协议&#xff0c; HTTP应用的基本流程如下&#xff1a; 1、激活PDP&#xff08;参考&#xff1a;http://oldask.openluat.com/article/937&#xff09;2、初始化HTTP服务3、设置HTTP会话…

服务器上使用Docker部署sonarQube,并集成到Jenkins实现自动化。

目标是要在目标服务器上使用docker工具部署好sonar环境&#xff0c;然后再集成到Jenkins中实现自动化的代码审查工作。 Docker 首先Dokcer的源大部分现在都用不了&#xff0c;于是我上网查询&#xff0c;终于找到了一个可用的镜像。 编辑/etc/docker/daemon.json文件&#x…

Linux中的时间函数

参考&#xff1a; 几种取时间的方法&#xff08;附代码&#xff09; Linux中gmtime和localtime的区别(time_t格式转换为tm格式) C 库函数 - time() mktime和localtime_r能在多线程环境下使用么&#xff1f; Linux_C环境编程&#xff1a;时间日期函数总结 细说时间测量RDT…

探索NVM:让Node.js开发如虎添翼的利器

文章目录 前言一、NVM简介&#xff1a;版本管理的瑞士军刀二、NVM能解决什么问题&#xff1f;三、如何使用NVM​&#xff1f;总结 前言 在这个日新月异的编程世界里&#xff0c;Node.js凭借其高效的非阻塞I/O操作和轻量级的事件驱动模型&#xff0c;成为了全栈开发、微服务架构…

音视频入门基础:H.264专题(16)——FFmpeg源码中,判断某文件是否为H.264裸流文件的实现

一、引言 通过FFmpeg命令可以判断出某个文件是否为AnnexB格式的H.264裸流&#xff1a; 所以FFmpeg是怎样判断出某个文件是否为AnnexB格式的H.264裸流呢&#xff1f;它内部其实是通过h264_probe函数来判断的。从文章《FFmpeg源码&#xff1a;av_probe_input_format3函数分析》中…

winfrom 文件自动生成

数据页面展示 添加定时器执行每个表数据的生成计划 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.IO; using System.Windows.Forms; using …

【STM32嵌入式系统设计与开发---拓展】——1_11_1串口通信(USART)

这里写目录标题 1、一般我们都怎么进行通信的&#xff1f;&#xff08;1&#xff09;串行通行&#xff08;Serial Communication&#xff09;&#xff08;2&#xff09;并行通信&#xff08;3&#xff09;无线网络通信&#xff08;4&#xff09;网络通信&#xff08;5&#xff…

Django [实战] 通过表单上传文件

在Django中上传文件通常涉及到以下几个步骤&#xff1a; 设置你的模型以包含一个FileField或ImageField&#xff08;如果上传的是图片&#xff09;。创建一个表单&#xff0c;该表单包含一个Form或ModelForm&#xff0c;其中包含一个FileField。在你的视图中处理上传的文件。在…

Modbus转BACnet/IP网关快速对接Modbus协议设备与BA系统

摘要 在智能建筑和工业自动化领域&#xff0c;Modbus和BACnet/IP协议的集成应用越来越普遍。BA&#xff08;Building Automation&#xff0c;楼宇自动化&#xff09;系统作为现代建筑的核心&#xff0c;需要高效地处理来自不同协议的设备数据&#xff0c;负责监控和管理建筑内…

可以免费合并pdf的软件 合并pdf文件的软件免费 合并pdf的软件免费

在数字化办公的今天&#xff0c;pdf格式因其稳定性和跨平台兼容性被广泛使用。然而&#xff0c;当我们需要将多个 pdf 文件合并为一个时&#xff0c;却往往感到力不从心。本文将为你介绍几款强大的pdf文件合并软件&#xff0c;让你轻松管理文档。 方法一、使用pdf转换器 步骤1…

easyExcel和poi的版本对应

easypoi3.0.5对应的poi版本_easypoi和poi版本对应-CSDN博客 https://github.com/alibaba/easyexcel/blob/v3.2.0/pom.xml 解决 java.lang.NoClassDefFoundError: org/apache/poi/POIXMLTypeLoader 报错-CSDN博客 参考这个文档解决的- 引入最佳版本是3.15版本 java.lang.NoClas…

微服务:网关

网关 网关,即网络的关口,当一个网络传输到另一个网络时就需要经过网关来实现 数据的路由和转发 以及 数据安全的校验 网关技术实现 SpringCloudGateWay: 基于Spring的WebFlux技术,完全支持响应式编程,吞吐能力更强 SpringCloudGateWay 依赖 <!--网关--><depe…

JAVA毕业设计152—基于Java+Springboot+vue+小程序的个人健康管理系统小程序(源代码+数据库+15000字论文)

毕设所有选题&#xff1a; https://blog.csdn.net/2303_76227485/article/details/131104075 基于JavaSpringbootvue小程序的个人健康管理系统小程序(源代码数据库15000字论文)152 一、系统介绍 本项目前后端分离带小程序(可以改为ssm版本)&#xff0c;分为用户、管理员两种…

Ubuntu下载jdk:cannot execute binary file

虚拟机上Ubuntu系统安装jdk且配置环境之后&#xff0c;java -version显示cannot execute binary file&#xff0c;多番查阅推测是由于系统和jdk版本不兼容的原因。 uname -m查看系统版本位i686&#xff0c;是32位的&#xff0c;和64位的jdk版本不兼容。因此&#xff0c;下载32位…

[css3] 如何设置边框颜色渐变

div {border: 4px solid;border-image: linear-gradient(to right, #8f41e9, #578aef) 1; }参考&#xff1a; 5种CSS实现渐变色边框&#xff08;Gradient borders方法的汇总

如何通过smtp设置使ONLYOFFICE协作空间服务器可以发送注册邀请邮件

什么是ONLYOFFICE协作空间 ONLYOFFICE协作空间&#xff0c;是Ascensio System SIA公司出品的&#xff0c;基于Web的&#xff0c;开源的&#xff0c;跨平台的&#xff0c;在线文档编辑和协作的解决方案。在线Office包含了最基本的办公三件套&#xff1a;文档编辑器、幻灯片编辑…

FPGA实验1:简单逻辑电路

一、实验目的及要求 学习Create-SOPC实验平台的使用方法&#xff1b;熟悉Quartus II 软件平台和使用 VHDL 语言设计电路的方法&#xff1b;学习简单逻辑电路的设计、仿真和硬件测试。 二、实验原理 运用Quartus II 集成环境下的VHDL文本设计方法设计半加器&#xff0c;进行波…