Arduino DHT11温湿度传感器使用实验

资料下载
链接:https://pan.baidu.com/s/1OfaxDexNl3Lwj1GnbxnQnw?pwd=lx88

1.1 介绍:

DHT11数字温度 - 湿度传感器是一种包含校准数字信号输出的复合传感器。它采用特殊的数字模块采集技术和湿度 - 温度传感器技术,确保高可靠性和出色的长期稳定性。传感器由电阻式湿度元件和NTC温度测量元件组成 。 DHT11通过单总线与微处理器通信。 它只需要一个线程,一次发送40个数据 。
数据格式: 8位湿度整数数据+ 8位湿度十进制数据+ 8位温度整数数据+ 8位温度十进制数据+ 8位奇偶校验位。
数据发送过程:主控发送启动信号 - > DHT响应信号 - > DHT通知主控它已准备好接受信号 - > DHT发送准备好的数据 - > DHT结束信号 - > DHT内部重新测试环境温度和湿度,记录下一个数据 从主控开始发出信号。
通过该过程获得,每次收集的数据主控始终是最后一次DHT数据。如果我们想获得实时数据,那么主控可以收集两个连续的数据,但是,正式地,不建议连续多次读取DHT。如果每次读取的间隔时间超过5秒,则足以获得准确的数据。DHT在通电时需要1秒才能稳定。

1.2 模块相关资料:

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

1.3 实验组件:

在这里插入图片描述

1.4模块接线图:

在这里插入图片描述

1.5 实验代码:

                                                                         
/*
 DHT11温湿度传感器
https://sourl.cn/YAFGac
*/
#include <dht11.h>
dht11 DHT;
#define DHT11_PIN 6   
void setup(){
  Serial.begin(9600);
  Serial.println("DHT TEST PROGRAM ");
  Serial.print("LIBRARY VERSION: ");
  Serial.println(DHT11LIB_VERSION);
  Serial.println();
  Serial.println("Type,\tstatus,\tHumidity (%),\tTemperature (C)");
}  
void loop(){
  int chk;
  Serial.print("DHT11, \t");
  chk = DHT.read(DHT11_PIN);    // READ DATA
  switch (chk){
    case DHTLIB_OK:  
                Serial.print("OK,\t"); 
                break;
case DHTLIB_ERROR_CHECKSUM: 
                Serial.print("Checksum error,\t"); 
                break;
    case DHTLIB_ERROR_TIMEOUT: 
                Serial.print("Time out error,\t"); 
                break;
    default: 
                Serial.print("Unknown error,\t"); 
                break;
  }
 // DISPLAT DATA
  Serial.print(DHT.humidity,1);
  Serial.print(",\t");
  Serial.println(DHT.temperature,1);  
  delay(1000);
}

程序编译前需要导入库文件,否则编译不通过,具体操作参考资料的第四小节:库文件的添加(若前面已添加,无需重复)

1.6实验结果:

按照上图接好线,烧录好代码,上电后,通电后,我们可在软件串口监视器中看到当前环境温度值和湿度值,如下图。
在这里插入图片描述

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
湿度传感器DHT是一种常用的数字式湿度传感器,它可以通过数字信号将度和湿度数据传给单片机进行处理。下面是一个基于Arduino的DHT实验,你可以根据实际情况进行修改: 材料清单: - Arduino UNO开发板 - DHT11或DHT22湿度传感器 - 杜邦线若干 连接方式: 将DHT传感器与Arduino开发板连接: - VCC连接到5V电源 - GND连接到GND - DATA连接到数字口2 代码如下: ``` #include <DHT.h> //引入DHT库 #define DHTPIN 2 //定义DHT11数据引脚 #define DHTTYPE DHT11 //定义传感器型号 DHT dht(DHTPIN, DHTTYPE); //创建DHT对象 void setup() { Serial.begin(9600); //串口通信初始化 dht.begin(); //DHT传感器初始化 } void loop() { delay(2000); //延时2秒 float h = dht.readHumidity(); //读取湿度值 float t = dht.readTemperature(); //读取度值 Serial.print("Humidity: "); //打印湿度值 Serial.print(h); Serial.print(" %\t"); Serial.print("Temperature: "); //打印度值 Serial.print(t); Serial.println(" *C"); } ``` 上述代码中,首先引入DHT库,然后定义了DHT11传感器数据引脚和传感器型号。在setup函数中,初始化串口通信和DHT传感器。在loop函数中,读取湿度数据并通过串口打印出来,然后延时2秒后再次读取。 注意:DHT11和DHT22的读取方式略有不同,需要根据具体型号进行修改。同时,在连接DHT传感器和Arduino开发板时,需要注意接线的正确性,防止短路或其他故障。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

千年糊涂

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值