DHT11温湿度传感器简介
DHT11是一款有已校准数字信号输出的温湿度传感器。 其精度湿度+-5%RH, 温度+-2℃,量程湿度20-90%RH, 温度0~50℃。
DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器,它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性和卓越的长期稳定性。传感器包括一个电阻式感湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接。因此该产品具有品质卓越、超快响应、抗干扰能力强、性价比极高等优点。每个DHT11传感器都在极为精确的湿度校验室中进行校准。校准系数以程序的形式存在OTP内存中,传感器内部在检测信号的处理过程中要调用这些校准系数。单线制串行接口,使系统集成变得简易快捷。超小的体积、极低的功耗,使其成为该类应用中,在苛刻应用场合的最佳选择。产品为4针单排引脚封装,连接方便。
DHT11温湿度传感器电气特性
温湿度传感器DHT11封装形式及接口说明
建议连接线长度短于20米时用5K上拉电阻,大于20米时根据实际情况使用合适的上拉电阻(若购买的是已集成的模块,模块上已加上拉电阻,以下请忽略),当然,如果你想要精简电路的话, STC增强型单片机自带的推挽输出功能不失为一个选择,其相当于外接了一个2k的上拉电阻,但在设计电路时需注意:整个单片机的电流推荐不超过55mA,即从MCU-VCC流入的电流不超过55mA,从MCU-GND流出的电流不超过55mA,整体流入、流出电流均不超过55mA,封装尺寸及典型应用电路图如下图所示。
DHT11温湿度传感器典型应用电路
DHT11温湿度传感器时序图
DHT11温湿度传感器连接图
如图所示,将DHT11的正极与5V电源接口相连,负极与GND相连,中间的数据接口与2号引脚相连。
代码
#include 《dht11.h》
dht11 DHT11;
#define DHT11PIN 2
void setup(){
Serial.begin(9600);
}
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);
delay(2000);
注意事项
1、代码中引用了#include 《dht11.h》,这个是操作DHT11的库文件,有了它,就可以轻松操作我们这个温湿度传感器了。但是引用这个库文件的操作步骤是:
(1)在网上找到并下载该库文件,包括一个头文件和一个.cpp文件。
(2)在arduinoIDE中点击菜单:程序–导入库–add library,然后选择你存放库文件的那个文件夹。
(3)在代码中引用#include 《dht11.h》,这样就可以使用了。
2、#define DHT11PIN 2,表示定义引脚2的名字为DHT11PIN ,注意这个定义语句后面没有分号。
原理分析
在硬件编程过程中,当你拿到一个器件,首先要了解他的引脚定义,这会告诉你这个东西应该怎么连接,在一个就是要看他的时序图,看了时序图你就知道主从设备之间进行数据采集过程中的代码应该怎么写,比如怎么启动,如何握手,怎么采集真正的数据等等。
在我们这个试验中,DHT11的时序图是这样的:
技术专区
- 低成本开发系统现在正处于物联网期望膨胀峰值期
- 因特尔Cyclone 10 LP FPGA评估板电路图集及PCB装配图
- 采用32位MCU系列对新型无磁水表设计
- 一个嵌入式或者X86的工业控制板上,少不了CAN口!
- 以MSP432主机微控制器的软件与硬件集成解决方案