在本文中,我们将介绍DHTxx系列传感器,它用于测量温度和湿度,这两种功能集成到一个模块中。
我们会看到他们的规格,这样你就可以为你的项目选择最好的传感器,最后我们会将它与arduino接口,并在arduino IDE软件的串行监视器中读取值。
DHTxx由两个系列DHT11和DHT22组成。它们之间的主要区别是它们的规格和成本。DHT11是低端传感器,DHT22是高端传感器。DHT22比DHT11更贵,但低端对于业余项目来说已经足够好了,除非你对你的项目进行了一些认真的测量。
DHTxx是4脚设备,其中一个是NC或没有连接,所以,我们将只使用3脚。其中两个是供应引脚,剩下的一个是输出引脚。传感器可能看起来很简单,但它需要一个库来处理它。
该传感器由热敏电阻、湿度传感装置和嵌入在模块中的微控制器组成。具体规格如下:
DHT11:
•工作电压范围为3 ~ 5V。
•最大电流消耗2.5mA。
•可测量湿度范围从20%到80% -/+ 5%的精度。
•它可以测量温度范围从0到50摄氏度±2%的精度。
•每秒钟刷新一次。
•尺寸为15.5mm × 12mm × 5.5mm
DHT22:
•工作电压为3 ~ 5V
•最大电流消耗2.5mA。
•湿度测量精度范围为0% ~ 100% 2- 5%。
•可测量温度范围从-40到+125摄氏度+/- 0.5%的精度。
•每秒钟刷新两次。
•尺寸为15.1mm × 25mm × 7.7mm
从上面的原始规范中,您可以选择最适合您的项目的一个。
数据引脚总是应该连接一个从4.7K到10K的上拉电阻。上图所示的传感器与PCB消除了NC引脚和上拉电阻。但有些传感器没有这些功能,没有上拉电阻,发送到arduino的读数将是致命的错误值。
现在我们要将DHT传感器与arduino接口。在进行项目之前,请从以下链接下载库文件:
https://arduino-info.wikispaces.com/file/detail/DHT-lib.zip
你只需要这四个组件:DHTxx传感器、arduino Uno、USB线和一台PC机。
如原型所示,将传感器插入arduino的模拟引脚上,将代码转储到arduino,打开串行显示器即可看到读数。
作者的原型:
//---------------------- 项目由R.Girish -------------// # 包括< dht.h > dht dht;#define DHTxxPIN int p = A0;int n = A2;int应答;int f;无效的设置(){Serial.begin (9600);pinMode (p输出);pinMode (n、输出);} void loop() {digitalWrite(p,1);digitalWrite (n, 0); ack=0; int chk = DHT.read11(DHTxxPIN); switch (chk) { case DHTLIB_ERROR_CONNECT: ack=1; break; } if(ack==0) { f=DHT.temperature*1.8+32; Serial.print("Temperature(°C) = "); Serial.println(DHT.temperature); Serial.print("Temperature(°F) = "); Serial.print(f); Serial.print("\n"); Serial.print("Humidity(%) = "); Serial.println(DHT.humidity); Serial.print("\n"); delay(500); } if(ack==1) { Serial.print("NO DATA"); Serial.print("\n\n"); delay(500); } } //----------------------Program developed by R.Girish-------------//
连续监测输出:
先生,我们可以用LM35或热敏电阻传感器代替DHTxx吗?
Ananth,它将取决于两个传感器的规格,如果它们匹配得相当好,那么也许它可以与拟议的Arduino设计工作。
嗨,ananth
你不能用LM35代替DHT传感器,它们的工作方式非常不同。
如果我们可以控制温度和湿度,如何
gr先生会很快回复你…
嗨,尼,
为了控制温度和湿度,你需要一个冷却或加热装置,或者两者都需要。为了控制湿度,你需要汽化器(加湿器)或除湿器,或两者兼而有之。必须对传感器和Arduino进行编程,以触发上述气候控制设备的开关,以满足您设定的温度和湿度。
上述概念在一个封闭的封闭环境中工作得最理想。
这方面的一个例子就是孵化器://www.addme-blog.com/incubator-using-arduino-with-automatic-temperature-and-humidity-control/
问候
你好先生!
我使用正确的库为dht
上面提到的链接。但我在编译时遇到了错误。
无效循环:
错误:DHTLIB_ERROR_CONNECT
未在此范围内声明。
但是我从代码中删除了这一行
(案例DHTLIB_ERROR_CONNECT:)
编译成功。
hi,我也得到错误:DHTLIB_ERROR_CONNECT
未在此范围内声明。
有什么问题吗?
你好,你必须找到并正确导入dht.h库,这似乎有点困难,因为大多数文件似乎不工作,但你必须这样做,你可以参考以下链接的一些信息:
https://community.blynk.cc/t/correct-dht-library/30774/5
谢谢,兄弟。在孵卵器项目中
DHTLIB_ERROR_CONNECT '没有在此范围内声明。我如何解决这个错误。
抱歉Shaik,我尝试了很多方法去寻找解决方案,但是我不明白为什么.....其实我是Arduino专家,这段代码是由外部作者生成的。