物联网——DHT11全套解析
程序员文章站
2022-03-16 13:48:15
一、DHT11工作原理1、获取数据DHT11包括一个电阻式感湿元件和一个NTC测温元件。这两个获取温湿度数据的方式都差不多,利用湿(温)敏元件的电气特性(如电阻值),随湿(温)度的变化而变化的原理进行湿(温)度测量。2、数据发送数据格式:8bit湿度整数数据+8bit湿度小数数据+8bi温度整数数据+8bit温度小数数据+8bit校验位总线空闲状态为高电平,主机把总线拉低等待DHT11响应,主机把总线拉低必须大于18毫秒,保证DHT11能检测到起始信号。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
#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);
}
本文地址:https://blog.csdn.net/qq_42852559/article/details/107613619