255-基于stm32单片机温湿度PM2.5微尘空气质量检测报警(源程序+原理图+PCB+元件清单)
·
一:功能介绍:
1、系统组成:采用stm32f103c8t6核心板+DHT11温湿度+MQ135空气质量模块+PM2.5传感器+LCD1602显示屏+蜂鸣器
2、通过DHT11传感器采集温湿度,显示到LCD1602上面;
3、通过MQ135传感器检测空气质量浓度,显示到LCD1602上面;
4、通过PM2.5传感器检测微尘颗粒浓度,显示到LCD1602上面;
5、当PM2.5大于200或者MQ135浓度大于50(阈值程序可调),蜂鸣器报警提醒;
二:实物演示视频
255-基于stm32单片机温湿度PM2.5微尘空气质量检测报警
三:程序代码展示(采用C语言编写,使用keil5编译,代码有中文注释,新手容易看懂)


DHT11_Data_TypeDef DHT11_Data;
int main(void)
{
u16 pm,temp,mq135;
delay_init(); //延时函数初始化
uart_init(9600); //串口初始化为9600
LED_Init(); //初始化与LED连接的硬件接口
Adc_Init(); //ADC初始化
DHT11_Init();
delay_ms(100);
LCD1602_Init();
while(1)
{
mq135=Get_Adc_Average(ADC_Channel_9,10)/10;
if(mq135<30) mq135=0; //传感器去除初始值
DHT11_Read_TempAndHumidity ( & DHT11_Data );//获取传感器温湿度
pm=Get_GP2Y_Average(20);//读取PM2.5值
LCD_Write_Command(0x80);//第一行的首地址
LCD_Write_Date('P');
LCD_Write_Date('M');
LCD_Write_Date('=');
LCD_Write_Date(pm%1000/100+0x30); //PM2.5
LCD_Write_Date(pm%100/10+0x30);
LCD_Write_Date(pm%10+0x30);
LCD_Write_Date(' ');
LCD_Write_Date(' ');
LCD_Write_Date('W');
LCD_Write_Date('D');
LCD_Write_Date('=');
LCD_Write_Date(DHT11_Data .temp_deci%1000/100+0x30);
LCD_Write_Date(DHT11_Data .temp_int%100/10+0x30);//显示温度
LCD_Write_Date(DHT11_Data .temp_int%10+0x30);
LCD_Write_Date('C');
LCD_Write_Command(0x80+0x40);
LCD_Write_Date('M');
LCD_Write_Date('Q');
LCD_Write_Date('=');
LCD_Write_Date(mq135%1000/100+0x30);//显示MQ135
LCD_Write_Date(mq135%100/10+0x30);
LCD_Write_Date(mq135%10+0x30);
LCD_Write_Date(' ');
LCD_Write_Date(' ');
LCD_Write_Date('S');
LCD_Write_Date('D');
LCD_Write_Date('=');
LCD_Write_Date(DHT11_Data .humi_int%100/10+0x30);//显示湿度
LCD_Write_Date(DHT11_Data .humi_int%10+0x30);
LCD_Write_Date('%');
if(pm>200||mq135>50) //PM2.5或者MQ135大于50 蜂鸣器报警
{
q=BEEP=0;
}
else
{
q=BEEP=1;
}
LED1=~LED1;//系统运行指示灯
}
}
四:原理图文件展示(采用AD(Altium Designer)打开)



五:实物图展示:

六: 资料清单展示:
更多推荐
所有评论(0)