#include //Setup LCD #include LiquidCrystal_I2C lcd(0x3F,16,2); //0x3F = Adresse des Displays #include "Truhe.h" #include "Settings.h" #include "Webserver.h" static unsigned long last_lcd_time = 0; static unsigned long last_mess_time = 0; static unsigned long last_schalt_time = 0; void setup_lcd() { //LCD lcd.init(); lcd.backlight(); //Beleuchtung des Displays einschalten lcd.blink(); lcd.clear(); lcd.setCursor(0, 0); //...(Zeichen,Zeile); lcd.print("Init LCD"); lcd.setCursor(0, 1); lcd.print("abgeschlossen!"); Serial.println("Init LCD abgeschlossen!"); delay(SETUPTIMEOUT); } void setup() { Serial.begin(9600); Serial.println(); Serial.println(); setup_lcd(); lcd.clear(); preferences.begin("my-app", true); for (int i = 0; i < (sizeof(truhen) / sizeof(truhen[0])); i++) { truhen[i].setup( preferences.getString( String("t"+String(i)+"_name").c_str(), String(truhen[i].getName()) ), preferences.getInt( String("t"+String(i)+"_min").c_str(), uT ), preferences.getInt( String("t"+String(i)+"_max").c_str(), oT ) ); } preferences.end(); wdt_enable(WDTO_4S); // Watchdog auf 4 s stellen WifiSetup(); Serial.println("Setup fi"); } void loop() { if(millis() - last_mess_time >= MESS_REFRESH_INTERVAL || last_mess_time == 0) { //MESSINTERVALL last_mess_time = millis(); for (int i = 0; i < (sizeof(truhen) / sizeof(truhen[0])); i++) { truhen[i].mess(); } } //Serial.println("Schaltintervall: "+ String(millis() - last_schalt_time) + " " + String(SCHALT_REFRESH_INTERVAL)); if(millis() - last_schalt_time >= SCHALT_REFRESH_INTERVAL || last_schalt_time == 0) { //SCHALTINTERVALL Serial.println("SCHALTINTERVALL"); last_schalt_time = millis(); for (int i = 0; i < (sizeof(truhen) / sizeof(truhen[0])); i++) { truhen[i].schalt(); } } if(millis() - last_lcd_time >= LCD_REFRESH_INTERVAL || last_lcd_time == 0) { //LCD Update INTERVALL last_lcd_time = millis(); for (int i = 0; i < (sizeof(truhen) / sizeof(truhen[0])); i++) { //LCD-Anzeige lcd.setCursor(0, i); //...(Zeichen,Zeile); lcd.print(truhen[i].getName()); lcd.setCursor(8, i); lcd.print(" "); //Serial.println(sizeof(String(truhen[i].getCurTemp()))/2); lcd.setCursor(11 - sizeof(String(truhen[i].getCurTemp()))/2, i); lcd.setCursor(8, i); lcd.print(String(truhen[i].getCurTemp())); lcd.setCursor(11, i); lcd.print("\337"); lcd.setCursor(13, i); if (truhen[i].getStat() == -1) { lcd.print("-"); } else if (truhen[i].getStat() == 1) { lcd.print("I"); } else if (truhen[i].getStat() == 0) { lcd.print("O"); } else if (truhen[i].getStat() == 2) { lcd.setCursor(8, i); lcd.print("Error"); } if(truhen[i].getUpdLcd() == 0){ lcd.setCursor(15, i); lcd.print(String("|")); //Serial.println(String(truhen[i]._name) + " updateLCD("+String(i)+") ."); truhen[i].setUpdLcd(1); }else{ lcd.setCursor(15, i); lcd.print(String("-")); //Serial.println(String(truhen[i]._name) + " updateLCD("+String(i)+") "); truhen[i].setUpdLcd(0); } } } server.handleClient(); wdt_reset(); }