DHT11----DHT库的使用

一.硬件介绍:

1.图片:

在这里插入图片描述
在这里插入图片描述

2.引脚定义:

  • VCC:3~5.5V
  • DATE:串行数据,单总线
  • GND :接地,电源负极

3.串行接口 (单线双向):

DATA 用于微处理器与 DHT11之间的通讯和同步,采用单总线数据格式,一次通讯时间4ms左右,数据分小数部分和整数部分,具体格式在下面说明,当前小数部分用于以后扩展,现读出为零.操作流程如下:
一次完整的数据传输为40bit,高位先出。
数据格式:8bit湿度整数数据+8bit湿度小数数据+8bi温度整数数据+8bit温度小数数据+8bit校验和数据传送正确时校验和数据等于“8bit湿度整数数据+8bit湿度小数数据+8bi温度整数数据+8bit温度小数数据”所得结果的末8位。
用户MCU发送一次开始信号后,DHT11从低功耗模式转换到高速模式,等待主机开始信号结束后,DHT11发送响应信号,送出40bit的数据,并触发一次信号采集,用户可选择读取部分数据.从模式下,DHT11接收到开始信号触发一次温湿度采集,如果没有接收到主机发送开始信号,DHT11不会主动进行温湿度采集.采集数据后转换到低速模式。
如果想更多了解单总线协议传送门

二.程序介绍:

1.由于DHT库函数比较简单,因此笔者就不再介绍库函数了,直接上代码。

#include <DHT.h>


#define DHTPIN 10 //定义针脚

#define DHTTYPE DHT11 //定义类型,DHT11或者其它
//进行初始设置 
DHT dht(DHTPIN, DHTTYPE);

void setup() {
  Serial.begin(9600);
  dht.begin(); //DHT开始工作
}

void loop() {
  // 两次检测之间,要等几秒钟。
  delay(2000);
  
  float h = dht.readHumidity();//读湿度
  float t = dht.readTemperature();//读温度,默认为摄氏度
  Serial.print("Humidity: ");//湿度
  Serial.print(h);
  Serial.println(" %");
  Serial.print("Temperature: ");//温度
  Serial.print(t);
  Serial.println(" ℃ ");
}

2.效果显示:

在这里插入图片描述

三.项目实践:

1.温湿度显示仪

根据我们前一章LCD1602显示屏的学习内容传送门再结合DHT11模块的学习内容我们就可以动手摆了

2.代码展示

#include <LiquidCrystal.h>
#include <DHT.h>
#define DHTPIN 10
#define DHTTYPE DHT11 
DHT dht(DHTPIN, DHTTYPE);

const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);

void setup() { 
 Serial.begin(9600); 
 lcd.begin(16, 2);
 dht.begin();
 
}

void loop() {
 delay(2000);
float h = dht.readHumidity();//读湿度
float t = dht.readTemperature();//读温度,默认为摄氏度
 
  lcd.setCursor(0,0);
  lcd.print("Hum: ");//湿度
  lcd.print((int)h);
  lcd.print(" C");
  
  
  lcd.setCursor(0,1);
  lcd.print("Tem: ");//温度
  lcd.print((int)t);
  lcd.print(" %");
 

图片笔者这里就不这里就不展示了。
不知道为什么LCD屏幕老是乱码,哈。😟😟😟
求教一下,😍😍😍。

  • 1
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值