Arduino温控风扇

本篇文章,主要介绍如何使用DHT22温湿度传感器和继电器制作一款Arduino温控风扇。使用DHT22传感器获取温度值,然后将在LCD显示屏上显示此温度值。我们将检查温度值是否大于26,如果温度大于26,则启动继电器,风扇将开始旋转。

所需的硬件
● Arduino Uno 开发板
Arduino温控风扇_第1张图片
● DHT22 温湿度传感器
Arduino温控风扇_第2张图片
● LCD1602 显示屏
Arduino温控风扇_第3张图片
● 继电器
Arduino温控风扇_第4张图片
● 9V电池 //其他电池也可以
Arduino温控风扇_第5张图片
● 1K电阻
Arduino温控风扇_第6张图片
● 直流电机
Arduino温控风扇_第7张图片
● 小风扇
Arduino温控风扇_第8张图片
● 面包板
Arduino温控风扇_第9张图片
● 若干条连接导线
Arduino温控风扇_第10张图片

LCD1602 显示屏,连接如下:
● 将 “LCD1602 显示屏” 的 “VSS 引脚” 连接到 “Arduino Uno 开发板” 的 “GND 引脚” ;
● 将 “VDD 引脚” 连接到 “Arduino Uno 开发板” 的 “VCC(5v) 引脚” ;
● 将 “V0 引脚” 接 “1K电阻” 到 “GND (或者接电位器) 引脚” ;
● 将 “RS 引脚” 连接到 “Arduino Uno 开发板” 的 “引脚 12” ;
● 将 “R / W 引脚” 连接到 “Arduino Uno 开发板” 的 “GND 引脚”。此时, “LCD1602 显示屏” 处于读取状态;
● 将 “E(使能) 引脚” 连接到 “Arduino Uno 开发板” 的 “引脚 11” ;
● 将 “D4-D7 引脚” 分别连接到 “Arduino Uno 开发板” 的 “引脚10,9,8,7 引脚” ;
● 将 “A 引脚” 接 “1K电阻” 到 “VCC(5v) 引脚” ;
● 将 “K 引脚” 接 “GND 引脚” 。

然后将继电器模块 relayPin 连接到 Arduino Uno 开发板 。在继电器模块的输入端,连接如下:
● 将继电器模块的 “VCC 引脚” 连接到 “Arduino Uno 开发板” 的 “5V 引脚 " ;
● 将继电器模块的 “IN 引脚” 连接到 “Arduino Uno 开发板”的 “引脚 3” ;
● 将继电器模块的 “GND 引脚” 连接到 “Arduino Uno 开发板” 的 “GND 引脚”。

最后,按照以下方式连接DHT22温湿度传感器:
● 将 “DHT22” 的 “引脚 1(即VCC引脚)” 连接到 “Arduino Uno 开发板” 的 “5V 引脚” 。
● 将 “DHT22” 的 “引脚 2(数据引脚)” 连接到 “Arduino Uno 开发板” 的 “引脚 2” 。
● 将 “DHT22” 的 “引脚 3(数据引脚)” 置空。
● 将 “DHT22” 的 “引脚 4(接地引脚)” 连接到 “Arduino Uno 开发板” 的 “GND 引脚” 。
成品展示
Arduino温控风扇_第11张图片Arduino温控风扇_第12张图片
源码

#define DHT11PIN 2        //定义温湿度针脚号为2号引脚
dht11 DHT11;  
LiquidCrystal lcd(12, 11, 10, 9, 8, 7);        //设置接口
int incomedate = 0;
int relayPin = 3;         //继电器引脚
void setup()
{
  Serial.begin(9600);        //连接到电脑串口监视器
  pinMode(relayPin, OUTPUT);        //继电器输出模式
  pinMode(DHT11PIN,OUTPUT);        //温湿度模块输出模式
  lcd.begin(16,2);
  lcd.clear();        //清屏
  delay(1000);        //延时1000ms
}

void loop ()
{ 
   int chk = DHT11.read(DHT11PIN);        //将读取到的值赋给chk
int tem=(float)DHT11.temperature;        //将温度值赋值给tem
int hum=(float)DHT11.humidity;  
Serial.print("Humidity:");        //打印出Humidity:
Serial.print(hum);  
Serial.print("Tempeature:");
     Serial.print(tem);        //使屏幕显示文字//打印出湿度结果
Serial.println("%");    
delay(200);
     lcd.setCursor(0, 0) ;        //设置光标位置为第1行第1个位置
     lcd.print("Tempeature:");
      lcd.print(tem);        //使屏幕显示温度
     lcd.setCursor(0, 1) ;
     lcd.print("Humidity:");      
     lcd.print(hum);        //使屏幕显示湿度
   
    if (tem >26)        //如果温度大于26摄氏度
    {
      digitalWrite(relayPin, LOW);        //继电器开,风扇开
      Serial.println(" OPEN!");
    } else
    {
      digitalWrite(relayPin,HIGH);
      Serial.println("CLOSE!");
    }
    delay(500);        //延时0.1秒,这里也就是刷新速度。 
  }

注意:
此程序需要引用两个 “库文件” ,分别为:

//直接在Arduino编译软件中添加
Arduino温控风扇_第13张图片
//需要在Arduino编译软件中另外增加库文件
链接: https://pan.baidu.com/s/1wHXLNhYdRS_h3CqHphllbw
提取码: 7vhi
Arduino温控风扇_第14张图片Arduino温控风扇_第15张图片Arduino温控风扇_第16张图片
运行代码

#include 
#include 

#define DHT11PIN 2        //定义温湿度针脚号为2号引脚
dht11 DHT11;  
LiquidCrystal lcd(12, 11, 10, 9, 8, 7);        //设置接口
int incomedate = 0;
int relayPin = 3;         //继电器引脚
void setup()
{
  Serial.begin(9600);        //连接到电脑串口监视器
  pinMode(relayPin, OUTPUT);        //继电器输出模式
  pinMode(DHT11PIN,OUTPUT);        //温湿度模块输出模式
  lcd.begin(16,2);
  lcd.clear();        //清屏
  delay(1000);        //延时1000ms
}

void loop ()
{ 
   int chk = DHT11.read(DHT11PIN);        //将读取到的值赋给chk
int tem=(float)DHT11.temperature;        //将温度值赋值给tem
int hum=(float)DHT11.humidity;  
Serial.print("Humidity:");        //打印出Humidity:
Serial.print(hum);  
Serial.print("Tempeature:");
     Serial.print(tem);        //使屏幕显示文字//打印出湿度结果
Serial.println("%");    
delay(200);
     lcd.setCursor(0, 0) ;        //设置光标位置为第1行第1个位置
     lcd.print("Tempeature:");
      lcd.print(tem);        //使屏幕显示温度
     lcd.setCursor(0, 1) ;
     lcd.print("Humidity:");      
     lcd.print(hum);        //使屏幕显示湿度
   
    if (tem >26)        //如果温度大于26摄氏度
    {
      digitalWrite(relayPin, LOW);        //继电器开,风扇开
      Serial.println(" OPEN!");
    } else
    {
      digitalWrite(relayPin,HIGH);
      Serial.println("CLOSE!");
    }
    delay(500);        //延时0.1秒,这里也就是刷新速度。 
  }

编译完成
Arduino温控风扇_第17张图片

你可能感兴趣的:(Arduino,Arduino,温控风扇)