如何基于Arduino制作DHT22控制的风扇

在本文中,我们将了解如何制作Arduino温度控制风扇,项目会使用到DHT22温湿度传感器和继电器,通过DHT22传感器获取温度值,并将此温度值显示在LCD上,然后程序检查温度值是否大于35度,如果满足,继电器就会被激活,风扇就会开始转动。

硬件部分

基于Arduino制作温控风扇

首先将LCD1602模块与Arduino连接起来:深入了解LCD1602模块

  1. 连接LCD1602模块的VSS针脚到Arduino的GND;
  2. 连接LCD1602模块的VDD引脚到Arduino的5V;
  3. 将LCD1602模块的V0引脚连接到10K电位器的中心引脚。将电位器的另外两个引脚连接到5V和地;
  4. 连接LCD1602模块的RS引脚到Arduino的引脚2;
  5. 连接LCD1602模块的R/W引脚到Arduino的地。LCD处于读取模式;
  6. 连接LCD1602模块的E(使能)引脚到Arduino的引脚3;
  7. 将LCD1602模块的D4-D7引脚连接到Arduino的引脚4,5,6,7;
  8. 通过220欧姆电阻将LED背光的正引脚15连接到5V;
  9. 连接LCD1602模块的引脚16,LED背光负到Arduino的地。

然后将继电器模块与Arduino连接。连接方法如下:深入了解继电器

  1. 连接继电器模块的VCC引脚到Arduino的5V引脚;
  2. 连接继电器模块的IN 引脚到Arduino的引脚 9;
  3. 连接继电器模块的GND 到Arduino的GND。

然后连接风扇,在继电器模块的输出端,将9V电池的负极连接到继电器模块的公共端(C),将继电器模块的NC连接到风扇的负极,最后连接电池的正极到风扇的正极。

最后,连接DHT22温湿度传感器:深入了解DHT22

  1. 将DHT22的引脚 1 (VCC 引脚)连接到Arduino的5V上;
  2. 将DHT22的引脚 2(data 引脚)连接到Arduino的引脚 8;
  3. 将DHT22的引脚4连接到Arduino的接地引脚。

程序代码解释

首先,程序包含了DHT22传感器和LCD的库。

#include "DHT.h"
#include "LiquidCrystal.h"

然后,初始化连接LCD1602模块和DHT22传感器的引脚。程序定义了DHT传感器的类型,使用的是DHT传感器。其他类型的DHT传感器可根据实际可用,如DHT11,所以在这里定义的类型是很重要的。

LiquidCrystal lcd(2, 3, 4, 5, 6, 7);
#define DHTPIN 8
#define DHTTYPE DHT22
DHT sensor(DHTPIN, DHTTYPE);

在setup函数中,我们命令DHT22和LCD1602与Arduino开始通信。然后将继电器引脚声明为输出引脚,我们用Arduino的电压激活继电器,继电器的工作电平与之相反(对继电器来说,高意味着低)。

lcd.begin(16,2);
sensor.begin();
pinMode(relay_pin, OUTPUT);
digitalWrite(relay_pin, HIGH);

在loop函数中,程序先清屏,然后再从传感器读取温度值。

lcd.clear();

float t = sensor.readTemperature(); //reading the temperature from the sensor

// Checking if the sensor is sending values or not

if (isnan(t)) {

    lcd.print("Failed");

    delay(1000);

    return;

}

然后把这个温度值显示在LCD上,如果温度值大于35,继电器就会被激活,风扇就会开始转动。

lcd.setCursor(0,0);

lcd.print("Temp: ");

lcd.print(t);
lcd.print(" C");

if (t > 35){

    digitalWrite(relay_pin, LOW);

    lcd.setCursor(0,1);

    lcd.print("Fan is ON ");

    delay(10);

}
标签: