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)
如果博客对您有帮助,请给我 赞助