用户工具

站点工具


侧边栏

索引

抱歉,您没有权限增加页面
传感器和模块:温湿度传感器dht11

1、 产品图片

2、产品购买地址

3、产品概述

此款传感器是一款含有已校准数字信号输出的温湿度复合传感器。它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性与卓越的长期稳定性。传感器包括一个电阻式感湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接。因此该产品具有品质卓越、超快响应、抗干扰能力强、性价比极高等优点。每个DHT11传感器都在极为精确的湿度校验室中进行校准。校准系数以程序的形式储存在OTP内存中,传感器内部在检测信号的处理过程中要调用这些校准系数。单线制串行接口,使系统集成变得简易快捷。超小的体积、极低的功耗,信号传输距离可达20米以上,使其成为各类应用甚至最为苛刻的应用场合的最佳选则。

4、产品参数

  1. 工作电压 :3.3V-5v
  2. 尺寸大小:40mm x 28mm
  3. 重量大小:3g
  4. 信号类型:数字信号
  5. 供电电流:最大2.5mA
  6. 温度范围:0-50℃,误差±2℃
  7. 湿度范围:当环境温度在 0 ℃时为30-90%RH;当环境温度在25℃时为20-90%RH ;当环境温度在50℃时为20-80%RH
  8. 响应时间:1/e(63%) 6-30s
  9. 测量分辨率分别为:温度(8bit)湿度(8bit)
  10. 采样周期间隔:<1s

5、引脚定义

  • DATA:信号引脚(接主控板数字引脚,示例中接2号引脚)
  • VCC:电源引脚(接主控板5V)
  • GND:接地引脚(接主控板GND)

6、示例程序

//中贝斯特UltiRobot温湿度DHT11模块示例教程
//程序效果:串口监视器显示当前环境温湿度数值
//淘宝店地址:zhongbest.taobao.com
//专业Arduino资料网站:www.arduino365.com


double Fahrenheit(double celsius)
{
return 1.8 * celsius + 32;
}    //摄氏温度度转化为华氏温度

double Kelvin(double celsius)
{
return celsius + 273.15;
}     //摄氏温度转化为开氏温度

// 露点(点在此温度时,空气饱和并产生露珠)
// 参考: http://wahiduddin.net/calc/density_algorithms.htm
double dewPoint(double celsius, double humidity)
{
double A0= 373.15/(273.15 + celsius);
double SUM = -7.90298 * (A0-1);
SUM += 5.02808 * log10(A0);
SUM += -1.3816e-7 * (pow(10, (11.344*(1-1/A0)))-1) ;
SUM += 8.1328e-3 * (pow(10,(-3.49149*(A0-1)))-1) ;
SUM += log10(1013.246);
double VP = pow(10, SUM-3) * humidity;
double T = log(VP/0.61078);   // temp var
return (241.88 * T) / (17.558-T);
}

// 快速计算露点,速度是5倍dewPoint()
// 参考: http://en.wikipedia.org/wiki/Dew_point
double dewPointFast(double celsius, double humidity)
{
double a = 17.271;
double b = 237.7;
double temp = (a * celsius) / (b + celsius) + log(humidity/100);
double Td = (b * temp) / (a - temp);
return Td;
}

#include <dht11.h>//程序中调用了dht11的库

dht11 DHT11;//定义一个名字叫做DHT11,类型为dht11的值。

#define DHT11PIN 2//定义DHT11的引脚号为D2。

void setup()
{
Serial.begin(9600);
Serial.println("DHT11 TEST PROGRAM ");
Serial.print("LIBRARY VERSION: ");
Serial.println(DHT11LIB_VERSION);
Serial.println();
}

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

int chk = DHT11.read(DHT11PIN);

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 (oC): ");
Serial.println((float)DHT11.temperature, 2);

Serial.print("Temperature (oF): ");
Serial.println(Fahrenheit(DHT11.temperature), 2);

Serial.print("Temperature (K): ");
Serial.println(Kelvin(DHT11.temperature), 2);

Serial.print("Dew Point (oC): ");
Serial.println(dewPoint(DHT11.temperature, DHT11.humidity));

Serial.print("Dew PointFast (oC): ");
Serial.println(dewPointFast(DHT11.temperature, DHT11.humidity));

delay(2000);
}
串口监视器如果出现checksum error的报错,请下载并使用“修改后的库文件”文件夹里的库文件替换原有库文件。(注意:使用修改后的库文件,请保持您的电脑里只有这个库文件,其他DHT11的库文件都删除。不然会失效。)

7、注意事项

  • 这个传感器资料上说可以读到小数位,可我怎么也读不出来哦?

答:DHT11无小数部分,读回数据只有低8位有效,且是整数,低8位的最高位表示负号。

  • 温度和度湿的精度是否是一样的呢?

答:温度的精度是1%,湿度的精度达不到1%,只有正负5%。分辨率和精度是两回事。

8、相关资料下载

9、综合实验

传感器和模块/温湿度传感器dht11.txt · 最后更改: 2019/09/01 13:42 由 ultirobot