Arduino控制器上的温湿度计,LCD显示屏上显示数值

最近,我开始研究Arduino微控制器的编程。完成一些基本练习(使LED闪烁,使用离散量和模拟量输入,在LCD显示器上显示信息等)之后,我想制造一些对家庭有用的设备。

我决定在房间里做一个温湿度计,并在LCD上指示参数。我还制作了自适应显示器背光灯,它可以根据房间的照明水平来改变亮度。这样可以减少设备的功耗,从而延长电池寿命。

在该项目中,我使用了以下组件:

1. Arduino Uno板

图片

2.带有I2C协议支持模块的LCD1602显示器。为了减少导线数量并简化显示器的连接,我决定通过I2C协议进行连接,为此,我将特殊的转换器模块焊接到了LCD显示器上。



3.温湿度传感器DHT11。它允许您确定20-80%的湿度和0-50°C的温度。该传感器有4个输出,但仅使用3个。在电源输出和数据输出之间必须安装10k欧姆的电阻。我使用了一个现成的传感器,该传感器安装在板上并连接了电阻,因此您可以安全地将其连接到Arduino板上。



4.光敏电阻。它通过一个10kΩ电阻通过上拉至GND的方式连接到Arduino板上。



连接图如下:



光敏电阻连接到Arduino板的模拟输入A0。 DHT11传感器数据线连接到离散引脚2,电源引脚分别连接到+ 5V Arduino,GND引脚连接到Arduino板的接地。 LCD显示器连接到板上电源,SDA引脚连接到A4,SCL引脚连接到A5。背光亮度控制线连接到引脚9,在引脚9上产生PWM信号。

下面是源代码:

#include "DHT.h"                  //      DHT11
#include "Wire.h"               
#include "LiquidCrystal_I2C.h"    //     LCD 

int LD;                           //  

#define DHTPIN 2                  // PIN    DHT11
#define LED 9                     // PIN   -
#define FOTO 0                    // PIN   

DHT dht(DHTPIN, DHT11);           //  DHT11
LiquidCrystal_I2C lcd(0x27,16,2); // 


void setup() {
 pinMode(LED, OUTPUT);            // PIN LED  
 
 dht.begin();                     //    
 
 lcd.init();                      // LCD 
 lcd.backlight();
}


int light(int svet)               //  
{                                 //    
  if (svet<25)                    //  -
  {
    return 255;
  }

  if(svet>1020)
  {
    return 2;
  }
  else
  {
    int L=(int)(-0.2*svet+261.262);
    return L;
  }
}


void loop() {
   int f = analogRead(FOTO);              //    
   LD=light(f);
   delay(2000);
   analogWrite(LED, LD);                  //   
   
   float h=dht.readHumidity();            //  
   float t=dht.readTemperature();         //  

    lcd.setCursor(0,0);                   //      
    lcd.print("Temp ");                   //  
    lcd.print(t);
    
    lcd.setCursor(0,1);                   //      
    lcd.print("Hum ");                    //  
    lcd.print(h);

}


编译



这段代码后,我们得到了一个这样的设备:将来我计划在Arduino上制造一些更有趣和更复杂的设备。

我还制作了一个视频,展示了该设备的工作原理:


All Articles