这是是已校准的数字温湿度传感器,用于检测环境温湿度,采用DHT22(AM2302),标准单总线接口。拥有比DHT11更高的精度和更大的量程。

| 参数名称 | 参数 |
| 传感器 | DHT22(温湿度传感器) |
| 工作电压 | 3.3V-5.5V |
| 湿度分辨率 | 0.1%RH |
| 湿度测量范围 | 0%RH ~ 99.9%RH |
| 湿度测量误差 | ±2%RH (25°C) |
| 温度分辨率 | 0.1°C |
| 温度测量范围 | -40°C ~ 80°C |
| 温度测量误差 | ±0.5℃ |
| 引脚 | 功能 |
| VCC | 电源正(3.3V-5.5V) |
| GND | 电源地 |
| DOUT |
通信端口 |
在Arduino UNO上的范例程序 dht22.ino:
#include <dht.h>
dht DHT;
#define DHT22_PIN 5
struct {
uint32_t total;
uint32_t ok;
uint32_t crc_error;
uint32_t time_out;
uint32_t connect;
uint32_t ack_l;
uint32_t ack_h;
uint32_t unknown;
} stat = { 0, 0, 0, 0, 0, 0, 0, 0};
void setup() {
Serial.begin(115200);
Serial.println("dht22_test.ino");
Serial.print("LIBRARY VERSION: ");
Serial.println(DHT_LIB_VERSION);
Serial.println();
Serial.println("Type,\tstatus,\tHumidity (%),\tTemperature (C)\tTime (us)");
}
void loop() {
// READ DATA
Serial.print("DHT22, \t");
uint32_t start = micros();
int chk = DHT.read22(DHT22_PIN);
uint32_t stop = micros();
stat.total++;
switch (chk)
{
case DHTLIB_OK:
stat.ok++;
Serial.print("OK,\t");
break;
case DHTLIB_ERROR_CHECKSUM:
stat.crc_error++;
Serial.print("Checksum error,\t");
break;
case DHTLIB_ERROR_TIMEOUT:
stat.time_out++;
Serial.print("Time out error,\t");
break;
case DHTLIB_ERROR_CONNECT:
stat.connect++;
Serial.print("Connect error,\t");
break;
case DHTLIB_ERROR_ACK_L:
stat.ack_l++;
Serial.print("Ack Low error,\t");
break;
case DHTLIB_ERROR_ACK_H:
stat.ack_h++;
Serial.print("Ack High error,\t");
break;
default:
stat.unknown++;
Serial.print("Unknown error,\t");
break;
}
// DISPLAY DATA
Serial.print(DHT.humidity, 1);
Serial.print(",\t");
Serial.print(DHT.temperature, 1);
Serial.print(",\t");
Serial.print(stop - start);
Serial.println();
if (stat.total % 20 == 0)
{
Serial.println("\nTOT\tOK\tCRC\tTO\tCON\tACK_L\tACK_H\tUNK");
Serial.print(stat.total);
Serial.print("\t");
Serial.print(stat.ok);
Serial.print("\t");
Serial.print(stat.crc_error);
Serial.print("\t");
Serial.print(stat.time_out);
Serial.print("\t");
Serial.print(stat.connect);
Serial.print("\t");
Serial.print(stat.ack_l);
Serial.print("\t");
Serial.print(stat.ack_h);
Serial.print("\t");
Serial.print(stat.unknown);
Serial.println("\n");
}
delay(2000);
}
范例输出示例:
dht22.ino LIBRARY VERSION: 0.1.36 Type, status, Humidity (%), Temperature (C) Time (us) DHT22, OK, 40.0, 24.0, 4800 DHT22, OK, 89.0, 24.0, 5060 DHT22, OK, 89.0, 24.0, 5060 DHT22, OK, 89.0, 24.0, 5064 DHT22, OK, 89.0, 24.0, 5064 DHT22, OK, 89.0, 24.0, 5064 DHT22, OK, 89.0, 24.0, 5064 DHT22, OK, 89.0, 24.0, 5060 DHT22, OK, 89.0, 24.0, 5064 DHT22, OK, 89.0, 24.0, 5064 DHT22, OK, 89.0, 24.0, 5064 DHT22, OK, 89.0, 24.0, 5060 DHT22, OK, 89.0, 24.0, 5060 DHT22, OK, 89.0, 24.0, 5064 DHT22, OK, 89.0, 24.0, 5064 DHT22, OK, 89.0, 24.0, 5064 DHT22, OK, 89.0, 24.0, 5064 DHT22, OK, 89.0, 24.0, 5064 DHT22, OK, 89.0, 24.0, 5064 DHT22, OK, 89.0, 24.0, 5068 TOT OK CRC TO CON ACK_L ACK_H UNK 20 20 0 0 0 0 0 0
通过修改范例程序,可以应用到实例中。
562



被折叠的 条评论
为什么被折叠?



