|
在本篇文章中,您将学习如何设置DHT11和DHT22传感器,并测量环境温度和湿度。
DHT11和DHT22温湿度传感器 在许多项目中,由于温度和湿度等参数的重要性,正确选择能够测量温度和湿度的传感器非常重要。DHT11和DHT22的DHT系列是温度和湿度传感器中最受欢迎和最常见的传感器。
您可以在下表中看到它们的功能: | 参数 | DHT11 | DHT22 | | 工作电压 | 3-5.5 v | 3.3-6 v | | 电流 | 2.5 mA | 1.5 mA | | 温度测量范围 | 0 - 50摄氏度 | -40 - 80摄氏度 | | 温度测量精度 | ±5% | ±0.5% | | 湿度测量范围 | 20-90%RH | 0-100%RH | | 湿度测量精度 | ±2% | ±2% | | 响应速度 | 2s | 2s |
价格低是DHT11最重要的特性,但它的精度不高和测量范围窄。而DHT22具有宽范围和高精度测量,但价格比另一个贵2.5倍。
使用DHT11和Arduino测量温度和湿度 所需的材料 ● Arduino Uno R3开发板 ● DHT11传感器 ● 线路板 ● 跳线 ● Arduino IDE
电路连接 DHT11包含4个引脚。 2个用于供电,1个用于发送数据,另一个为空。要使此传感器正常工作并为您提供正确的数据,必须使用4.7 k电阻上拉数据引脚。将传感器的第三个引脚悬空。
注意:小心传感器的引脚方向,如果发生错误,传感器有可能损坏。
代码 要开始传输数据,请将此代码上传到Arduino并打开串行监视器。 - /*
- DHT11 Tempertature and Hummidity
- */
- #include "dht.h"
- conat int dht_pin = 8;
-
- dht DHT;
-
- void setup(){
-
- Serial.begin(9600);
- delay(500);
- Serial.print("***Electropeak***\n\n");
-
- }
-
- void loop(){
- DHT.read11(dht_pin);
-
- Serial.print("humidity = ");
- Serial.print(DHT.humidity);
- Serial.print("% ");
- Serial.print("temperature = ");
- Serial.print(DHT.temperature);
- Serial.println("C ");
-
- delay(3000);//We have to wait at least 2 seconds before accessing the sensor again.
- }
- }
复制代码
DHT.humidity以百分比形式返回湿度,DHT.temperature以摄氏度返回温度。
注意:我们必须在每次测量之间等待2秒钟。 否则,传感器将返回错误的数据。
您可以在液晶显示屏上显示温度和湿度,而无需在计算机上显示信息。
使用DHT22和Arduino测量温度和湿度 设置和使用DHT22传感器几乎与DHT11相同。
所需的材料 ● Arduino Uno R3开发板 ● DHT22传感器 ● 线路板 ● 跳线 ● Arduino IDE
电路连接
代码 唯一的区别在于DHT.read函数,你应该写22而不是11。另外,你可以将温度和湿度参数定义浮点数用于DHT22,以便更准确地看到它们。
上传此代码到Arduino开发板,然后在串行监视器中观察结果。 - /*
- DHT22 Tempertature and Hummidity
- */
- #include "dht.h"
- const int dataPin = 8;
- dht DHT;
- void setup() {
- Serial.begin(9600);
- }
- void loop() {
- int readData = DHT.read22(dataPin);
- float t = DHT.temperature;
- float h = DHT.humidity;
-
- Serial.print("Temperature = ");
- Serial.print(t);
- Serial.print(" *C ");
- Serial.print(" Humidity = ");
- Serial.print(h);
- Serial.println(" % ");
-
- delay(2000);
- }
复制代码
代码中使用的DHT库的下载地址:DHT Sensor库。
以上就是本文的全部内容。如果遇到问题,请随时在本帖下面进回复。 |