📜  dht11 传感器 arduino (1)

📅  最后修改于: 2023-12-03 15:30:27.064000             🧑  作者: Mango

DHT11传感器 Arduino

DHT11传感器是一种数字温度湿度传感器,可以与Arduino等单片机进行连接,常用于气象、温控等方面。

背景知识

在阅读本文之前,你需要了解以下内容:

  • 基本的Arduino编程知识
  • 传感器的基本工作原理
  • 数字信号与模拟信号的区别
功能介绍

DHT11传感器可以测量环境的温度和湿度,并将其转换为数字信号输出。它具有以下特点:

  • 低成本,易获取
  • 简单易用,只需三个引脚就能实现连接
  • 数字信号输出,抗干扰性能好
  • 测量范围:温度0-50°C,湿度20-90%RH
硬件连接

DHT11传感器需要连接到Arduino的GPIO引脚上。连接方式如下:

  • 连接DHT11的VCC引脚到Arduino的5V引脚上
  • 连接DHT11的GND引脚到Arduino的GND引脚上
  • 连接DHT11的DATA引脚到Arduino的任意数字IO口上

连接方式如下图所示:

DHT11连接方式

软件编程

在开始编写代码之前,你需要下载并安装DHT库。可以通过Arduino IDE自带的库管理器进行下载。在IDE的菜单中选择“工具”->“开发板”->“库管理器”,然后搜索“DHT”进行下载安装。

代码片段如下:

#include <DHT.h>

#define DHTPIN 2 // DATA引脚连接到Arduino的2号引脚
#define DHTTYPE DHT11 // 定义传感器类型为DHT11

DHT dht(DHTPIN, DHTTYPE); // 创建一个DHT对象

void setup() {
  Serial.begin(9600); // 初始化串口通信
  dht.begin(); // 初始化DHT对象
}

void loop() {
  float temperature = dht.readTemperature(); // 读取温度
  float humidity = dht.readHumidity(); // 读取湿度

  Serial.print("Temperature: ");
  Serial.print(temperature);
  Serial.print(" °C");
  Serial.print(" Humidity: ");
  Serial.print(humidity);
  Serial.print(" %");

  delay(2000); // 延时2秒
}

代码说明:

  1. 首先引入DHT头文件。
  2. 定义DATA引脚的编号和传感器的类型。
  3. 创建一个DHT对象。
  4. setup()函数中初始化串口通信,初始化DHT对象。
  5. loop()函数中读取温湿度数据,并通过串口输出到电脑端。
  6. 最后加入延时操作。
注意事项
  • 数据线的长度不能超过20米,否则会影响数据的稳定性。
  • 在读取数据前,需要让DHT传感器先进行预热,一般需要1-2秒的时间。
  • DHT传感器不能直接浸泡在水中或者遇到强酸、强碱等有害物质,否则会损坏传感器。
  • 在DHT库中有多个版本,不同版本功能略有差异,需要注意选择。
结论

通过学习本文,你应该掌握了DHT11传感器的基本原理、连接方式和使用方法,以及注意事项。在实际项目中,可以根据需求选择合适的温湿度传感器,并进行适当的优化和改进。