Arduino - 湿度传感器

在本节中,我们将学习如何将 Arduino 板与不同的传感器连接起来。我们将讨论以下传感器 −

  • 湿度传感器 (DHT22)
  • 温度传感器 (LM35)
  • 水检测器传感器 (简单水触发器)
  • PIR 传感器
  • 超声波传感器
  • GPS

湿度传感器 (DHT22)

DHT-22(也称为 AM2302)是一种数字输出、相对湿度和温度传感器。它使用电容式湿度传感器和热敏电阻来测量周围的空气,并在数据引脚上发送数字信号。

在此示例中,您将学习如何将此传感器与 Arduino UNO 一起使用。室温和湿度将打印到串行监视器。

DHT-22 传感器

DHT-22 传感器

连接很简单。左侧的第一个引脚接 3-5V 电源,第二个引脚接数据输入引脚,最右边的引脚接地。

技术细节

  • 功率 − 3-5V

  • 最大电流 − 2.5mA

  • 湿度 − 0-100%,精度 2-5%

  • 温度 − 40 至 80°C,精度 ±0.5°C

所需组件

您将需要以下组件 −

  • 1 × 面包板
  • 1 × Arduino Uno R3
  • 1 × DHT22
  • 1 × 10K 欧姆电阻

步骤

按照电路图,将组件连接到面包板上,如下图所示。

湿度传感器电路连接

湿度传感器面包板

草图

在计算机上打开 Arduino IDE 软件。使用 Arduino 语言进行编码将控制您的电路。单击"新建"打开新的草图文件。

Sketch

Arduino 代码

// 各种 DHT 湿度/温度传感器的示例测试草图

#include "DHT.h"
#define DHTPIN 2 // what digital pin we're connected to
// 取消注释您正在使用的类型!
//#define DHTTYPE DHT11 // DHT 11
#define DHTTYPE DHT22 // DHT 22 (AM2302), AM2321
//#define DHTTYPE DHT21 // DHT 21 (AM2301)
// 将传感器的引脚 1(左侧)连接到 +5V
// 注意:如果使用具有 3.3V 逻辑的电路板(如 Arduino Due),请将引脚 1
// 连接到 3.3V 而不是 5V!
// 将传感器的引脚 2 连接到您的 DHTPIN
// 将传感器的引脚 4(右侧)连接到地面
// 将一个 10K 电阻从传感器的引脚 2(数据)连接到引脚 1(电源)
// 初始化 DHT 传感器。
// 请注意,此库的旧版本采用了可选的第三个参数来
// 调整时间以加快处理器的速度。此参数不再需要
// 因为当前 DHT 读取算法会自行调整以适应更快的处理速度。
DHT dht(DHTPIN, DHTTYPE);

void setup() {
   Serial.begin(9600);
   Serial.println("DHTxx test!");
   dht.begin();
}

void loop() {
    delay(2000); // 测量之间等待几秒钟
    float h = dht.readHumidity();
    // 读取温度或湿度大约需要 250 毫秒!
    float t = dht.readTemperature();
    // 将温度读取为摄氏度(默认值)
    float f = dht.readTemperature(true);
    // 将温度读取为华氏度(isFahrenheit = true)
    // 检查是否有任何读取失败并提前退出(重试)。
   if (isnan(h) || isnan(t) || isnan(f)) {
      Serial.println("Failed to read from DHT sensor!");
      return;
   }
   
    // 以华氏度计算热指数(默认值)
    float hif = dht.computeHeatIndex(f, h);
    // 以摄氏度计算热指数(isFahreheit = false)
    float hic = dht.computeHeatIndex(t, h, false);
    Serial.print ("Humidity: ");
    Serial.print (h);
    Serial.print (" %	");
    Serial.print ("Temperature: ");
    Serial.print (t);
    Serial.print (" *C ");
    Serial.print (f);
    Serial.print (" *F	");
    Serial.print ("Heat index: ");
    Serial.print (hic);
    Serial.print (" *C ");
    Serial.print (hif);
    Serial.println (" *F");
}

需要注意的代码

DHT22 传感器有四个端子(Vcc、DATA、NC、GND),它们按以下方式连接到电路板 −

  • DATA 引脚连接到 Arduino 引脚号 2
  • Vcc 引脚连接到 Arduino 电路板的 5 伏电压
  • GND 引脚连接到 Arduino 电路板的地线
  • 我们需要在 DATA 和 Vcc 引脚之间连接 10k 欧姆电阻(上拉电阻)

完成硬件连接后,您需要将 DHT22 库添加到 Arduino 库文件中,如前所述。

结果

您将在串行端口监视器上看到温度和湿度显示,每 2 秒更新一次。