在本文中,我们将介绍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 x 12mm x 5.5mm
DHT22:
•工作电压为3至5V
•最大电流消耗2.5mA。
•它可以测量从0%到100%2-5%的精度范围的湿度。
•它可以测量-40至+125摄氏度的温度范围+/- 0.5%的精度。
•每一秒刷新两次。
其尺寸为15.1mm x 25mm x 7.7mm
从上面的原始规格中,您可以选择哪一个为您的项目最佳。
数据引脚总是应该连接一个从4.7K到10K的上拉电阻。上面所示的传感器带有消除NC引脚和上拉电阻的PCB。但是有些传感器没有这些功能,如果没有上拉电阻,发送到arduino的读数将是致命的错误值。
现在我们要将DHT传感器与arduino接口。在进行项目之前,请先从以下链接下载库文件:
https://arduino-info.wikispace.com/file/detail/dht-lib.zip.
您只需要这四个组件:DHTXX传感器,Arduino Uno,USB电缆和PC。
只需将传感器插入Arduino的模拟引脚,如原型并将代码转储到Arduino,打开串行显示器,您可以看到读数。
作者的原型:
//---------------------- 项目由R.Girish -------------// # 包括< dht.h > dht dht;#define DHTxxPIN A1 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-------------//
串行监视器输出:
多谢兄弟。在蛋孵化器项目中
dhtlib_error_connect'未在此范围内声明。如何解决这个错误。
对不起Shaik,我尝试了很多寻找解决方案,但我无法理解的原因......实际上我是Arduino专家,这个代码由外部作者生成。
你好,我也得到错误:DHTLIB_ERROR_CONNECT
在此范围内未声明。
有什么问题吗?
嗨,你必须找到并导入dht.h库正确,这似乎有点困难,因为大多数文件似乎不工作,但你必须这样做,你可以参考以下链接的一些信息:
https://community.blynk.cc/t/correct-dht-library/30774/5
你好先生!
我使用正确的库为dht
上面提到链接。但是我在编译中面临错误。
无效循环:
错误:DHTLIB_ERROR_CONNECT
在此范围内未声明。
但是我从代码中删除了这一行
(案例dhtlib_error_connect :)
汇编成功。
如果我们能控制温度和湿度,怎么办
Mr.GR会尽快回复您…
嗨,尼,
控制温度和湿度,需要冷却或加热装置或两者。控制湿度,您需要水蒸发器(加湿器)或除湿器或两者。必须以触发所提到的气候控制设备打开/关闭,以满足您的临时湿度的方式编程传感器和Arduino。
上述概念在封闭的环境中效果最佳。
其中一个例子是孵化器:https://www.homemade-circules.com/incubator-using-arduino-with-automatic-temperature-humity-control/
问候
我们可以使用LM35或热敏电阻传感器而不是DHTXX吗?
Ananth,它将取决于两个传感器的规格,如果它们相当好,那么它可能与提出的Arduino设计合作。
嗨,ananth
您不能在DHT传感器的位置使用LM35,它们都以非常不同的方式工作。