硬件电路

单片机实时通过ADC0832转换芯片采集GP2Y1010AU粉尘传感器的粉尘的浓度,和读取环境的温湿度,通过单片机的数据转换处理后在液晶屏上显示空气中的质量,当测量空间中的粉尘浓度、温度、湿度大于设置值时,蜂鸣器和发光二极管发出声光报警。粉尘的浓度、温度、湿度报警值可以通过按键进行设置。
        整体电路主要由51单片机最小系统,LCD1602液晶,ADC0832转换电路,蜂鸣器报警电路,DHT11温湿度传感器,按键电路,GP2Y1010AUOF粉尘传感器及发光二极管设计而成;

原理图如图:

仿真图及PCB图如下:

设计功能

  1. LCD1602液晶第一行显示当前测到PM2.5空气质量值,第二行显示当前温度和湿度值。
  2. 使用夏普的GP2Y1010AUOF粉尘传感器实时检测空气中的PM2.5值并通过1602显示出来,检测更加准确。
  3. 当粉尘浓度值高于设定值时、温度湿度超出上下限范围,蜂鸣器和指示灯会发出声光报警。
  4. PM2.5值具有等级划分功能。用3个不同颜色的指示灯指示不同范围。绿灯亮表示环境良好,黄灯亮表示轻度污染,红灯亮,表示重度污染。
  5. 本系统设置有4个按键,除1个为复位按键外,其他三个按键用来设定浓度报警值的,分别为减键、加键、设置键,设定的参数具有掉电保存,保存在STC单片机的内部,上电无需重新设置。

软件设计

主程序源码

/************************************************
** 函数名称 : void main(void)
** 函数功能 : 主函数
** 输    入 : 无
** 输    出 : 无
** 说    明 :
************************************************/
void main(void)
{double PM,pm1,pm2;int PMVAL=0,HPM=200,PM_count=0,pm1_count=0;uchar T1_data=0,R1_data=0,T2_data=0,R2_data=0;//温度、湿度变量uchar shezhi_flag=1,Mode_flag=1,n=1;//设置变量uchar bueezr_flag=0,count=0,buzzer_time=9;//蜂鸣器报警变量uint Mode_count=0; uchar disp[16]  ={"PM2.5:0000ug/m3 "};uchar disp1[16]= {"T :00C    RH:00%"}; uchar Tx_Buf[15];InitUART();            //初始化串口                                      LCD_Init();WriteChar(1,0,16,disp); //在第一行显示‘内容’WriteChar(2,0,16,disp1); //在第二行显示‘内容’while(1){T1_data=Read_TRH(0,0);//温度disp1[3]=T1_data/10+0x30;//十位disp1[4]=T1_data%10+0x30;//个位R1_data=Read_TRH(1,0);//湿度disp1[13]=R1_data/10+0x30;//十位disp1[14]=R1_data%10+0x30;//个位pm1+=read_data(1);if(++PM_count>=20){PM_count=0;pm1=pm1/20;pm2+=pm1;pm1=0;if(++pm1_count>=5){pm1_count=0;PM=pm2/5;PM=PM*50/255;PM-=4;PM/=5;PM*=1000;PMVAL=PM;PMVAL+=235;    PMVAL=PMVAL/9;if(PMVAL>=9999)PMVAL=9999;WriteCOMDATA(0x86,0);if(PMVAL<0)//PMVAL=0;{WriteCOMDATA(0+0x30,1);PMVAL=abs(PMVAL);}else WriteCOMDATA(PMVAL/1000+0x30,1);WriteCOMDATA(PMVAL/100%10+0x30,1);WriteCOMDATA(PMVAL/10%10+0x30,1);WriteCOMDATA(PMVAL%10+0x30,1);PM=pm1=pm2=0;}}/*调用报警函数,温湿度是否在设定范围内*///温度值与报警值比较if(T1_data<T1L){bueezr_flag=1;//报警标志位置1}else if(T1_data>T1H){bueezr_flag=1;//报警标志位置1} //湿度值与报警值比较if(R1_data<R1L){bueezr_flag=1;//报警标志位置1}else if(R1_data>R1H){bueezr_flag=1;//报警标志位置1}//PM值与报警值比较if(PMVAL>HPM){    bueezr_flag=1;} if(T1_data>T1L&&T1_data<T1H  && R1_data>R1L&&R1_data<R1H  &&  PMVAL<HPM) {bueezr_flag=0;BUZZER=1;}/*******蜂鸣器报警********/count++;if(count>buzzer_time*10)count=buzzer_time+1;if(count%buzzer_time==0 && bueezr_flag){BUZZER=~BUZZER;//蜂鸣器取反  发出声音提示}/*******Mode键设置报警参数********/ if(Mode==0 && Mode_flag){     WriteCOMDATA(0x0F,0);//LCD显示光标Delay(100);if(Mode==0){BUZZER=1;bueezr_flag=0;Mode_flag=0;shezhi_flag=1;n=1;while(1)          {                                                    key();if(Mode_count>6){Mode_count=0;shezhi_flag=0;//当下限值大于上限值时,蜂鸣器鸣叫1S提示,参数设置有误if(T1L>T1H || R1L>R1H){BUZZER=0;Delay(1000);BUZZER=1;}//否则退出设置页面,返回主页面else {        WriteCOMDATA(0x0C,0);//关闭LCD光标Delay(10);n=0;break;                        }}else Mode_count=0; shezhi_flag++;if(shezhi_flag>5)shezhi_flag=1;if(shezhi_flag==1 || shezhi_flag==5)n=1;pm1+=read_data(1);if(++PM_count>=20){PM_count=0;pm1=pm1/20;pm2+=pm1;pm1=0;if(++pm1_count>=15){pm1_count=0;PM=pm2/15;PM=PM*50/255;PM-=4;PM/=5;PM*=1000;PMVAL=PM;PMVAL-=480;    PMVAL=PMVAL/3;if(PMVAL>=9999)PMVAL=9999;PM=pm1=pm2=0;}}        }}    }}        /********LCD1602显示********/                        //WriteChar(1,0,16,disp); //在第一行显示‘内容’WriteChar(2,0,16,disp1); //在第二行显示‘内容’}
}

