Temperatur- und Feuchtigkeitsmesser am Arduino-Controller mit Anzeige der Werte auf dem LCD-Display

Vor kurzem habe ich begonnen, die Programmierung des Arduino-Mikrocontrollers zu studieren. Nachdem ich einige grundlegende Übungen abgeschlossen hatte (blinkende LEDs, Arbeiten mit diskreten und analogen Eingängen, Anzeigen von Informationen auf einem LCD-Display usw.), wollte ich ein nützliches Gerät für zu Hause entwickeln.

Ich entschied mich für ein Temperatur- und Feuchtigkeitsmessgerät im Raum mit einer Anzeige der Parameter auf dem LCD. Ich habe auch eine adaptive Hintergrundbeleuchtung für das Display erstellt, die die Helligkeit je nach Beleuchtungsstärke im Raum ändert. Auf diese Weise können Sie den Stromverbrauch des Geräts reduzieren und dadurch die Akkulaufzeit verlängern.

Im Projekt habe ich die folgenden Komponenten verwendet:

1. Arduino Uno-

Bild

Karte 2. LCD1602-Anzeige mit I2C-Protokollunterstützungsmodul. Um die Anzahl der Drähte zu reduzieren und den Anschluss des Displays zu vereinfachen, habe ich beschlossen, es über das I2C-Protokoll anzuschließen. Dazu habe ich ein spezielles Konvertermodul an das LCD-Display gelötet.

"

3. Temperatur- und Feuchtigkeitssensor DHT11. Hiermit können Sie die Luftfeuchtigkeit zwischen 20 und 80% und die Temperatur zwischen 0 und 50 ° C bestimmen. Der Sensor verfügt über 4 Ausgänge, es werden jedoch nur 3 verwendet. Zwischen dem Leistungsausgang und dem Datenausgang muss ein 10-kΩ-Widerstand installiert werden. I. Ich habe einen vorgefertigten Sensor verwendet, der mit einem angeschlossenen Widerstand auf der Platine montiert ist, damit Sie ihn sicher an die Arduino-Platine anschließen können.

"

4. Fotowiderstand. Es ist über einen 10kΩ-Widerstand mit einem Pull-up auf GND mit der Arduino-Platine verbunden.



Das Anschlussdiagramm lautet wie folgt: Der



Fotowiderstand ist mit dem Analogeingang A0 der Arduino-Karte verbunden. Die DHT11-Sensordatenleitung ist mit dem diskreten Pin 2 verbunden, der Power-Pin ist mit + 5V Arduino verbunden, der GND-Pin ist mit der Masse der Arduino-Platine verbunden. Das LCD-Display ist mit der Platine verbunden, der SDA-Pin ist mit A4 verbunden, der SCL-Pin ist mit A5 verbunden. Die Steuerleitung für die Hintergrundbeleuchtung ist an Pin 9 angeschlossen, an dem das PWM-Signal erzeugt wird.

Unten ist der Quellcode:

#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);

}


Nachdem wir diesen Code kompiliert haben, erhalten wir ein so funktionierendes Gerät:



In Zukunft plane ich, einige interessantere und komplexere Geräte auf Arduino zu entwickeln.

Ich habe auch ein Video gemacht, in dem ich gezeigt habe, wie das Gerät funktioniert:


All Articles