Rainer's Uhr
› Forums › (Deutsch) User Projekte › Rainer's Uhr
Tagged: NTP Time Server
- This topic has 13 replies, 6 voices, and was last updated 8 years, 10 months ago by Rainer.
-
AuthorPosts
-
December 9, 2015 at 10:53 #739RainerParticipantDecember 9, 2015 at 11:00 #743RainerParticipant
jetzt als zip Datei
Attachments:
December 9, 2015 at 13:04 #745bastardMemberDecember 9, 2015 at 13:22 #749RainerParticipantHallo Stefan,
danke für den “Deppen”, ich benutze wohl zu häufig die englische Sprache, dort ist der Apostroph durchaus als Genitiv -s angebracht.
Allerdings habe ich auch das gefunden :
- Seit der Einführung der neuen deutschen Rechtschreibung kann auch im Deutschen zur Hervorhebung von Namen der Apostroph Verwendung finden: Jürgen’s Imbiss
Ich lasse das Program mal so wie es ist, wer es benutzen will, wird ja wohl dort seinen Namen eintragen.
Beste Grüße,
Rainer
- This reply was modified 9 years ago by Rainer.
December 10, 2015 at 10:01 #763fkKeymasterHi,
echt schönes Projekt!Das mit den ino-Dateien stimmt. Mann sollte die Projekte immer erst Zippen.
December 11, 2015 at 17:35 #808StefanieMemberLieber Rainer,
Erstens tolle Umsetzung!! Ich habe eine Frage zu den Bauteilen, aus welchem Kalender oder Set stammt der Display und noch viel wichtiger wie heißen die vorgefertigten Verbindungskabel? und wo bekommt man die?
Herzliche Grüße und Danke im Vorhinein
December 12, 2015 at 08:47 #815RainerParticipantHallo Stefanie,
das Display stammt von Adafruit, es gibt es ohne und mit einer zweiten Platine für das I2C Interface, mit 2 oder 4 Zeilen.
Beim Arduino nano kann man SoftwareSerial und I2C ( “wire” Bibliothek ) nicht gemeinsam nutzen, daher habe ich das Display direkt über 4 Bit angesteuert. Wichtig ist es, die I/O Pins 11 und 12 nicht zu benutzen, diese sind zwar auf der Stiftleiste herausgeführt, werden aber für das WLAN Modul benötigt.
Auf der Website von Adafruit ist auch eine super Anleitung, wie man das Display anschliesst und ansteuert !
Wenn man in einer Suchmaschine “Adafruit Display” oder “Adafruit LCD” eingibt, findet man auch Anbieter in Deutschland.Die Verbindungskabel werden von vielen Anbietern verkauft. Einfach mal nach “jumper wire” suchen, dann kommen von Amazon über Conrad und eBay etc. viele online Shops. Dort findet man auch die Steckbrücken in unterschiedlicher Länge für das Raster des Steckbretts.
Aus Fernost dauert es etwas länger, aus der EU sind die Lieferzeiten wesentlich kürzer !Viel Erfolg,
Rainer
December 13, 2015 at 20:05 #853RainerParticipantHallo,
ich habe mal wieder etwas gespielt und das NTP Beispiel aus der Time Library an das ESP Modul angepasst.
Dieses Programm verbindet sich mit dem NTP Server der Telekom ( geht aber auch für andere Server ) und ruft alle Stunde die Uhrzeit zur Synchronisation ab, dazwischen läuft es autonom mit der internen Uhr aus der Time Lib.
Das Beispiel aus der Lib basiert auf einer LAN Verbindung, die verwendeten IP adressen für die Server scheinen nicht mehr aktuell zu sein. Ich habe den Code umgeschrieben und den Code aus dem Kalender für UDP Verbindungen damit ergänzt, um das WLAN Modul zur Verbindung mit meinen WLAN zu benutzen.
Über den seriellen Monitor werden Datum und Uhrzeit ausgegeben, auf dem LCD Display ist nur die Zeit sichtbar.Das Protokoll für den NTP Server benutzt binäre Daten und muss für das SEND Kommando umgewandelt werden. Hier darf zum Abschluss kein CR/LF angehängt werden ! Die 4 Bytes mit den Sekundenbruchteilen werden nicht genutzt.
An mancher Stelle werden sich guten Programmieren die Nackenhaare sträuben, ich wollte das nur quick & dirty zu Ende bringen, bevor das Wochenende um ist. Es funktioniert aber gut, man muss nur die SSID und das Passwort eintragen. Das Timeout zur WLAN Anmeldung ist auf 20 Sekunden gesetzt, bei mir dauert die Anmeldung manchmal recht lange.
Für eine tiefere Beschäftigung mit NTP habe aich auch eine etwas ältere Dokumentation des NTP Protokolls angehängt, ich habe nicht weiter nach aktuelleren Ausgaben gesucht, diese hier hat mir gute Dienste getan.
Ich bin für alle Verbesserungsvorschläge offen !
Rainer
- This reply was modified 9 years ago by Rainer.
Attachments:
December 14, 2015 at 16:47 #861HartmutMemberPrima Projekt, dass ich auch verfolge. Eigentlich fehlt ja nur noch eine vernünftige Fehlerbehandlung (z.B. ein reconnect nach Abbruch), die aber den Aufwand durchaus mal verdoppeln kann (vorsichtig gerechnet). Aber mehr als ein Proof-Of-Concept ist Deine Uhr ja schon.
Eine kleine Bemerkung zur Time-Library.
MitsetSyncProvider(getNtpTime);
übergibts Du einen Funktionspointer an die Time-Library. Die Funktion selbst wird dabei aber gar nicht aufgerufen. Dies geschieht erst in der Funktionnow()
und zwar alle 5 Minuten (300 Sekunden). Dieses Intervall kann man mit Hilfe der FunktionsetSyncInterval(time_t interval)
verändern, z.B. häufiger für Debug Zwecke und noch seltener für die Produktion. Der Aufruf von setSyncProvider(getNtpTime); in der Loop ist also überflüssig.December 14, 2015 at 17:01 #862RainerParticipantHallo Hartmut,
danke für den Hinweis, ich habe mich mit der Time Lib ( noch ) nicht näher befasst, wollte das Ganze nur mal ans laufen bringen, daher auch keinerlei Fehlerbehandlung,
Ich habe den Aufruf setSyncProvider(getNtpTime) auch bereits wieder aus der loop entfernt, da war zusätzlich zu Deiner Bemerkung noch ein Gedankenfehler bei der IF Abfrage !
Dafür zeige ich jetzt auch das Datum im LCD Display an !
Wenn ich dann noch eine über UDP ansprechbare Wetterstation finde, werde ich dann auch noch das Wetter anzeigen, habe noch ein Display mit 4 Zeilen, das sollte reichen !Beste Grüße,
Rainer
December 18, 2015 at 12:50 #909JonathanParticipant… Beim Arduino nano kann man SoftwareSerial und I2C ( „wire“ Bibliothek ) nicht gemeinsam nutzen……
—————-
Ich wollte mir gerade so ein Display mit I2C bestellen. Das würde echt nicht funktionieren? Oder?December 18, 2015 at 16:00 #910RainerParticipantHallo Jonathan,
richtig, beim nano klappt das nicht.
Ich habe damals aus dem Grund den Leonardo bzw. Micro für meine Projekte genommen, die haben eine zweite Serial Schnittstelle.Allerdings kann man das Display bei meiner Version von der I2C Interface Platine abziehen und dann, wie im Bild sichtbar, über 6 I/O Pins ansteuern. Hierbei nicht den Trimmer für den Kontrast vergessen !
Achtung : die meisten Beispiele in der LiquidCrystal Lib haben 11 und 12 mit genutzt, die werden hier für das WLAN Modul verwendet.Ich habe mal eine verbesserte Version des NTP Time Servers angehängt :
der Aufruf des Servers alle 300 Sekunden durch die Time Lib,
die LED an PIN 13 leuchtet, wenn die Synchronisation geklappt hat und nicht, wenn die Synchronisation fehlgeschlagen ist,
Datum und Uhrzeit werden angezeigt.Viel Erfolg,
Rainer
- This reply was modified 8 years, 12 months ago by Rainer.
Attachments:
January 25, 2016 at 18:55 #1136fkKeymasterHi Rainer,
ich habe dein Bild von der tollen Uhr als Titelbild für eine neue Kategorie “User Projekte” genommen. Ist das für dich in Ordnung oder soll ich ein anderes Bild benutzen?
LG Fabian
January 25, 2016 at 21:50 #1138RainerParticipantHallo Fabian,
kein Problem, gerne !
Gruß, Rainer
-
AuthorPosts
- You must be logged in to reply to this topic.