Skip to content

DHT 温湿度传感器驱动

DHT 操作

示例驱动器件:DHT11,DHT22

DHT 是常见的温湿度传感器,它能够以数字信号输出包含有温度和湿度的信息,DHT11 精度较差,DHT22 精度较好,其比较可参考如下:

DHT 库安装

ARDUINO 中有现成的 DHT 库,提供两种方式进行安装:

方式一:

在 ARDUINO 库管理中搜索 DHT_ESP 模块,进行在线安装

方式二:

首先下载相应的库的压缩文件

DHT sensor library - Arduino Reference

Arduino IDE>项目>包含库>添加.zip 文件,选择下载好的压缩包

选择压缩包后完成安装

先接着借助于开发板,完成模块的接线

继电器引脚开发板引脚说明
INIO32信号引脚
GNDGND
VCC5V电源

接着编写 DHT 相关的驱动代码,以 DHT22 为例

c
#include "DHTesp.h" //引入DHTesp头文件,为下面调用函数做准备。

const int DHT22_PIN = 32; //定义一个整形变量,目的是使用GPIO-32来接收来自传感器的数据

DHTesp dhtSensor; //定义一个DHT传感器
//arduino里的setup函数,执行一次
void setup() {
  Serial.begin(115200); //串口的速率
  dhtSensor.setup(DHT22_PIN, DHTesp::DHT22);//把DHT22与gpio第32号数字引脚关联。
}
//loop函数循环执行。
void loop() {
  TempAndHumidity  data = dhtSensor.getTempAndHumidity();//接受来自传感器的温度湿度数据,存入data变量
  Serial.println("Temp: " + String(data.temperature, 2) + "°C");//开始通过串口显示变量的温度信息
  Serial.println("Humidity: " + String(data.humidity, 1) + "fh");//显示湿度信息
  Serial.println("---");//打印分隔符
  delay(1000);//延迟1秒,1000毫秒
}

如果传感器是 DHT11,只需要上述代码中的 DHT22 进行替换:

c
dhtSensor.setup(DHT22_PIN, DHTesp::DHT11);

可供选择的传感器类型可参考如下:

c
typedef enum {
    AUTO_DETECT,
    DHT11,
    DHT22,
    AM2302,  // Packaged DHT22
    RHT03    // Equivalent to DHT22
}
DHT_MODEL_t;

powered by 天人之际工作室