资料链接:https://pan.baidu.com/s/14RIZnbpPCpjv4huWUyPMaw?pwd=6zbd 
提取码:6zbd

基于51单片机的PM2.5+温湿度检测仪相关推荐

  1. 基于51单片机的LCD1602显示温湿度

    51单片机基础难点知识理解后,直接通过下面3个小项目可以更好理解51单片机.中断 定时器 串口甚至是基础的IO输入输出都有结合,再加上一些外设模块的学习(如1602显示屏,L298N电机驱动等) 项目 ...

  2. 基于51单片机多功能智能心率检测仪设计(毕设课设)

    这是一款基于51单片机的心率检测仪,可以在LCD1602液晶显示屏上显示你的心率,而且误差非常小,代码结构简单,易于理解,非常适合大众. 而且想做毕业设计的同学,我也附上了我自己写的设计报告,可供大家 ...

  3. 【无标题】基于51单片机和DHT11的温湿度检测系统

    基于51单片机的温湿度检测系统 摘 要:设计一款能够实时检测当前空气温度和湿度的装置.主控芯片采用STC12C5A60S2芯片,温湿度传感器采用DHT11数字温湿度传感器,显示屏幕采用OLED屏幕.整 ...

  4. 基于51单片机esp8266 WIFI大棚温湿度光照带co2 LCD12864显示设计

    摘  要 随着社会经济的不断发展,现代农业生产离不开环境控制.本文在对国内外大棚智能控制进行深入分析的基础上,针对大棚智能化控制存在的诸多因子,将智能传感器监测和单片机控制相结合,提出了基于单片机的温 ...

  5. 62、基于51单片机LCD 12864WIFI大棚温湿度光照系统

    毕设帮助.开题指导.技术解答(有偿)见文末. 目录 摘要 一.硬件方案 二.设计功能 三.实物图 四.原理图 五.PCB图 六.程序 部分代码 七.资料包括 摘要 科技高速发展,人们的需求也在日益增长 ...

  6. 基于51单片机的WiFi的温湿度智能开关设计

    一.硬件方案 wifi智能开关电路主要由单片机电路.温湿度采集电路.液晶显示电路.继电器电路.wifi模块电路组成.本设计采用STC89C51单片机完成整个系统的控制流程.手机端软件设置操作界面登陆账 ...

  7. 基于51单片机的PM2.5和温湿度检测报警

    具体实现功能 系统由STC89C52单片机+LCD1602液晶显示屏+ADC0832模块+蜂鸣器+DHT11温湿度传感器 +GP2Y1010AUOF粉尘传感器+LED+按键构成. 具体功能: 1.LC ...

  8. 基于51单片机的万年历(带温湿度)带闹钟功能proteus仿真原理图PCB

    功能介绍: 0.本系统采用STC89C52作为单片机 1.LCD1602液晶显示当前时间和温湿度 2.按键可切换页面,显示农历,显示闹钟设置 3.当时间到达设定闹钟时间时,蜂鸣器报警 原理图: PCB ...

  9. 基于51单片机多功能酒精浓度检测仪系统设计(毕业课设)

    本产品采用单片机+最小系统+LCD1602液晶显示模块+MQ-3模块+ADC0832模块+蜂鸣器模块+LED指示灯模块+按键模块设计而成. 单片机型号:STC89C52/51.AT89C52/51.A ...

最新文章

  1. 第十七届全国大学智能车竞赛STC芯片申请方法
  2. 新华网泸州分频道报道IT诗人
  3. python可以做什么工作好-会python语言能做什么工作
  4. 人工智能之知识图谱-学习笔记
  5. ServletContext接口
  6. Android 6.0及以上版本动态申请权限,11权限
  7. Python基础(循环控制语句break/continue)
  8. [NOI2019]序列
  9. 文本处理三剑客,正则表达式等
  10. udev介绍及两个小场景应用
  11. JQuery插件validate的Remote使用
  12. win10 pycharm小写变大写,键盘输入错乱
  13. 雷军投资“style”:不熟不投 找准“台风口”
  14. Spell 基于最长公共子序列的在线日志解析方法
  15. openstack创建的云主机不能访问外网,不能ping www.baidu.com
  16. Linux下各压缩方式测试(压缩率和使用时间)
  17. 55. Jump Game(跳跃游戏)
  18. SAP HANA是什么 和SAP Fiori 是什么
  19. Spire.OCR for .NET Patch
  20. 海洋cms新手入门安装配置教程

热门文章

  1. 驱动程序无法使用安全套接字层(SSL)加密与 SQL Server 建立安全连接
  2. linux读取一行数据命令,Shell脚本一次读取文件中一行的2种写法
  3. 02.openssl编程——简介
  4. UML 状态图 statechart diagram
  5. 2020年焊工(技师)答案解析及焊工(技师)复审考试
  6. php 单笔转账到支付宝
  7. ASP.NET 网站开发:母版页
  8. 黑客们的故事连载十二 “蠕虫来袭”:莫里斯
  9. 模拟蚂蚁森林小球收集能量方法
  10. 光伏逆变器 设计方案资料 程序源代码 设计说明