DHT11是一个湿度和温度传感器,产生校准数字输出。DHT11可与Arduino、树莓派等任意微控制器进行接口,获得即时结果。DHT11是一款低成本的湿度和温度传感器,具有高可靠性和长期稳定性。
在这个项目中,我们将搭建一个小电路来连接Arduino和DHT11温湿度传感器。DTH11传感器与Arduino连接的主要应用之一是天气监测。
在本文中,我们已经了解了湿度、相对湿度、湿度传感器及其类型。
线路图
下面的电路图显示了实施这个项目所需的所有必要连接。
组件的要求
电路描述
我们将看到DHT11与Arduino接口的电路设计。DHT11湿度和温度传感器有两种变体:只有传感器或模块。
主要的区别是该模块由上拉电阻组成,也可能包括一个LED电源。我们已经在这个项目中使用了一个模块,如果你希望使用传感器本身,你需要连接一个5K Ω上拉电阻另外。
在设计时,将DHT11 Sensor的数据pin与Arduino的pin 11连接。结果显示采用16 × 2的液晶显示器。LCD的控制引脚RS和E (LCD上的引脚4和6)与Arduino的引脚4和5相连。LCD的数据引脚即D4到D7 (LCD的引脚11到14)连接到LCD的引脚0到3。
注意:为了方便连接,我们已经将DHT11传感器模块连接在Arduino的ICSP引脚上,因为它提供了相邻的VCC、DATA和GND引脚。这种类型的连接是不必要的,你可以将传感器的数据引脚连接到正常的数字I/O引脚。
组件描述
DHT11温湿度传感器
DHT11是DHTXX系列湿度传感器的一部分。本系列的另一款传感器是DHT22。这两个传感器都是相对湿度(RH)传感器。因此,他们将同时测量湿度和温度。DHT11湿度传感器虽然价格便宜,速度慢,但在爱好者和初学者中非常受欢迎。
DHT11温湿度传感器由3个主要部件组成。一个电阻式湿度传感器,一个NTC(负温度系数)热敏电阻(测量温度)和一个8位微控制器,转换两个传感器的模拟信号并发出单数字信号。
这个数字信号可以被任何微控制器或微处理器读取,以便进一步分析。
DHT11湿度传感器由4个引脚组成:VCC、Data Out、Not Connected (NC)、GND。VCC引脚的电压范围为3.5V至5.5V。5V电源就可以了。数据输出引脚的数据是串行数字数据。
下图为DHT11温湿度传感器的典型应用电路。DHT11湿度传感器可测量相对湿度(Relative humidity, RH)的20 ~ 90%,温度为0 ~ 500C.传感器的采样周期为1秒,即
所有的DHT11传感器都在实验室精确校准,结果存储在内存中。任何微控制器如Arduino都可以与DHT11传感器建立单线通信。
此外,电缆的长度可以长达20米。来自传感器的数据由相对湿度(RH)和温度的整数和小数部分组成。
DHT11传感器的数据为40位,格式如下:
8位数据用于整数RH值,8位数据用于十进制RH值,8位数据用于整数温度值,8位数据用于整数温度值,8位数据用于校验和。
例子
考虑从DHT11传感器接收到的数据是
00100101 00000000 00011001 00000000 00111110。
为了检查接收到的数据是否正确,我们需要执行一个小的计算。将RH和Temperature的所有整数和小数相加,检查和是否等于校验值,即最后8位数据。
00100101 + 00000000 + 00011001 + 00000000 = 00111110
该值与校验和相同,因此接收到的数据是有效的。现在要获得RH和Temperature值,只需将二进制数据转换为十进制数据。
RH = 00100101的小数= 37%
温度= 00011001的十进制数= 250C
项目工作
利用Arduino UNO和DHT11温湿度传感器搭建了一个简单的项目,将周围环境的湿度和温度显示在液晶显示屏上。
在建立连接后,我们不需要做任何事情,因为程序会处理一切。虽然DHT11模块有一个名为“DHT”的特殊库,但我们没有使用它。如果要使用此库,需要单独下载此库并添加到Arduino现有库中。
程序是根据数据表中提供的数据时序图编写的。程序会使Arduino自动读取传感器的数据,并在LCD显示屏上显示为湿度和温度。
代码
应用程序
- DHT11相对湿度和温度传感器可用于许多应用,如:
- 暖通、通风和空调系统
- 气象站
- 测量湿度的医疗设备
- 家庭自动化系统
- 汽车和其他天气控制应用
构建和输出视频
推荐阅读:
27岁的反应
请把arduino代码和DHT11库发给我
代码是.................吗
上面,但如果你看不到它,我为你复制了下面:(我刚刚运行它-工作棒!)
# include
LiquidCrystal lcd(4,5,0,1,2,3);
字节degree_symbol [8] =
{
0 b00111,
0 b00101,
0 b00111,
0 b00000,
0 b00000,
0 b00000,
0 b00000,
0 b00000
};
int门= 11;
Volatile unsigned长持续时间=0;
unsigned char [5];
unsigned int [40];
无符号字符值= 0;
无符号的答案= 0;
int z = 0;
int b = 1;
无效的设置()
{
液晶显示器。开始(16日2);
液晶显示器。打印(" Temp = ");
lcd.setCursor (0,1);
液晶显示器。打印("湿度= ");
液晶显示器。degree_symbol createChar(1日);
lcd.setCursor (9,0);
lcd.write (1);
lcd.print(“C”);
lcd.setCursor (13 - 1);
lcd.print(“%”);
}
无效循环()
{
延迟(1000);
而(1)
{
延迟(1000);
pinMode(门、输出);
digitalWrite(门、低);
延迟(20);
digitalWrite(门、高);
//默认情况下,由于内部拉起,它将变为高
/ / delayMicroseconds (40);
时间= pulseIn(门、低);
如果(持续时间= 72)
{
而(1)
{
时间= pulseIn(门、高);
如果(持续时间= 20){
值= 0;}
Else if(duration = 65){
值= 1;}
else if (z = = 40) {
打破;}
我(z / 8) | =价值< < (7 - (z % 8));
j [z] =价值;
z + +;
}
}
回答=我[0]+ [1]+ [2]+ [3];
如果回答= =我[4]& &答案! = 0)
{
lcd.setCursor (7,0);
lcd.print(我[2]);
lcd.setCursor (11 - 1);
lcd.print(我[0]);
}
z = 0;
我[0]=[1][2]= =我[3]= [4]= 0;
}
}
代码中有一个故意的错误
这个项目有任何可用的代码吗
请把代码发给我
请发送DHT11传感器库和arduino代码
你好,
我们没有使用DHT11湿度传感器的任何库。没有库的代码被上传。
请把代码发给我
DHT11湿度、温度
你好,
上传代码。请在本页查看。
重要视频。如何在代码中将C转换为F ?
嗨
请发送代码DHT11湿度和温度给我
你好,
代码已经在页面中上传。检查代码部分。
嗨
我上传没有错误,你的代码和显示是工作,但程序不是开机后
没有传感器数据。
你能告诉我出了什么问题吗?
我安装第二个DHT11新的和相同的没有数据。
谢谢斯坦
谢谢你的这个项目。我跟踪了所有线路,到目前为止上传你的代码没有错误。但它只显示湿度= %,温度=(符号度)C,没有值。
我只是arduino的初学者。任何建议吗?
可能传感器出错了,再检查一遍!
哪个自由使用的液晶
LiquidCrystal.h
如果这段代码显示温度在C和湿度在%,那么需要什么库??
请发送arduino uno温度传感器的面包板连接给我
本文对所有内容都进行了非常清楚的说明。在清晰度方面,这是我见过的最好的作品之一。所有这些问题在文章中都有明确的答案,所以请再读一遍。(注:我也是Arduino的新手,但我可以说,这篇文章是你能找到的任何东西中最清楚的。)
请向我解释,为什么“持续时间= 72”“持续时间= 20”“持续时间= 65”??
请把dht11的文件给我好吗
兄弟。请出示面包板的连接。一些电线以前是连接的。我去买东西之前想看看。
你好,
como podria agregar el Sensor de presión HK3010 a este cirito ??
这就跟你问声好!
DHT11接+5V;GND;销11
能告诉我密码吗