下面我将介绍DHT11模块的相关用法
DHT11数字传感器概述:是一款含有已校准数字信号输出的温湿度复合传感器 。它应用专用的数字模块采集技术和温湿度传感技术 ,确保产品具有极 高的可靠性与卓越的长期稳定性。
技术参数
供电电压: 3.3~5.5V DC
输 出: 单总线数字信号
测量范围: 湿度20-90%RH, 温度0~50℃
测量精度: 湿度+-5%RH, 温度+-2℃
分 辨 率: 湿度1%RH, 温度1℃
互 换 性: 可完全互换 ,
长期稳定性: <±1%RH/年
串行接口(单线双向)
DATA 用于微处理器与 DHT11之间的通讯和同步,采用单总线数据格式,一次
通讯时间4ms左右,数据分小数部分和整数部分,具体格式在下面说明,当前小数
部分用于以后扩展,现读出为零.操作流程如下:
一次完整的数据传输为40bit,高位先出。
数据格式:8bit湿度整数数据
+8bit湿度小数数据
+8bi温度整数数据+8bit温度小数数据+8bit校验和
数据传送正确时校验和数据等于“8bit湿度整数数据+8bit湿度小数数据
+8bi温度整数数据+8bit温度小数数据”所得结果的末8位。
用户MCU发送一次开始信号后,DHT11从低功耗模式转换到高速模式,等待主
机开始信号结束后,DHT11发送响应信号,送出40bit的数据,并触发一次信号采集,
用户可选择读取部分数据.从模式下,DHT11接收到开始信号触发一次温湿度采集,
如果没有接收到主机发送开始信号,DHT11不会主动进行温湿度采集.采集数据后
转换到低速模式。
接线:
#include <dht11.h> //引用dht11库文件,使得下面可以调用相关参数
#define DHT11PIN 2 //定义温湿度针脚号为2号引脚dht11 DHT11; //实例化一个对象void setup() { //设置
Serial.begin(9600); //设置波特率参数
pinMode(DHT11PIN,OUTPUT); //定义输出口}void loop() { //循环
int chk = DHT11.read(DHT11PIN); //将读取到的值赋给chkint tem=(float)DHT11.temperature; //将温度值赋值给tem int hum=(float)DHT11.humidity; //将湿度值赋给hum Serial.print("Tempeature:"); //打印出Tempeature: Serial.println(tem); //打印温度结果
Serial.print("Humidity:"); //打印出Humidity:
Serial.print(hum); //打印出湿度结果 Serial.println("%"); //打印出%delay(1000); //延时一段时间
}