目录
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 灯亮并且蜂鸣器报警。