DHT11解析

一、DHT11工作原理

1、获取数据

DHT11包括一个电阻式感湿元件和一个NTC测温元件。这两个获取温湿度数据的方式都差不多,利用湿(温)敏元件的电气特性(如电阻值),随湿(温)度的变化而变化的原理进行湿(温)度测量。

2、数据发送

在这里插入图片描述
数据格式:8bit湿度整数数据+8bit湿度小数数据+8bi温度整数数据+8bit温度小数数据+8bit校验位

总线空闲状态为高电平,主机把总线拉低等待DHT11响应,主机把总线拉低必须大于18毫秒,保证DHT11能检测到起始信号。DHT11接收到主机的开始信号后,等待主机开始信号结束,然后发送80us低电平响应信号。主机发送开始信号结束后,延时等待20-40us后,读取DHT11的响应信号,主机发送开始信号后,可以切换到输入模式,或者输出高电平均可,总线由上拉电阻拉高。

二、引脚说明

在这里插入图片描述
在这里插入图片描述
Arduino与DHT11连线:
VDD——3.3v
DATA——数字接口0~13
GND——GND

三、Arduino+DHT11

Arduino库文件

#include "DHT.h"
#define DHTPIN 10 	 	//定义引脚
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);	

void setup() {
  Serial.begin(9600);		//波特率设置
  Serial.println("DHT11 test!");
  dht.begin();		//DHT初始化
}

void loop() {
  delay(2000);
  float h = dht.readHumidity();		//读取湿度
  float t = dht.readTemperature();			//读取温度
  float f = dht.readTemperature(true);		//判断是否读取到了温度
  if (isnan(h) || isnan(t) || isnan(f)) {
    Serial.println("Failed to read from DHT sensor!");
    return;
  }
  Serial.print("Humidity: ");
  Serial.print(h);
  Serial.print(" %\t");
  Serial.print("Temperature: ");
  Serial.print(t);
}
  • 8
    点赞
  • 62
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值