Ich hatte mir eine NTP Clock mit einen LCD gebaut - meine alte Uhr
in der Werkstatt wollte nicht mehr.
Alles läuft wie es soll, ich habe nur links in den Display diese "Sonderzeichen".
Kommen diese von den Display oder vom Code und es gibt es eine Möglichkeit
diese "auszublenden" ?
#ifdef ESP8266
#include <ESP8266WiFi.h>
#else
#include <WiFi.h>
#endif
#include <time.h>
#include <LiquidCrystal_PCF8574.h> // Include LiquidCrystal_I2C library
LiquidCrystal_PCF8574 lcd(0x27); // Configure LiquidCrystal_I2C library with 0x27 address
// Wi-Fi Settings
const char *wifi_ssid = "SSID"; // ergänzen
const char *wifi_password = "PW"; // ergänzen
const char* NTP_SERVER = "fritz.box";
const char* TZ_INFO = "CET-1CEST-2,M3.5.0/02:00:00,M10.5.0/03:00:00";
char wochentage[7][12] = {"Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag"};
String monat[12] = {"Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember"};
char buf[64];
int tm_hour, tm_min, tm_sec;
char buf1[64];
int tm_mday, tm_mon, tm_year;
time_t now;
tm tm;
void setup () {
Serial.begin(115200);
lcd.begin(16 , 2);
lcd.setBacklight(255);
setup_wifi();
configTime(0, 0, NTP_SERVER);
setenv("TZ", TZ_INFO, 1);
}
void loop () {
time(&now); // Liest die aktuelle Zeit
localtime_r(&now, &tm); // Beschreibt tm mit der aktuelle Zeit
lcd.clear();
lcd.setCursor(0, 0);
lcd.println(buf);
lcd.setCursor(0, 1);
lcd.println(buf1);
sprintf(buf1,"Date:%02d.%02d.%04d ", tm.tm_mday, tm.tm_mon + 1, tm.tm_year + 1900);
Serial.printf("%02d-%02d-%04d \t", tm.tm_mday, tm.tm_mon + 1, tm.tm_year + 1900);
//Serial.printf("%02d %s %04d \t", tm.tm_mday, monat[tm.tm_mon], tm.tm_year + 1900); // Monat ausgeschrieben
Serial.print(wochentage[tm.tm_wday]);
//Serial.print(tm.tm_wday); // Wochentag als Zahl, 0 = Sonntag
Serial.print("\tder ");
Serial.print(tm.tm_mday);
Serial.print(" " + monat[tm.tm_mon] + " ");
Serial.print(tm.tm_year + 1900);
sprintf(buf,"Time:%02d:%02d:%02d", tm.tm_hour, tm.tm_min, tm.tm_sec);
Serial.println(buf);
delay(1000);
}
void setup_wifi() {
delay(10);
WiFi.begin(wifi_ssid, wifi_password);
int counter = 0;
while (WiFi.status() != WL_CONNECTED) {
delay(500);
if (++counter > 100) ESP.restart();
Serial.print(".");
}
Serial.println("WiFi connected");
}
Die Uhr stellt bzw. soll sich automatisch auf Winter - / Sommerzeit
umstellen.
Der ursprüngliche Code ist nicht von mir, sondern von hier:
NTP Uhr
Ich habe keine Idee mehr, mit Leerzeichen versucht usw.
Anscheinend liegt es an den LCD - aber dass wollte ich gern genauer
wissen.
Schönen Sonntag noch !

