Steuerung der DHT11-LCD-Anzeige mit I2C-Schnittstelle

DHT11-LCD-Anzeige:

Das LCD ist eine wunderbare Möglichkeit um kurze Text- und Zahlenfolgen anzuzeigen. Hier wird das LCD genutzt, um die Umgebungstemperatur und die Luftfeuchtigkeit einfach zu visualisieren. Um viel Programmierarbeit zu sparen, kann man einfach ein paar Libraries hinzufügen.

 

///////////////////////////////////*DEFINITIONEN*///////////////////////////////////
  /*LCD*/
#include <Wire.h> //Wire Bibliothek wird eingebunden
#include <LiquidCrystal_I2C.h> //LiquidCrystal_I2C Bibliothek wird eingebunden
LiquidCrystal_I2C lcd(0x3F, 16, 2); //Display wird definiert. lcd(HEX-Adresse, Zeichen, Zeilen). (0x3F und 0x27 sind die häufigsten Adressen) 

  /*DHT 11*/
#include <DHT.h> //DHT11-Bibliothek wird eingebunden

#define DHTPIN 13 //Der DHT11 wird am Pin13 angeschlossen
#define DHTTYPE DHT11 //Hier wird angegeben, dass der verwendete DHT ein DHT11 ist

DHT dht(DHTPIN, DHTTYPE); //Der DHT wird initialisiert

int temp = 0; //Zu Beginn wird die Variable hum auf 0 gesetzt
int hum = 0; //Zu Beginn wird die Variable temp auf 0 gesetzt

///////////////////////////////////*SETUP*///////////////////////////////////
void setup() {
  /*LCD*/
  lcd.init(); //LCD starten
  lcd.backlight(); //Hier wird die Hintergrundbeleuchtung eingeschalten (lcd.noBacklight(); schaltet die Beleuchtung aus)

  /*DHT11*/
  dht.begin(); //Startet den DHT
}

///////////////////////////////////*LOOP*///////////////////////////////////
void loop() {
  /*DHT 11*/
  hum = dht.readHumidity(); //Hier wird die Luftfeuchtigkeit aus der Datenmatrix in die Variable hum abgespeichert
  temp = dht.readTemperature(); //Hier wird die Temperatur aus der Datenmatrix in die Variable temp abgespeichert
  
  /*LCD*/
  lcd.setCursor(0, 0); //Position des Cursors wird gesetzt (oben links)
  lcd.print("Temp = "); //Der Text wird ausgehend von der Cursorposition geschrieben usw.
  lcd.print(temp);
  lcd.print(" 'C");
  lcd.setCursor(0, 1); //Position des Cursors wird gesetzt (unten links)  
  lcd.print("Humidity = "); //Der Text wird ausgehend von der Cursorposition geschrieben usw.
  lcd.print(hum);
  lcd.print(" %");
  
}