Schlagwort-Archiv: Zeitinformation

DCF77 am Arduino

Beim C64 hatte ich ja schon mal mit einem DCF77 Modul experimentiert. Jetzt habe ich wieder ein DCF77 Modul im alten Funkwecker und habe mal erfolgreich getestet, ob dies nicht auch mit einem Arduino geht. Die DCF77-Funkuhren empfangen das Signal des DCF77 Langwellensenders. Dieser Langwellensender steht in Mainflingen bei Frankfurt am Main. Die Sendefrequenz beträgt 77,5 kHz. Obwohl die Sendeanlage schon seit 1959 in Betrieb ist, gibt es nicht wie bei LTE große Funklöcher und ist fast überall in Deutschland zu empfangen. DCF77 strahlt auf Langwelle eine codierte Zeitinformation aus, die am DCF77 Empfänger decodiert werden muss. In diesen Fall macht das nun unser Arduino.

Jedenfalls war das Modul DCF77 vom Wecker und hat sehr lange beim einpendeln gebraucht, bis ich mal eine Uhrzeit bekommen habe. Also habe ich bei Pollin mal ein DCF77 DCF1 (laut Beschreibung ist das die 3. Version) gekauft und dies ging deutlich besser. Deshalb hier jetzt die Beschreibung, wie man das mit Arduino aufbaut. Beim Pollin DCF77 muss am Anschluss PON (Power ON) mit GND verbunden werden.

Jetzt beschreib ich mal, was der Aufbau macht. Nachdem Arduino UNO mit Strom versorgt wurde, wird nach kurzer Zeit die MAC Adresse angezeigt. Danach wird versucht, eine IP über DHCP zu bekommen. Wer also eine feste IP haben will, sollte beim Router die MAC-Adresse hinterlegen. Welche IP man bekommen hat, wird in der 4. Zeile unten angezeigt. Zu Beginn steht jetzt Datum auf 01.01.1970 und die Uhrzeit auf 00:00:00, da der Arduino kein RTC. Real-time Clock (RTC) oder physikalische Uhr ist eine Uhr, welche die physikalische Zeit misst. Eine RTC verfügt über eine Batterie, so dass wenn der z.B. Arduino oder PC stromlos ist, immer noch weiß wie spät es ist.

Beim Pollin DCF1 Modul warten wir mal die im Datenblatt erwähnten 20 Minuten ab und die Uhrzeit/Datum sollte nun auf der LCD ausgegeben werden. Danach sollte alle paar Minuten mal die LED aufblitzen. Die LED zeigt an, wann die Zeit empfangen wurde und synchronisiert wird. Zusätzlich habe ich noch einen DHT22. Der DHT22 ist ein zuverlässiger Sensor zum Ermitteln von Temperatur und Luftfeuchtigkeit.
Die Vorgänger DHT11/DHT21 funktionieren auch, aber der DHT22 liefert schnellere und bessere Ergebnisse in meinem Test. Mit einem Arduino Ethernet ENC28J60 Modul werden aktuell Uhrzeit, Datum, Feuchtigkeit und Temperatur für Smartphone, Laptop, … darstellbar. Man kann noch über das Webinterface das Hintergrundlicht für die LCD-anzeige an-/abschalten. Mehr geht erstmal noch nicht.

Man könnte da noch viel mehr machen, über Funk z.B. Licht / Steckdosen schalten,…

So hier der Quellcode auf GitHub

Dazu noch die Steckverbindungen:

Tipps:

LCD zeigt weiße Kästen oder nichts:

1. Verbindung überprüfen
2. Poti auf Rückseite links/rechts drehen für Helligkeit
3. Folgende Zeile suchen:
LiquidCrystal_I2C lcd(0x3F,20,4);

Hier den HEX wert 0x3F durch 0x27 ersetzen.

DCF77 keine Zeit nach über 20 min:

1. Verbindung überprüfen
2. Arduino mit Netzteil versorgen, nicht über USB mit Laptop/PC (Kann Störungen verursachen)
3. DCF77 soweit wie möglich von elektronischen Geräten in der Nähe fern halten

Folgende Bibliotheken werden benötigt:

– DCF77
– TimeLib
– DHT
– EtherCard

 

Conrad DCF77 Empänger am C64

DCF77 strahlt auf Langwelle eine codierte Zeitinformation aus. Dieser Sender steht in Mainflingen, ca. 25 km südöstlich von Frankfurt am Main. Er arbeitet im Langwellenbereich auf der Frequenz 77,5 kHz. Dort in Mainflingen stehen ein paar Atomuhren, von denen der Sender seine Zeitinformation bezieht.

Das Conrad DCF77 Empfänger Modul funktioniert auch heute noch, so kann der Commodore 64 auch als Funkuhr dienen. Beim Verwenden des Empfängers ist aber einiges zu beachten! Jedes elektrische Gerät sendet elektromagnetische Strahlung aus, welche den DCF77-Empfang verschlechtert. Deshalb sollte der Antennenstandort möglichst weit entfernt von elektrischen Geräten wie Monitore, PCs, Netzteile, … liegen. Der Anschluss des Empfängers erfolgt über den Userport des C64. Der C64 muss ausgeschalten sein, erst dann sollte der Anschluss erfolgen, der Schriftzug am Stecker sollte beachtet werden!
Ein falsch angeschlossener Empfänger kann den C64 beschädigen. Beim Einschalten sollte die gelbe LED leuchten. Um optimalen DCF77-Empfang zu gewährleisten, muss der Antennenkopf tangential zum Sender ausgerichtet werden. Der Aufdruck „* DCF77 * Empfänger“ muss Richtung Frankfurt zeigen! Die rote LED sollte im Sekundentakt leuchten. Ein Disketten-Image kann man hier runterladen:
dcf-77

Zusätzlich habe ich noch die Conrad Uhr etwas geändert.
Auch hier muss erst DCF77 geladen werden! Danach LOAD "CLOCK",8

IMG_0738

Das Programm DCF77 muss als erstes geladen werden:
LOAD "DCF-77",8,1
Zum Starten muss SYS 49152 eingegeben werden.

Will man jetzt von der Diskette die Uhr laden kommt ein „Out of Memory“ Fehler.
Da einfach new eingeben und dann Load"clock",8,1

IMG_0741

Eine Anleitung befindet sich auf der Diskette, hier werden auch die Fehler-codes beschrieben.

Falls jemand schlechten Empfang hat, kann die Antenne ausgetauscht werden. Hier die alte Antenne:

IMG_0739

Und hier die neue Antenne: genauso klein wie die Alte. Testweise hatte ich eine größere dran, hat aber nichts gebracht. Ich hätte das Gehäuse auch aufbohren müssen und ein Stück außenstehend lassen müssen. Sieht nicht toll aus und bringt auch nichts.

IMG_0740