Archiv für den Monat: September 2020

DCF77 Pollin – Serial

Jetzt habe ich mal eine Weile mit den DCF77 Modulen experimentiert. Nachdem der C64 und auch Arduino funktionierte, war es Zeit über Serial RS232. Vielleicht nehme ich das für meinen XT 8088 her, da dieser PC keine RTC hat. Sodass bei jedem Ausschalten, die Uhrzeit verloren geht.

Beim Testen sind mir einige Sachen aufgefallen, was die Störung angeht. Beim Serial Kabel sollte man ein abgeschirmtes Kabel nehmen und die eine Leitung ohne Isolierung sollte als GND hergenommen werden.
Am Besten ein Kabel verwenden, das genau 4 Adern haben und nicht mehr. Die unnötigen Adern führen zu Störungen. Zuerst habe ich kein abgeschirmtes Kabel verwendet und das Signal war saumäßig, wenn ich in der Nähe war. Erst wenn ich weit entfernt war ca. 2- 4m war das Signal wieder ok. Das Serial Kabel habe ich 2m lang gemacht, damit man das Modul selbst weit vom Laptop/PC entfernt ablegen kann. Auch dies führt zum schlechten Empfang.
Was man sehr gut an der 2. LED sehen kann. Die LED darf nicht flimmern, sonst ist das Signal nicht in Ordnung.

Hier der Schaltplan:

Nachbau auf eigene Gefahr, ich übernehme hier keine Haftung.

Auf der Schaltung ist ein Jumper, wo man zwischen Pin 8 und Pin 6 wählen kann. Weil es Software gibt, wo man nicht softwareseitig den Daten-Pin angeben kann.
Z.B. DCF-Receiver V2 von dcf77logs.de will den Pin 8 haben. Man erspart sich so das Umlöten/ Umstellen der Software.
Für mich ist DCF-Receiver V2 mein Lieblingsprogramm unter Windows 10. Unter Linux hat man mehr Auswahl. Zur Verbindung an einem modern PC / Laptop habe ich einen Logilink USB 2.0 zu Serial Adapter. Der Adapter funktioniert unter Windows 10 ohne Treiber. Der Chiptreiber für FTDI FT232RL ist in Windows 10 enthalten.

Für Dos habe ich noch das DOS-Programm gefunden:
http://www.dl3ukh.de/Bastel-Decoder.htm

Für Windows gibt es auch noch Funkuhr:
https://www-user.tu-chemnitz.de/~heha/hsn/free.var#funkuhr

Da habe ich das Problem, das dies nur 15 -20 min. läuft und dann funktioniert die Stromversorgung (Pin 4) nicht mehr.
Hat aber auch die PC Uhr nicht umgestellt. Sonst wäre das ein sehr feines Programm.

Habe ich noch nicht am XT Computer getestet.

Falls jemand noch Verbesserungsvorschläge hat, immer her damit : ).

 

Hier mal die Fehlerrate vom Modul aus der Funkuhr (nicht das Pollin-modul, dass ist deutlich besser). Die obere Schaltung funktioniert auch mit einer alten Funkuhr. Man muss nur die Pins finden und Geduld haben. Am Anfang kommt nur Müll, erst nach 10 bis 20 min. hat das Flimmern aufgehört.

 

XT-CF Blende

Ich habe heute für meine CNC eine XT-CF-Lite v4 Blende erstellt. Dafür habe hier Aluminium Reste aus meiner Werkstatt genommen, es geht auch mit einem 3D Drucker, aber das ist nicht wirklich stabil und sieht auch nicht gut aus. Das Ausfräsen geht auch unter 5 Minuten, der 3D Druck hingegen dauert deutlich länger. Daher ist der 3D Drucker für mich hier keine Option. Wer nur einen 3D Drucker hat, kann es natürlich nicht anders machen.

Beim biegen einfach das Blech in den Schraubstock und ohne Hammer biegen. Sonst habt ihr die Hammerabdrücke drin und dürft lange schleifen. Aufpassen, dass ihr das ich die richtige Richtung biegt. Das Ende muss mit der feile noch spitz geschliffen werden, damit dies im Gehäuse schön greift und nicht wackelt.

Hier die CAD Datei zum Herunterladen

 

 

 

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