Arduino上使用DHT11传感器测量温度和湿度

DHT11是应用广泛的温湿度传感器,它是一款含有已校准数字信号输出的温湿度复合传感器 。它应用专用的数字模块采集技术和温湿度传感技术 ,确保产品具有极高的可靠性与卓越的长期稳定性。

一、DHT11温湿度传感器介绍

技术参数

  供电电压: 3.3~5.5V DC

  输 出: 单总线数字信号

  测量范围: 湿度20-90%RH, 温度0~50℃

  测量精度: 湿度+-5%RH, 温度+-2℃

  分 辨 率: 湿度1%RH, 温度1℃

  互 换 性: 可完全互换 ,

  长期稳定性: <±1%RH/年

其有4个引脚,分别如下:

二、与Arduino连接

VDD连接5V电源,GND引脚接地,DATA引脚连接到Arduino的8号引脚上。

另:本实验是在Arduino使用LCD1602液晶显示屏的基础上进行的,最后将测得的温湿度信息显示在LCD1602液晶显示屏上。

三、编写程序

首先下载DHT11库,点击下方连接保存DHT11库到本地。

将DHT11库解压后放在Arduino\libraries文件夹下,这时再打开Arduino IDE。

输入以下程序:

//引入依赖
#include <LiquidCrystal.h>  
#include <dht11.h>
#define DHT11_PIN 8  //DHT11引脚为8

// 初始化LCD针脚
const int rs = 7, en = 6, d4 = 5, d5 = 4, d6 = 3, d7 = 2;
LiquidCrystal LCD(rs, en, d4, d5, d6, d7);

dht11 DHT;

void setup() {
//  Serial.begin(9600);
  LCD.begin(16,2); //初始化,设置列行

}

void LCD_display(){
  //显示空气温度和湿度
  LCD.setCursor(0, 1);
  LCD.print("Tem:");//在屏幕上显示Tem:
  LCD.setCursor(4, 1);
  LCD.print(DHT.temperature); //在屏幕上显示测量出来的温度
  LCD.setCursor(6, 1);
  LCD.write(0xDF);
  LCD.print("C");
  
  LCD.setCursor(9, 1);
  LCD.print("Hum:");//在屏幕上显示Hum:
  LCD.setCursor(13, 1);
  LCD.print(DHT.humidity); //在屏幕上显示测得的相对湿度
  LCD.setCursor(15, 1);
  LCD.print("%"); 
  }

void loop() {
  LCD.clear();
  int chk;
  chk=DHT.read(DHT11_PIN);
  switch (chk){
    case DHTLIB_OK: 
                LCD.setCursor(0, 0);
                LCD.print("DHT OK!");
                LCD_display(); 
                break;
    case DHTLIB_ERROR_CHECKSUM: 
                LCD.print("Checksum error!!"); 
                break;
    case DHTLIB_ERROR_TIMEOUT: 
                LCD.print("Time out error!!"); 
                break;
    default: 
                LCD.print("Unknown error!!!"); 
                break;       
  }
 
  delay(3000);
}

将程序编译后上传到Arduino,即可看到LCD1602显示屏显示了温湿度信息。

Arduino连接DHT11传感器

好,这表明实验成功。接下来我们再测试下传感器工作异常的情况。

一是传感器未接电或者接电线路有问题,我们拔掉DHT11的电源引脚,会出现以下信息:

好,如果断开DHT11的数据引脚,会有什么现象。我们来看下:

原创文章,转载请注明: 转载自科技爱好者博客

本文链接地址: Arduino上使用DHT11传感器测量温度和湿度 (https://www.tujing.site/3443)

如果博客对您有帮助,请给我 赞助


热度:2,607℃

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注