单片机+DHT11的温湿度采集监测系统,LCD1602显示,带报警功能,C代码、原理图和Proteus仿真
设计要求
1.设计一个基于51单片机和DHT11传感器的温湿度监测系统;
2.传感器DHT11实现对环境温湿度参数的准确测量,单片机对数据进行分析和处理;
3.用户可根据需要,通过按键自主调节温湿度上下限报警阀值;
4.当环境温湿度不在设定范围内时,LED灯和蜂鸣器发出声光报警;
5.环境温湿度值和上下限报警阀值采用LCD1602液晶显示;
设计说明
Proteus7版本的仿真软件只有SHT11温湿度传感器元件,没有DHT11传感器元件。Proteus8版本经过升级更新后,元件库已添加了DHT11传感器元件。
因此,本设计采用Proteus8.6版本的仿真软件进行开发。
SHT11和DHT11传感器均能实现温湿度的测量,它们的主要区别有两点:
(1)SHT11内部核心部件为湿敏电容,成本高,精度高;DHT11内部核心部件为湿敏电阻,价格便宜,但精度低一点;
(2)两者通信方式不同。DHT11为单总线串行通信,只有数据线DATA接口;SHT11为二线制串行通信,有时钟线SCK和数据线DATA 两个接口。在编程上,两者区别较大。
在常规温湿度测量上,DHT11和SHT11均能满足使用。但从成本考虑,DHT11价格便宜,其应用更为广泛。
系统概述
本文设计了一种基于51单片机和DHT11传感器的温湿度监测系统,能够实现对当前环境温湿度数据的采集、处理、显示和报警等功能。
系统硬件主要由单片机最小系统、DHT11温湿度传感器模块、LCD1602显示模块、按键模块和声光报警模块组成,系统框架如下所示。
传感器DHT11不间断检测当前环境下的温湿度,并将数据发送到单片机,由单片机对数据进行分析和处理后,通过LCD1602实时显示温湿度值和上下限报警阀值。
按键模块用于设置温湿度上下限报警阀值。当环境温度或湿度不在上下限范围内时,系统自动报警,对应的LED指示灯点亮,蜂鸣器发声,以提醒用户采取措施。
仿真电路图
原理图
仿真分析
打开名为DHT11温湿度监测.pdsprj的仿真文件,双击单片机,在弹出的对话窗口中点击黄色小文件夹图标,加载DHT11.hex文件(位于C程序文件夹内),运行仿真,结果如下。
由图可知,LCD显示当前环境的温度T为27℃,湿度H为55%RH。LCD显示结果与DHT11传感器上的数值一致,表明温湿度数据读取正确。
DHT11传感器上3个红色小箭头用来模拟温湿度值的改变。前两个红色箭头用于数值的增减,后一个红色箭头用于切换温度和湿度。
例如,我们调整DHT11传感器,使温度上升到34℃,湿度降低至51%RH,效果如下。
按键可以设置温湿度的上下限报警阀值。点击调整键,系统进入上下限设置模式,LCD显示当前温湿度上下限值。
如图所示,系统默认温度上下限范围为:20~35℃,湿度上下限范围为:40~85%RH。
此外,温度下限值光标闪烁,点击加/减键就可进行设置;温度下限值设置完成后,点击调整键,温度上限值光标闪烁,就可进行温度上限值设置。
依次类推,当温湿度上下限值均设置完成后,再次点击调整键即可退出设置模式,回到温湿度显示模式。
如果某个温湿度阀值用户不想进行更改,点击调整键跳过即可。
例如,我们重新设置温度上下限范围为:25~38℃,湿度上下限范围为:40~65%RH,结果如下。
当系统监测到温湿度不再设定范围内时,发出声光报警,对应的LED指示灯被点亮,蜂鸣器鸣叫;当环境温湿度恢复正常后,报警停止。
例如,我们点击DHT11传感器上的红色箭头,使温度降低至24℃,低于下限值25℃,此时蓝色温度过低报警指示灯点亮,蜂鸣器鸣叫。
综上所述,仿真运行效果满足设计要求,能够实现规定的功能。
部分代码
void main()
{uchar i;LcdInit(); // 液晶功能的初始化 LcdShowInit(); // 液晶显示的初始化AlarmTL=EEPROM_Read(0x2000); // 从EEPROM的0x2000这个地址读取温度的报警下限AlarmTH=EEPROM_Read(0x2001); // 从EEPROM的0x2001这个地址读取温度的报警上限AlarmHL=EEPROM_Read(0x2002); // 从EEPROM的0x2002这个地址读取湿度的报警下限 AlarmHH=EEPROM_Read(0x2003); // 从EEPROM的0x2003这个地址读取湿度的报警上限if((AlarmTL==0)||(AlarmTL>100)) // 如果温度下限报警值读出来异常(等于0或大于100),则重新赋值AlarmTL=20;if((AlarmTH==0)||(AlarmTH>100)) // 如果温度上限报警值读出来异常(等于0或大于100),则重新赋值AlarmTH=35;if((AlarmHL==0)||(AlarmHL>100)) // 如果温度下限报警值读出来异常(等于0或大于100),则重新赋值AlarmHL=40;if((AlarmHH==0)||(AlarmHH>100)) // 如果温度上限报警值读出来异常(等于0或大于100),则重新赋值AlarmHH=85;while(1){ReadDhtData(); // 检测温湿度数据LcdGotoXY(1,2); // 定位到要显示温度的地方LcdPrintNum(temp); // 显示温度值LcdGotoXY(1,11); // 定位到要显示湿度的地方LcdPrintNum(humi); // 显示湿度值AlarmJudge(); // 判断并根据需要报警for(i=0;i<25;i++){KeyScanf(); // 按键扫描DelayMs(20); // 延时 }}
}
资料内容
(1)基于51单片机和DHT11的温湿度监测系统设计论文;
(2)Proteus8.6仿真文件;
(3)C程序;
(4)原理图;
(5)Visio流程图;
(6)参考资料;
(7)元器件清单;
资料图
重要的事情说一遍!!!
由于基于51单片机和DHT11的温湿度监测系统设计是我的原创设计,获取全套资料,
请搜索查看我的【公】(众*)“号”:交院小智
单片机+DHT11的温湿度采集监测系统,LCD1602显示,带报警功能,C代码、原理图和Proteus仿真相关推荐
- 基于STC89C52单片机的粮仓温湿度无线监测系统简易设计
任务书,以及相关资料见附件,下载查看. 任务概述, 设计一个基于单片机的粮仓温湿度无线监测系统.该系统包括:单片机.无线通信模块.温湿度传感器模块.按键模块.显示模块等. 1.基本功能 (1)本设计以 ...
- 基于51单片机的自动浇花浇水系统LCD1602显示仿真
硬件设计 基本框架 该电路的工作原理是由STC89C52单片机和ADC0832组成系统的核心部分,湿度传感器将采集到的数据直接传送到ADC0832的IN端作为输入的模拟信号.选用湿度传感器和AD转换, ...
- STM32单片机DHT11数字温湿度监测
OLED液晶接口电路图 DHT11传感器接口电路图 STM32单片机DHT11数字温湿度监测程序源代码 #include "sys.h" #define LED_RED PBout ...
- 智慧茶厂:茶叶温湿度远程监测系统
茶是中国人生活中必不可少的东西.随着技术进步与产业发展,制茶工艺也从传统手工制造迈向自动化生产,提供更高的产能和品质.茶叶生产.保存.运输都和温湿度息息相关,不同的口感与味道也影响到不同茶叶的价格.因 ...
- 基于stm32单片机室内环境温湿度光照强度检测系统Proteus仿真
资料编号:178 下面是仿真功能视频演示: 180-基于stm32单片机室内环境温湿度光照强度检测系统Proteus仿真 功能讲解: 采用stm32单片机最为控制CPU,DS1302时钟芯片,d ...
- 51单片机 DHT11+LCD12864温湿度显示 + Proteus仿真
51单片机 DHT11+LCD12864温湿度显示 + Proteus仿真 采用的接线方式是IIC接口,在Proteus里面仿真太慢了,不知道是电脑古老问题还是怎么,看图像就知道了,有多卡,感觉电脑运 ...
- 【Arduino】温湿度传感器(DHT11)控制设计 四位数码管,LCD1602,带蜂鸣器、LED灯报警,串口输入设定阈值
@[TOC]( [Arduino]温湿度传感器(DHT11)控制设计 四位数码管,LCD1602,带蜂鸣器.LED灯报警,串口输入设定阈值 ) 一.实验器材 UNO控制板:1块 共阳极四位数码管:1个 ...
- 物联网毕业设计 - 基于单片机的静脉输液流速流量监测系统
⭐️基于单片机的静脉输液流速流量监测系统⭐️ 树莓派 Raspberry Pi 3 或 stm32 FS2012液体流量传感器 LCD显示器 MQTT协议发送至百度云天工IoT平台 PC端,通过登陆网 ...
- 单片机经典外围电路(一)--LCD1602显示
单片机经典外围电路(一)----LCD1602显示(1) 学无止境,生活就像一首歌,时代是歌的旋律,个人就是时代的音符,前路漫漫,因为坚持看到希望. 一.序言 随着现代数字电路的发展,显示技术也在逐渐 ...
最新文章
- 详解linux下auto工具制作Makefile源码包(制作篇)
- df、du、fdisk、lsblk区别
- html js 做的小游戏,用js做一个小游戏平台 (一)
- powerbi和python区别_PowerBI和Python关于数据分析的对比
- ResNet最强改进版来了!ResNeSt:Split-Attention Networks
- Unity SRP自定义渲染管线 -- 2.Custom Shaders
- 谷歌最新开源的工具可以自动化查找并修复 bug!
- IDEA 中创建多级目录
- 备库由于表无主键导致延迟
- python必背入门代码-python学习必备知识汇总
- BP 神经网络算法原理
- 思科CCNP培训中OSPF协议之详细图解-IELAB
- 约翰诺依曼在1940年发明了计算机英语,冯诺依曼元胞自动机
- 前世回眸,今生结缘,滚滚红尘,谁人可依
- 接地电阻检测项目带电检测技术方案
- Skimage图像处理教程2)色彩空间变换
- Win10怎么录制高清的电脑屏幕?Win10屏幕录制工具哪个好?
- Springboot 使用设计模式- 策略模式
- python使用redis_python如何连接redis
- 百度智能小程序注册流程
热门文章
- java 调用天气预报接口_java调用天气预报接口案例
- 服务器显示post是什么意思,post请求 post请求是什么
- requests实际使用例子
- NSTextField限制输入框只能输入英文字母数字字符,不能输入中文
- matlab人体轮廓识别,人体动作识别代码,求问这是提取的什么轮廓信息
- 东南亚各国电商生态分析及选品参考
- 类人猿x64位封包协议拦截技术开发3种工具(支持安卓)
- 操作系统之虚拟存储管理 java python 实现 最优(Optimal)置换算法 先进先出(FIFO)页面置换算法 LRU(Least Recently Used)置换算法
- 在Java Web项目中建src/main/java包
- 【Ubuntu系统重启以后串口驱动丢失的问题】