SKU:RB-02S014A DHT11温湿度传感器
目录 |
产品概述
此款新推出的DHT11温湿度传感器数据接口采用防插反插头,接口两侧分别有字母“D”代表信号类型为数字信号,和 “温度”标识代表传感器类型,传感器特设4颗M3固定安装孔,调节方向与固定方便易用,美观大方。此款传感器是一款含有已校准数字信号输出的温湿度复合传感器。它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性与卓越的长期稳定性。传感器包括一个电阻式感湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接。因此该产品具有品质卓越、超快响应、抗干扰能力强、性价比极高等优点。每个DHT11传感器都在极为精确的湿度校验室中进行校准。校准系数以程序的形式储存在OTP内存中,传感器内部在检测信号的处理过程中要调用这些校准系数。单线制串行接口,使系统集成变得简易快捷。超小的体积、极低的功耗,信号传输距离可达20米以上,使其成为各类应用甚至最为苛刻的应用场合的最佳选则。DHT11数字温湿度传感器模块为3针PH2.0封装,连接方便。
规格参数
- 工作电压:3.3V - 5V
- 接口类型:KF2510 - 3P
- 信号类型:数字信号
- 供电电流:最大2.5mA
- 温度范围:0-50℃±2℃
- 湿度范围:当环境温度在 0 ℃时为30 - 90%RH;当环境温度在25℃时为20 - 90%RH ;当环境温度在50℃时为20 - 80%RH
- 响应时间:1/e(63%) 6-30s
- 测量分辨率分别为:温度(8bit)湿度(8bit)
- 采样周期间隔:<1s
- 尺寸大小:38mm x 25mm
- 重量大小:3g
模块参数
接口定义
- S:输出信号
- +:电源(VCC)
- -:地(GND)
使用方法
工作原理
DHT11 数字温湿度传感器是一种集温度、湿度一体的复合传感器,它能把温度和湿度物理测量通过温、湿度敏感元件和相应电路转换成方便计算机或者数据采集设备直接读取的数字量,DHT11由电阻式感湿器件和NTC系数感温器件构成,具有校准数字信号输出功能,采用单总线串行接口,输出数据一共5个字节,分别表示:湿度整数位、湿度小数位、温度整数位、温度小数位及校验和,其中校验和为湿度与温度之和的最低8位数据。
编程原理
DHT11数字温度传感器模块共引出3个引脚,从上到下分别是地线GND、电源Vcc和数据线S。实际应用时,将S端接在Arduino UNO的一个数字输入接口,接线方法如接线图所示。DHT11数字温湿度传感器使用一根信号线传输数据,读取步骤如下:
- 将引脚 D8 设置为输出模式,同时将引脚置为低电平(LOW),持续时间超过18ms以上;
- 再将引脚 D8 设置为高电平(HIGH),持续时间40us;
- 再将引脚 D8 设置为输入(读取)模式,判定读到低电平(LOW)后,延时80us,再判定读到高电平(HIGH)后,延时 80us,以上工作完成后开始接受数据;
- 数据总共有5个字节,忽略校验位,有四位是有效数据。第0字节是湿度的整数位,第1字节是湿度的小数位,第2字节是温度的整数位,第3字节是温度的小数位。
连接示意图
例子程序
int dht11 = 8;//定义DHT11连接到数字引脚8 byte dat [5];//设置5个字节的数组 byte read_data() { byte data; for (int i=0;i<8;i++) { if(digitalRead(dht11) == LOW) { while(digitalRead(dht11) == LOW);//等待50us delayMicroseconds(30);//判断高电平的持续时间,以判断数据是0还是1 if(digitalRead(dht11) == HIGH) data |=(1<<(7-i));//高位在前,低位在后 while(digitalRead(dht11) == HIGH);//如果数据是1,等待下一位的接收 } } return data; } void start_test() { digitalWrite(dht11,LOW);//拉低总线,发开始信号 delay(30);//延时需要大于18ms digitalWrite(dht11,HIGH);//开始信号 delayMicroseconds(40);//等待DHT11响应 pinMode(dht11,INPUT);//改为输入模式 while(digitalRead(dht11) == HIGH); delayMicroseconds(80);//DHT11发出响应,拉高总线80us if(digitalRead(dht11) == LOW); delayMicroseconds(80);//拉低总线80us后开始发送数据 for(int i=0;i<4;i++)//接收温湿度数据,校验位不考虑 dat[i] = read_data(); pinMode(dht11,OUTPUT);//改为输出模式 digitalWrite(dht11,HIGH);//发送完一次数据后释放总线,等待主机 //下一次的信号开始 } void setup() { Serial.begin(9600); pinMode(dht11,OUTPUT); } void loop() { start_test(); Serial.print("Current humdity = "); Serial.print(dat[0],DEC);//显示湿度的整数位 Serial.print('.'); Serial.print(dat[1],DEC);//显示湿度的小数位 Serial.println('%'); Serial.print("Current temperature = "); Serial.print(dat[2],DEC);//显示温度的整数位 Serial.print('.'); Serial.print(dat[3],DEC);//显示温度的小数位 Serial.println('C'); delay(700); }
程序效果
将例程上传到Arduino控制器中,并按照接线图正确进行接线,通过Arduino的串口监视器可以观察到当前环境下的温度和湿度值,实验效果如下图所示:
应用视频
产品相关推荐
产品购买地址
周边产品推荐
Carduino UNO R3 控制器
Starduino 控制器
LM35 线性温度传感器
DS18B20 数字温度传感器