毕业设计:单片机DIY-小型PM2.5系统,实际测试满足要求,赶快围观

时间:2023-03-27来源:佚名

大家好,因为最近忙着考试,最近比较忙,可能更新的文章比较少,疫情期间请大家多多注意身体,尽量减少外出,在家学习。

其实我发现在家学习只要静下心来,效率还是蛮快的,只要持之以恒,定会有所收获。

好了我们言归正传,前几天和几个小伙伴去市区公园玩,看着公园对面空气检测系统的大屏幕上各种数据不断变化,于是突发奇想,我能不能自己也用单片机做一个PM2.5测试系统呢,虽然不知道能不能成功,但想到就要做。

于是我利用好久以前的一个开发板当载体,开始自己DIY,成功了以后-我测试了一下基本能实时显示各种颗粒物的含量,又和真实数据对比了一下,准确度基板满足要求。

老规矩废话不多说,先上实物图:

原理:其实就是一块显示屏加上单片机实时控制,再加上采集和显示代码就差不多了

实物图1

毕业设计:单片机DIY-小型PM2.5系统,实际测试满足要求,赶快围观

数据采集和接收模块

毕业设计:单片机DIY-小型PM2.5系统,实际测试满足要求,赶快围观

实测测量精度和准确率还是可以的。

PM2.5检测系统参考代码如下:

主程序

include "delay.h"

include "PM2_5.h"

include "DHT11.h"

define uchar unsigned char

sbit waring=P1^3;

void main()

{

lcd_init();

Init_BMP085();

Init_PM2_5();

while(1)

{

bmp085Convert();

RH();

lcd_pos(0,0);

display_string("pm2.5:");

if(read_pm()>5)

display_num(read_pm());

else

display_num(5);

display_string("ug/m3");

display_string(" ");

lcd_pos(1,0);

display_string("T:");

display_num(temperature/10);

display_string(".");

display_num(temperature);

display_string("'C");

display_string(" ")

display_string("H:");

display_num(RHdataH);

display_string("%");

lcd_pos(2,0);

display_string("pre:");

display_num(pressure/1000);

display_string(".");

display_num(pressure00);

display_string("kpa");

lcd_pos(3,0);

display_string("smo:");

if(read_pm()>200)

{

display_string("High");

waring=0;

}

else

{

display_string("low");

display_string(" ");

waring=1;

}

display_string("Al:");

display_num(Altitude);

display_string("m");

display_string(" ");

delay_ms(200);

}

}

PM2.5

define uint unsigned int

define K_PM 820

void senddata(uchar dat);

uint read_pm();

uchar cal[7]={0};

// cal[0]:起始位 0xAA

// cal[1]:Vout(H)

// cal[2]:Vout(L)

// cal[3]:Vref(H)

// cal[4]:Vref(L)

// cal[5]:校验位

// cal[6]:结束位0xFF

uchar buf;

uchar sum;

int i=0;

float Vo;

void Init_PM2_5()

{

SCON=0x50;

PCON=0x00;

TMOD=0x20;

EA=1;

ES=1;

TL1=0xF4;

TH1=0xF4;

TR1=1;

}

uint read_pm()

{

return (uint)(K_PM*Vo);

}

void serial() interrupt 4

{

ES=0;

RI=0;

buf=SBUF;

senddata(buf);

ES=1;

}

void senddata(uchar dat)

{

if(dat==0xAA)

{

i=0;

cal[i]=dat;

}

else

{

i=i 1;

cal[i]=dat;

if(i==6)

{

sum=cal[1] cal[2] cal[3] cal[4];

if(sum==cal[5]&&cal[6]==0xFF)

{

// for(i=0;i<=6;i )

// {

// SBUF=cal[i];

// while(!TI);

// TI=0;

// }

Vo=(cal[1]*256 cal[2])/1024.0*5;

// SBUF=cal[1];

// while(!TI);

// TI=0;

//

// SBUF=cal[2];

// while(!TI);

// TI=0;

}

}

}

}

鉴于篇幅有限,只能写这么多了。

最后,如果有什么意见或者建议欢迎您留言给我,让我们共同学习一起进步,

文章不能上传附件,如果需要完整代码或设计文件,请私信我或者给我留言,看到后会第一时间回复。

谢谢!

    相关阅读

    空调小管(供液管)结霜是什么原因

    空调空调小管(供液管)结霜,常见原因如下: 1、缺冷媒 当空调中缺少冷媒时,极有可能出现空调结霜 现象。解决办法:及时查漏补漏,添加适量的制冷剂,使空调恢复运行。 2、系统...
    2022-12-12
    空调小管(供液管)结霜是什么原因

    空调铜管裸露在外面有什么影响?

    几十年前安装的空调,铜管都是裸露的,没有现在这么讲究,但制冷制热效果一样杠杠的。先抛开“空调用铜管还是铝管好 ”不说,单从使用者的角度来说,将铜管裸露在外是有影响的...
    2022-12-12
    空调铜管裸露在外面有什么影响?

    电风扇不转的四种原因,电风扇不转的处理方法

    在平时使用电风扇时,有时会遇到电风扇不转的问题,那么是什么原因引起的风扇不转,原因有很多种,最常见的电风扇不转的原因就是电容损坏,线路问题,电机故障等,下面就来看...
    2022-12-23
    电风扇不转的四种原因,电风扇不转的处理方法

    空调指示灯亮着会不会费电,一年能费多少度电

    对于空调指示灯亮着会不会费电的问题,会费电,这个不用怀疑。无论哪一种电器设备,哪怕是微小的指示灯,也会是费电的,只是费电量微乎其乎,一年消耗的电量可以忽略不计。...
    2022-12-23
    空调指示灯亮着会不会费电,一年能费多少度电

    小牛电动车怎么解锁限速,6个步骤帮你搞定解限速问题

    有关小牛电动车解限速的方法,可以破解20公里限速的,破解流程不复杂,只要6个步骤就可以搞定,小牛电动车怎么解锁限速,可以来试一试本文给出的解锁限速的方法。 小牛电动车解...
    2022-12-13
    小牛电动车怎么解锁限速,6个步骤帮你搞定解限速问题

    建筑物防雷问题:高层建筑防雷接闪器设计及安装规范

    建筑物防雷问题:高层建筑防雷接闪器设计及安装规范 高层建筑 防雷 接闪器设计及安装规范 雷电是一种强度极大、作用时间极短的瞬变过程。雷电流击中建筑物时,通常会产生电效应...
    2022-12-21
    建筑物防雷问题:高层建筑防雷接闪器设计及安装规范

    2022年格力大一匹空调移机多少钱

    格力大一匹空调移机费用 大一匹的格力空调一般是1.5匹的,2022年1.5匹和1.5匹以下的空调移机费用: 1、普通移机费用150元1台,只拆不装和单装是100元1台; 2、2楼以下无高空费,2楼-5楼...
    2022-12-12
    2022年格力大一匹空调移机多少钱

    空调开冷气时温度越低会不会越费电

    家里买了空调,在夏天用的时候较多,即空调制冷比制热的时间要多一些,那么空调开冷气时温度越低越费电吗,空调开度28度与22度时哪一个会更费电,电工天下小编带大家来了解下。...
    2022-12-23
    空调开冷气时温度越低会不会越费电

    网站栏目