浏览量: 96 次浏览

温湿度传感器

2020年2月2日 0 作者 Nie Hen

DHT11 与arduino使用获取温湿度值
enter description here

原理

概述:DHT11是广州奥松有限公司生产的一款湿温度一体化的数字传感器。
该传感器包括一个电阻式测湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接。通过单片机等微处理器简单的电路连接就能够实时的采集本地湿度和温度。DHT11与单片机之间能采用简单的单总线进行通信,仅仅需要一个I/O口。传感器内部湿度和温度数据40Bit的数据一次性传给单片机,数据采用校验和方式进行校验,有效的保证数据传输的准确性。DHT11功耗很低,5V电源电压下,工作平均最大电流0.5mA。
参考

DHT11

DHT11 是一款温湿度传感器,可以用来测试环境温湿度,该传感器的的温度测量范围为 0 ~ 50°C,误差为 2 °C;湿度测量范围为在 0°C时为30%-90%RH,环境温度为 25°C时,湿度测量范围为20%-90%RH,在50°C时,测量范围是20%-80%。

引脚 对应接口
VCC 5V
Ddat 串行数据单总线(任一IO)
GND 负极接地

arduino使用

1.连接电路
enter description here
使用DHT11 库 <dht11.h>

  1. 在项目 加载库 库管理中 搜索dht 下载DHT sensor by Adafruit (1.30)
    enter description here
    3 安装好之后搜索 adafruit unifi 下载A大fruit Unified Sensor (1.02)
    enter description here
    然后就可以去测试温湿度模块
    4 在示例中 可以找到DHTtester 进行测试
    温湿度测试代码(如果没有库的话到链接下载 放到libary里面)
    修改后的代码在GitHub上

示例代码

“` c++
// 引入 DHT 库文件,如果没有,先从网上下载好,在 Arduino 中导入
#include <dht11.h>

dht11 DHT11;

// 设置 DHT 引脚 为 Pin 8
#define DHT11PIN 8

void setup() {
Serial.begin(9600);
Serial.println("DHT11 TEST PROGRAM");
Serial.print("LIBRARY");
// 输出 DHT 库的版本号
Serial.println(DHT11LIB_VERSION);
Serial.println();
}

void loop() {
Serial.println("\n");

int chk = DHT11.read(DHT11PIN);

// 测试 DHT 是否正确连接
Serial.print("Read sensor: ");
switch (chk)
{
case DHTLIB_OK:
Serial.println("OK");
break;
case DHTLIB_ERROR_CHECKSUM:
Serial.println("Checksum error");
break;
case DHTLIB_ERROR_TIMEOUT:
Serial.println("Time out error");
break;
default:
Serial.println("Unknown error");
break;
}

// 获取测量数据
Serial.print("Humidity (%): ");
Serial.println((float)DHT11.humidity, 2);

Serial.print("Temperature °C): ");
Serial.println((float)DHT11.temperature, 2);

delay(2000);
“`

参考简书

配合esp8266 使用

使用esp01s即可
使用GPIO2 来进行传送数据