Hallo zusammen, ich überlege, wie ich bei einer Röhrenuhr hin und wieder die Zeit korrigieren könnte. Naheliegend wäre DCF-77; aber nehmen wir mal an der Empfang wäre zu schwach oder gestört. GPS geht indoor kaum. Wie wärs mit NTP: Was wäre eine einfache Möglichkeit, übers WLAN eine NTP-Abfrage zu machen? Technisch gesehen kann das jeder Microcontroller mit WLAN-Schnittstelle, mit "einfach" meine ich nicht gigabyteweise kryptische IDEs (Stichwort Espressif) installieren zu müssen und Netzwerkprotokolle in C implementieren zu müssen. Mir fällt Micropython ein, z.B. das Wipy von Pycom oder das Pyboard D. Weder von ESP32 noch von Pycom bin ich ein grosser Fan und der Preis vom Pyboard D ist doch happig. Weiss jemand eine andere Möglichkeit? Idealerweise wäre es ein Modul, das nach dem Einschalten sich ins WLAN einloggt (Zugangsdaten müsste man konfigurieren können), sich an einem NTP-Server einloggt und die aktuelle Zeit per serieller Schnittstelle verfügbar macht. Oder ginge Mobilfunk vielleicht? Könnte man zumindest die Zeit ohne aktive SIM-Karte bekommen? - Martin
Raspberry pi Zero. Günstig und einfach zuvprogrammieren. NTP wlan etc. alles verfügbar
Kannst Du den so konfigurieren, dass er nach dem Einschalten direkt z.B. ein Python-Programm ausführt, ohne Tastatur/Monitor?
Für so ein paar Zeilen reicht doch ein ESP8266 und die Arduino IDE: https://github.com/PaulStoffregen/Time/blob/master/examples/TimeNTP/TimeNTP.ino
Also ich würde den ESP8266 nehmen, eine Micropython Firmware draufbruzeln. Am einfachsten geht das mit dem WEMOS D1-Mini da ist das USB-Interface schon drauf. Es gibt genug fertige Images und ich verwende die Teile schon eine ganze Zeit. NTP geht recht einfach, nur bei der Zeitzone ist es etwas frickelig. Aber wenn das Ding im WLAN hängt und Internetzugang hat kann man das auch mit einem Request leicht abhandeln. Den Code kannst zu Not sogar von mir haben ;). Einzige Frage wie soll denn das Interface zu der Röhrenuhr aussehen? - Gerd
Hallo Gerd - super, da komme ich gegebenenfalls drauf zurück! Wegen des Interface habe ich mir noch keine Gedanken gemacht. Röhrenmaster wird ein STM32, wohl als Nucleo-32. Da wäre SPI oder Seriell asynchron naheliegend. Eventuell so, dass man einen GPIO-Pin setzt und dann das WLAN-Modul die Zeit liest und zurückschickt. Ein extra Kommando über die Schnittstelle ist ja fast übertrieben - es sei denn, es fallen einem noch mehr Anwendungen ein... - Martin
Martin M. schrieb: > mit "einfach" meine ich nicht gigabyteweise > kryptische IDEs (Stichwort Espressif) installieren zu müssen und > Netzwerkprotokolle in C implementieren zu müssen. Martin M. schrieb: > Idealerweise wäre es ein Modul, > das nach dem Einschalten sich ins WLAN einloggt (Zugangsdaten müsste man > konfigurieren können), sich an einem NTP-Server einloggt und die > aktuelle Zeit per serieller Schnittstelle verfügbar macht. Auch hier kann ich wieder nur sagen ESPEasy, das flashst als fertig kompilitiertes Teil drauf, brauchst DIch um nichts zu kümmern, das DIng macht erst mal sein eigenes WLAN auf, dort kannst es dann mit deinem eigenen WLAN verheiraten (gibt aber bei Bedarf nauch wesentlich einfachere Möglichkeiten über die serielle Schnittstelle) Das Ding kann problemlos die Zeit über NTP holen Nur was machst dann damit? Irgendwie muss es zu Deiner Uhr kommen? über die serielle Schnittstelle? Es gibt "Rules" - auch über die Weboberfläche erreichbar https://www.letscontrolit.com/wiki/index.php/ESPEasy_System_Variables mit den Rules bekommst sicher die Zeit seriell raus geschickt, aber da musst dich dann wohl leider doch etwas einarbeiten.. Habe mich nie mit Nixie-Uhren beschäftigt, wahrscheinlich wäre es am Ende am einfachsten direkt mit ESPEasy über einen /mehrere Portexpander die Nixie-Röhren direkt über Rules anzusteuern, brauchst ja nur 4 x 10 Ausgänge? Hier noch ein ganz anderes Projekt: https://github.com/elkayem/ESP_NIXIE
Die Uhr mit einem DCF-Dekoder ausstatten, dann funzt die universell mit offizieller Zeit, auch wenn kein WLAN da ist. Dann evtl. einen NTP/DCF-Adapter davorschalten für die Fälle wo DCF unerwünscht aber WLAN verfügbar ist: https://www.elektormagazine.com/labs/dcf77-emulator-with-esp8266-elektor-labs-version-150713
FM Radio Empfänger SI4735 mit RDS (Singlechip) wäre auch noch eine Möglichkeit. Beliebigen lokalen RDS Sender autotunen und die Uhrzeit aus dem RDS holen. Nicht sonderlich kompliziert. Bloß nicht den unsäglichen RDA5807, der ist im RDS total verbuggt.
Jens M. schrieb: > Uhr mit einem DCF-Dekoder ausstatten, dann funzt Naja DCF77 funktioniert auch nicht überall zuverlässig im Keller. Man sollte auf jeden Fall eine Plausibilitätsprüfung vorsehen, wenn man nicht 78:61Uhr haben möchte. Im heutigen Störnebel von Schaltnetzteilen kann man "viel Spaß" haben.
Martin M. schrieb: > ich überlege, wie ich bei einer Röhrenuhr hin und wieder die Zeit > korrigieren könnte. Hallo Martin, ich mache es mit einer selbst entwickelten Android App. Es wird die Zeit über Bluetooth an die Uhr geschickt. Es wird derzeit die lokale Zeit genommen. Der nächste Schritt wäre die Zeit über NTP zu holen, aber das ist noch eine Baustelle.
oszi40 schrieb: > Naja DCF77 funktioniert auch nicht überall zuverlässig im Keller. Nicht zuende gelesen. Und: Gute Empfänger und gute Software funktionieren einwandfrei in einem Betonkeller unter einer Betondecke an der Wand auf deren anderer Seite der 1,5m breite Stromkasten sitzt, und die Antenne ist auch noch mit dem Ende Richtung Sender ausgerichtet. Bei mir zumindest. Ich glaube, weder deinen noch meinen Fall kann man pauschalisieren. Eine Software die DCF dekodieren kann ist relativ einfach, und wenn man den Weg mit dem NTP/DCF-Adapter geht, kann man leicht eine DCF- oder eine NTP-Antenne einsetzen, auch abgesetzt wenn der lokale Empfang oder die Antennenausrichtung schlecht ist.
Hallo zusammen, fantastisch, was hier an Ideen zusammengekommen ist. Vielen Dank! Raspi, ESP8266 in C oder Micropython, RDS... Die finde ich alle sehr spannend! Den Preis für Originalität räumt aber Harald mit dem RDS ab. Da wäre ich nie von selbst draufgekommen. Zwei Probleme sehe ich dabei: Wo soll die UKW-Antenne hin (Platzproblem) und wie sieht der Sendersuchalgorithmus aus? Fixe Frequenz? Durchscannen und stärksten Sender suchen? Fallback falls kein brauchbares Signal auf dieser Frequenz? Trotzdem genial, weil es ohne WLAN mit allen verbundenen Problemen läuft. Um den ESP8266 habe ich bisher einen Bogen gemacht; vielleicht lohnt sich doch noch ein Blick. Danke nochmal - Martin
Martin M. schrieb: > Wo soll die UKW-Antenne hin (Platzproblem) Muss man schauen, irgendwo außen drum herum? Kürzere Antenne versuchen? > und wie sieht der Sendersuchalgorithmus aus? Fixe Frequenz? Durchscannen > und stärksten Sender suchen? Es gibt da Funktionen, die einfach den nächsten Sender sucht. Dann kann man auf die Feldstärke schauen und man kann eine ganze Weile das RDS auf Plausibilität prüfen. Es gibt fertige ArudinoLibs für den Baustein. Martin M. schrieb: > Um den ESP8266 habe ich bisher einen Bogen gemacht; Auch das ist bocksimpel, Arduino einrichten, fertiges Beispiel laden, SSID, Passwort eintragen (kann ja dein GastWLAN sein, wenn Du Bedenken hast), fertig!
Martin M. schrieb: > Oder ginge Mobilfunk vielleicht? Könnte man zumindest die Zeit ohne > aktive SIM-Karte bekommen? Dazu könnte ich noch beitragen, dass es tatsächlich noch Karten gibt, die ohne Aufladung trotzdem nicht verfallen. FONIC ist eine davon. Oder die Datenkarten von Things Mobile (da bin ich mir aber nicht 100% sicher).
Die aktuelle Version der AT-Firmware, mit denen die Module ausgeliefert werden (sollten), unterstützt bereits NTP. https://www.espressif.com/sites/default/files/documentation/4a-esp8266_at_instruction_set_en.pdf AT+CIPSNTPCF=1,1,"cn.ntp.org.cn","ntp.sjtu.edu.cn","us.pool.ntp.org AT+CIPSNTPTIME? Ansonsten kann man die Uhrzeit von jedem beliebigen Webserver des Vertrauens mit einem simplen HTTP-GET Befehl abrufen. Das geht ganz einfach per AT-Befehl. Nach dem Verbindungsaufbau zum Webserver sendet man den Text: GET / HTTP/1.0\r\n\r\n Die Antwort sind mehrere Zeilen Text, von denen eine so aussieht: Date: Sun, 08 Nov 2020 09:28:12 GMT\r\n Da kann man sich bequem die einzelnen Ziffern für die Uhr heraus parsen.
Stefan ⛄ F. schrieb: > Die aktuelle Version der AT-Firmware, mit denen die Module ausgeliefert > werden (sollten), unterstützt bereits NTP. Hallo Stefan, danke für den Hinweis! Das wäre ja auch nützlich. Ich hätte das Adafruit ESP8266 breakout bestellt, dort ist schon NodeMCU drauf, da müsste ich die AT-Firmware wieder draufprogrammieren. Wie es scheint gibt es folgende Möglichkeiten, den ESP8266 zu nutzen: - AT-Kommandos - C über Arduino - Micropython (bzw. Circuitpython von Adafruit) - NodeMCU mit Lua Was ist denn so am verbreitetsten? Wenn das AT-Kommandoset reicht, ist das sicher am einfachsten. Ansonsten programmiere ich hauptsächlich C (STM32), von Arduino bin ich nicht Fan, besonders der "IDE", um es mal ohne Kraftworte auszudrücken. Python/Micropython brauche ich auch gelegentlich. Mit NodeMCU oder Lua hatte ich bisher noch nichts zu tun. - Martin
Martin M. schrieb: > - C über Arduino Das ist C++ Du hast Espressif SDK vergessen, das ist C. > Was ist denn so am verbreitetsten? Keine Ahnung. Ich programmiere den Chip mit Arduino Framework aber einem "externen" besseren Editor. Inzwischen soll das SDK aber auch ganz gut geworden sein. Damals, als ich mich für Arduino entschied, musste man sich eine ganz bestimmte Linux Version installieren, um das SDK nutzen zu können. Darauf hatte ich keinen Bock.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.