基于51单片机的PM2.5+温湿度检测仪
硬件电路
单片机实时通过ADC0832转换芯片采集GP2Y1010AU粉尘传感器的粉尘的浓度,和读取环境的温湿度,通过单片机的数据转换处理后在液晶屏上显示空气中的质量,当测量空间中的粉尘浓度、温度、湿度大于设置值时,蜂鸣器和发光二极管发出声光报警。粉尘的浓度、温度、湿度报警值可以通过按键进行设置。
整体电路主要由51单片机最小系统,LCD1602液晶,ADC0832转换电路,蜂鸣器报警电路,DHT11温湿度传感器,按键电路,GP2Y1010AUOF粉尘传感器及发光二极管设计而成;
原理图如图:
仿真图及PCB图如下:
设计功能
- LCD1602液晶第一行显示当前测到PM2.5空气质量值,第二行显示当前温度和湿度值。
- 使用夏普的GP2Y1010AUOF粉尘传感器实时检测空气中的PM2.5值并通过1602显示出来,检测更加准确。
- 当粉尘浓度值高于设定值时、温度湿度超出上下限范围,蜂鸣器和指示灯会发出声光报警。
- PM2.5值具有等级划分功能。用3个不同颜色的指示灯指示不同范围。绿灯亮表示环境良好,黄灯亮表示轻度污染,红灯亮,表示重度污染。
- 本系统设置有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+温湿度检测仪相关推荐
- 基于51单片机的LCD1602显示温湿度
51单片机基础难点知识理解后,直接通过下面3个小项目可以更好理解51单片机.中断 定时器 串口甚至是基础的IO输入输出都有结合,再加上一些外设模块的学习(如1602显示屏,L298N电机驱动等) 项目 ...
- 基于51单片机多功能智能心率检测仪设计(毕设课设)
这是一款基于51单片机的心率检测仪,可以在LCD1602液晶显示屏上显示你的心率,而且误差非常小,代码结构简单,易于理解,非常适合大众. 而且想做毕业设计的同学,我也附上了我自己写的设计报告,可供大家 ...
- 【无标题】基于51单片机和DHT11的温湿度检测系统
基于51单片机的温湿度检测系统 摘 要:设计一款能够实时检测当前空气温度和湿度的装置.主控芯片采用STC12C5A60S2芯片,温湿度传感器采用DHT11数字温湿度传感器,显示屏幕采用OLED屏幕.整 ...
- 基于51单片机esp8266 WIFI大棚温湿度光照带co2 LCD12864显示设计
摘 要 随着社会经济的不断发展,现代农业生产离不开环境控制.本文在对国内外大棚智能控制进行深入分析的基础上,针对大棚智能化控制存在的诸多因子,将智能传感器监测和单片机控制相结合,提出了基于单片机的温 ...
- 62、基于51单片机LCD 12864WIFI大棚温湿度光照系统
毕设帮助.开题指导.技术解答(有偿)见文末. 目录 摘要 一.硬件方案 二.设计功能 三.实物图 四.原理图 五.PCB图 六.程序 部分代码 七.资料包括 摘要 科技高速发展,人们的需求也在日益增长 ...
- 基于51单片机的WiFi的温湿度智能开关设计
一.硬件方案 wifi智能开关电路主要由单片机电路.温湿度采集电路.液晶显示电路.继电器电路.wifi模块电路组成.本设计采用STC89C51单片机完成整个系统的控制流程.手机端软件设置操作界面登陆账 ...
- 基于51单片机的PM2.5和温湿度检测报警
具体实现功能 系统由STC89C52单片机+LCD1602液晶显示屏+ADC0832模块+蜂鸣器+DHT11温湿度传感器 +GP2Y1010AUOF粉尘传感器+LED+按键构成. 具体功能: 1.LC ...
- 基于51单片机的万年历(带温湿度)带闹钟功能proteus仿真原理图PCB
功能介绍: 0.本系统采用STC89C52作为单片机 1.LCD1602液晶显示当前时间和温湿度 2.按键可切换页面,显示农历,显示闹钟设置 3.当时间到达设定闹钟时间时,蜂鸣器报警 原理图: PCB ...
- 基于51单片机多功能酒精浓度检测仪系统设计(毕业课设)
本产品采用单片机+最小系统+LCD1602液晶显示模块+MQ-3模块+ADC0832模块+蜂鸣器模块+LED指示灯模块+按键模块设计而成. 单片机型号:STC89C52/51.AT89C52/51.A ...
最新文章
- 第十七届全国大学智能车竞赛STC芯片申请方法
- 新华网泸州分频道报道IT诗人
- python可以做什么工作好-会python语言能做什么工作
- 人工智能之知识图谱-学习笔记
- ServletContext接口
- Android 6.0及以上版本动态申请权限,11权限
- Python基础(循环控制语句break/continue)
- [NOI2019]序列
- 文本处理三剑客,正则表达式等
- udev介绍及两个小场景应用
- JQuery插件validate的Remote使用
- win10 pycharm小写变大写,键盘输入错乱
- 雷军投资“style”:不熟不投 找准“台风口”
- Spell 基于最长公共子序列的在线日志解析方法
- openstack创建的云主机不能访问外网,不能ping www.baidu.com
- Linux下各压缩方式测试(压缩率和使用时间)
- 55. Jump Game(跳跃游戏)
- SAP HANA是什么 和SAP Fiori 是什么
- Spire.OCR for .NET Patch
- 海洋cms新手入门安装配置教程