# ESP8266 LCD Energymeter Ein Projekt zur Visualisierung von Energiedaten von **Tasmota-Messgeräten** mit einem **ESP8266** und einem 1602 LCD. Das Script fragt periodisch zwei Tasmota-Geräte nach ihrer gemessenen Leistung und zeigt diese auf dem Display an. Ein einfacher Energie-Monitor. Projektbild ## Funktionen - **Taster** zum Ändern der der Anzeigemodi - **Anzeige des Netzbezugs** (gemessen am Stromzähler) - **Anzeige der Erzeugung** (gemessen am Balkonkraftwerk) - **Anzeige von 1.8.0** (gemessen am Stromzähler) - **Anzeige von 1.8.1** (gemessen am Stromzähler) - **Anzeige von 1.8.2** (gemessen am Stromzähler) - **Anzeige von 2.8.0** (gemessen am Stromzähler) ## Konfiguration Passe die `settings.h` auf deine Bedürfnisse an ```cpp // ######################## WLAN-Daten ######################## const char* hostname = "ESP8266_Energiemeter"; const char* ssidList[] = { "SSID_1", // Netzwerk 1 "SSID_2", // Netzwerk 2 "SSID_3" // Netzwerk 3 // Weitere SSID hier hinzufügen }; const char* passwordList[] = { "Passwort_1", // Passwort für SSID 1 "Passwort_2", // Passwort für SSID 2 "Passwort_3" // Passwort für SSID 3 // Weitere Passwörter hier hinzufügen }; // ################## Tasmota Einstellungen ################### // ===================== Energiemessung ======================= // Zwischenstecker am Balkonkraftwerk String tasmota_plug_ip = "192.168.178.237"; String tasmota_plug_json_prefix_power = "Power"; // SmartMeterReader String tasmota_smr_ip = "192.168.178.236"; String tasmota_smr_json_prefix_power = "Power"; // ================== Register-Einstellungen ================== // ------------- 1.8.0 ------------- // Überschrift im Display, wenn das 1.8.0 Register angezeigt wird (LCD Display Zeile 1) String tasmota_smr_json_prefix_1_8_0_lcd_text = "1.8.0 (HT+NT):"; // Tasmota Script JSON Prefix für das 1.8.0 Register (Wert in Zeile 2) String tasmota_smr_json_prefix_1_8_0 = "E_in_180"; // ------------- 1.8.1 ------------- // Überschrift im Display, wenn das 1.8.1 Register angezeigt wird (LCD Display Zeile 1) String tasmota_smr_json_prefix_1_8_1_lcd_text = "1.8.1 (HT):"; // Tasmota Script JSON Prefix für das 1.8.1 Register (Wert in Zeile 2) String tasmota_smr_json_prefix_1_8_1 = "E_in_181"; // ------------- 1.8.2 ------------- // Überschrift im Display, wenn das 1.8.2 Register angezeigt wird (LCD Display Zeile 1) String tasmota_smr_json_prefix_1_8_2_lcd_text = "1.8.2 (NT):"; // Tasmota Script JSON Prefix für das 1.8.2 Register (Wert in Zeile 2) String tasmota_smr_json_prefix_1_8_2 = "E_in_182"; // ------------- 2.8.0 ------------- // Überschrift im Display, wenn das 2.8.0 Register angezeigt wird (LCD Display Zeile 1) String tasmota_smr_json_prefix_2_8_0_lcd_text = "2.8.0 (Einsp.):"; // Tasmota Script JSON Prefix für das 2.8.0 Register (Wert in Zeile 2) String tasmota_smr_json_prefix_2_8_0 = "E_out_280"; // ------- Nachkommastellen -------- // Anzahl Nachkommastellen bei den ausgelesenen Tasmota Werten // -1 = Alle / 0 = Keine / 2 = 2 Nachkommastellen int tasmota_decimalplaces = 2; // ################# Allgemeine Einstellungen ################# // Aktualisierungsrate im Bildschirm aktuelle Leistung (in Millisekunden) unsigned long refreshrate_power = 3000; // Aktualisierungsrate in den Bildschirmen der Verbrauchsdaten (in Millisekunden) unsigned long refreshrate_consumption = 15000; // ############################################################ ``` ## Schaltplan Schaltplan #### Hinweise: - Der **MT3608** (Step-Up-Wandler) ist optional. Er sorgt für eine stabile Spannung von 5V für das LCD, selbst wenn die Batterie schwächer wird. - Der **ESP8266** muss nicht zwingend hinter dem MT3608 geschaltet sein, da er weniger empfindlich auf Spannungsschwankungen reagiert als das Display.