#include "LiquidCrystal_I2C.h"
#include "DHT.h"
//#include <DHT.h>
#define I2C_ADDR 0x27
#define LCD_COLUMNS 20
#define LCD_LINES 4
LiquidCrystal_I2C lcd(I2C_ADDR, LCD_COLUMNS, LCD_LINES);
#define dht_dpin 4
//#define DHTTYPE DHT11 // DHT 11
#define DHTTYPE DHT22
DHT dht(dht_dpin, DHTTYPE);
int SW1 = 8;
int SW2 = 12;
int SW3 = 13;
float Temperatur;
void setup() {
lcd.init();
lcd.backlight();
pinMode(dht_dpin, INPUT);
pinMode(13, OUTPUT);
pinMode(12, OUTPUT);
pinMode(8, OUTPUT);
dht.begin();
}
void loop()
{
Temperatur = dht.readTemperature() ;
int IntTemp = Temperatur;
switch (IntTemp) {
case 0 : {
digitalWrite(13, LOW);
digitalWrite(12, LOW);
digitalWrite(8, LOW);
lcd.setCursor(3, 0);
lcd.print("Heizung AUS");
lcd.setCursor(0, 1);
lcd.print("Modus1 - 5 bis 18 C");
lcd.setCursor(0, 2),
lcd.print("Modus2 - 19 bis 21 C"),
lcd.setCursor(0, 3);
lcd.print("Modus3 - 22 bis 24 C");
break;
}
case 5 ... 18 : {
digitalWrite(13, HIGH);
lcd.setCursor(3, 0);
lcd.print("Heizung AN");
lcd.setCursor(0, 1);
lcd.print("Temperatur: ");
lcd.print(Temperatur);
lcd.print(" C.");
lcd.setCursor(2, 2),
lcd.print("Heizungsbereich"),
lcd.setCursor(0, 3);
lcd.print("Maximum: 18 Grad");
break;
}
case 19 ... 21 :{
digitalWrite(12, HIGH);
lcd.setCursor(3, 0);
lcd.print("Heizung AN");
lcd.setCursor(0, 1);
lcd.print("Temperatur: ");
lcd.print(Temperatur);
lcd.print(" C.");
lcd.setCursor(2, 2),
lcd.print("Heizungsbereich"),
lcd.setCursor(0, 3);
lcd.print("Maximum: 21 Grad");
break;
}
case 22 ... 24 :{
digitalWrite(8, HIGH);
lcd.setCursor(3, 0);
lcd.print("Heizung AN");
lcd.setCursor(0, 1);
lcd.print("Temperatur: ");
lcd.print(Temperatur);
lcd.print(" C.");
lcd.setCursor(2, 2),
lcd.print("Heizungsbereich"),
lcd.setCursor(0, 3);
lcd.print("Maximum: 24 Grad");
break;
}
case 25 ... 35 :{
digitalWrite(8, LOW);
digitalWrite(12, LOW);
digitalWrite(13, LOW);
lcd.setCursor(3, 0);
lcd.print("Heizung AUS");
lcd.setCursor(2, 2),
lcd.print("Heizungsbereich"),
lcd.setCursor(2, 3);
lcd.print("Maximum erreicht");
break;
}
}
}