当前位置:首页 > 引流 > 正文内容

单片机毕业设计论文(单片机DIY-小型PM2.5系统)

admin3年前 (2022-10-21)引流608

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

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

老规矩废话就用不着去多说,先上实物图:

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

实物图1

数据采集和接收模块

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

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

主程序

#include<reg52.h>

#include "delay.h"

#include "LCD12864.h"

#include "PM2_5.h"

#include "BMP180.h"

#include "DHT11.h"

#define uint unsigned int

#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%10);

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(pressure%1000);

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

#include<reg52.h>

#define uint unsigned int

#define uchar unsigned char

#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;

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

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

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

谢谢!

标签: 系统

扫描二维码推送至手机访问。

版权声明:本文中部分文字、图片、音频、视频来源于互联网及公开渠道,仅供学习参考,版权归原创者所有! 如侵犯到您的权益,请及时通知我们!我们将在第一时间内删除。

本文链接:http://www.73ya.com/yinliu/6023.html

分享给朋友:

“单片机毕业设计论文(单片机DIY-小型PM2.5系统)” 的相关文章

产品抖音淡季怎么运营 抖音的产品生命周期

现在很多的商家都会在抖音上销售自己的产品,而不同的产品是有着不同的作用的,很多产品更是有着季节性,那么应该怎么运营呢?今天我们就一起来看看关于产品抖音淡季怎么运营,抖音的产品生命周期的相关内容。 产品抖音淡季怎么运营 现在很多抖音直播间用这种憋单玩法,主要还是迎合抖音的算法,我们作为...

抖音小店好不好做 抖音店铺怎么做

在抖音平台上开小店,也是需要去了解店铺怎么运营的,掌握相关的技巧,才能够做的更好。今天我们就一起来看看关于抖音小店好不好做,抖音店铺怎么做的相关内容。 抖音小店好不好做  1、做好视频 因为在抖音上面的流...

抖音自己的作品怎么删除 抖音自己的作品怎样才能删除

我们在抖音上传了作品,但后续不满意想要删除应该怎么做呢?今天我们就一起来看看关于抖音自己的作品怎么删除,抖音自己的作品怎样才能删除的相关内容。 抖音自己的作品怎么删除  抖音删除自己作品的步骤: 1、用户们如果对自己的作品不满意,想要删除发布过的视频想,那么就应该先点击右下角“我”选...

抖音应该几点发 发抖音的最佳时间是几点到几点

很多人发布抖音视频莫名其妙就火了,其实很多时候都和发布的时间有关。今天我们就一起来看看关于抖音应该几点发,发抖音的最佳时间是几点到几点的相关内容。 抖音应该几点发  1.避开工作时间和上学时间 8:00-...

抖音应该怎么玩 抖音到底应该怎么玩

相信大部分人都会玩抖音,而抖音是有着许多的玩法的。我们玩抖音是不是只是刷刷视频呢?今天我们就一起来看看关于抖音应该怎么玩,抖音到底应该怎么玩的相关内容。 抖音应该怎么玩  首先我们要了解抖音的利益模式,就是双方都有利可图,抖音主要要流量,...

抖音能够追剧 抖音上怎样追剧

抖音不仅能够刷刷短视频,还能够追剧的。抖音上现在也出了许多的小短剧,很是受大众欢迎,今天我们就一起来看看关于抖音能够追剧,抖音上怎样追剧的相关内容。 抖音能够追剧  短剧并不是突然火起来的,而是伴随着短视频平台的快速发展,竖屏的、快节奏、时长更短的短剧,逐渐汇聚了大规模的追剧群体。...