基于arduino的温湿度监测系统的设计与实现

您所在的位置:网站首页 实时温度监测 基于arduino的温湿度监测系统的设计与实现

基于arduino的温湿度监测系统的设计与实现

2024-06-20 06:30| 来源: 网络整理| 查看: 265

以arduino开发板为控制器平台,采用dth11传感器采集温湿度数据,液晶显示屏显示温湿度数据,并对超出规定范围的数据用蜂鸣器报警提示,并实现与手机的基本交互。

一、需求分析

a.  温湿度的实时检测和打印显示。每间隔一定时间,传感器周围空间的温湿度进行侦测,并将温湿度在液晶屏上打印显示出来。

b.  当温度和湿度超过预设范围时,蜂鸣器发出警报。程序下载前,会在程序中设置一组温湿度范围。当温度超出正常范围时,蜂鸣器发出蜂鸣;当湿度超出正常范围时,LED灯开始闪烁。

c.  在手机上同时打印输出当前温湿度。通过蓝牙HC-05模块将温湿度发送到蓝牙调试器应用上,实现温湿度在个人终端上的实时打印输出。

二、系统的工作原理

此温湿度监测系统主要涉及对温湿度进行检测、在液晶屏上打印温湿度、温湿度异常时进行报警提示和在个人终端上实时打印输出温湿度。

硬件方面,共有6个模块,分别是Arduino uno主控模块、DHT11传感器模块、LCD1602显示模块、无源蜂鸣器报警模块、LED灯模块和蓝牙HC-05模块。

传感器将此时的温湿度检测出来。为了获得准确准时的温湿度数据,必须每间隔一定时间便进行一次检测。

检测的温湿度数据由LCD1602显示模块进行打印输出。最上面一行进行湿度的打印输出,最下面一行进行温度的打印输出。

在下载程序之前,便已在程序中设置好了一个温度范围。当温度不在该范围时,蜂鸣器发出报警声提醒人员,及时启动制冷机器,将温度降低到合适程度。

在下载程序之前,便已在程序中设置好了一个湿度范围。当湿度在该范围时,LED灯保持常灭;当湿度不在该范围时,LED灯开始闪烁,并且湿度超出范围越多,LED灯闪烁得越快。它可以更直观地反映出空气中湿度的大小。

蓝牙HC-05模块实现了将传感器监测到的数据发送至蓝牙调试器应用,从而实现温湿度数据在手机端的同步实时显示,以便用户随时可以查看周边环境当前的温湿度。

三、系统总体设计 a.  系统总体设计框架

 b.  系统总电路图

 c.  元器件清单表

元器件

数量

Arduino uno主板

1块

DHT11温湿度传感器

1块

LCD1602液晶显示屏

1块

蓝牙HC-05

1块

无源蜂鸣器

1块

发光二极管

1个

200欧姆电阻

1个

面包板

1个

杜邦线(公对母、公对公)

若干条

USB数据线

1条

四、源程序 #include #include #include DHT dht(2,DHT11);//实例化一个对象dht,定义接口2为DHT11的数据接口 SoftwareSerial BT(10,9);//设置接口 LiquidCrystal lcd(12,11,6,5,4,3);//设置接口 #define buzzer 7 #define led 8 void setup() { // put your setup code here, to run once: Serial.begin(9600);//设置以每秒比特数(波特)为单位的串行数据传输的数据速率 BT.begin(9600);//初始化蓝牙 pinMode(buzzer,OUTPUT); pinMode(led,OUTPUT); dht.begin();//初始化DHT11 Serial.println("DHT11准备就绪"); lcd.begin(16,2);//初始化LCD Serial.println("蓝牙准备就绪"); BT.println("蓝牙就绪"); delay(1000);//延时1s } void loop() { // put your main code here, to run repeatedly: float h = dht.readHumidity();//定义浮点型变量h,记录湿度 float t = dht.readTemperature();//定义浮点型变量t,记录温度 //蓝牙与手机通信 if(Serial.available()) {//串口->手机端 char x = Serial.read(); BT.print(x); Serial.print(x); } if(BT.available()) {//手机端->串口 char p = BT.read(); Serial.print(p); } //在串口监视器显示温湿度数据 Serial.print("湿度是:"); Serial.print(h); Serial.println("%"); Serial.print("温度是:"); Serial.print(t); Serial.println("°c"); Serial.println(" "); //lcd显示 lcd.clear(); lcd.setCursor(0, 0);//在第一行第一列显示 lcd.print("H:"); lcd.print(h);//lcd打印湿度 lcd.print("%"); lcd.setCursor(0, 1);//在第二行第一列显示 lcd.print("T:"); lcd.print(t);//lcd打印温度 lcd.print("°c"); //蜂鸣器报警 if(t>30) { //温度大于30度,蜂鸣器报警 BT.println("温度过高!"); tone(buzzer,800,2000);//在buzzer引脚上生成800赫兹持续2000ms的方波 } //呼吸灯闪烁 if(h>55) {//湿度大于55%,LED灯闪烁,湿度越大闪烁频率越大 BT.println("湿度过高!"); int s; s=400-h; digitalWrite(led,HIGH);//点亮LED delay(s); digitalWrite(led,LOW);//熄灭LED delay(s); } //蓝牙同步显示至手机 BT.print("湿度是:"); BT.print(h); BT.println("%"); BT.print("温度是:"); BT.print(t); BT.println("°c"); delay(1000);//延时1s } 五、成果展示

温湿度传感器检测的数据会在液晶屏进行显示。当温度超出预设范围会发出蜂鸣警报;当湿度超出预设范围时,小灯会开始闪烁。

温湿度会实时显示在蓝牙调试器应用的对话框,并且当气温和空气中的含水量异常时,会向蓝牙调试器发送报警信息。 

 

 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3