DHT 温湿度传感器驱动
DHT 操作
示例驱动器件:DHT11,DHT22
DHT 是常见的温湿度传感器,它能够以数字信号输出包含有温度和湿度的信息,DHT11 精度较差,DHT22 精度较好,其比较可参考如下:
DHT 库安装
ARDUINO 中有现成的 DHT 库,提供两种方式进行安装:
方式一:
在 ARDUINO 库管理中搜索 DHT_ESP 模块,进行在线安装
方式二:
首先下载相应的库的压缩文件
DHT sensor library - Arduino Reference
Arduino IDE>项目>包含库>添加.zip 文件,选择下载好的压缩包
选择压缩包后完成安装
先接着借助于开发板,完成模块的接线
继电器引脚 | 开发板引脚 | 说明 |
---|---|---|
IN | IO32 | 信号引脚 |
GND | GND | 地 |
VCC | 5V | 电源 |
接着编写 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;