Am Puls der Zeit: Unterschied zwischen den Versionen

Aus Ethersex_Wiki
Wechseln zu: Navigation, Suche
K (Synchronisation mittels NTP: Klarer formuliert.)
(Der Seiteninhalt wurde durch einen anderen Text ersetzt: „[http://www.ethersex.de/index.php/Clock_%28Deutsch%29 Am Puls der Zeit im neuen Wiki] Category:Ethersex Category:StepByStep [[C…“)
 
(Eine dazwischenliegende Version desselben Benutzers wird nicht angezeigt)
Zeile 1: Zeile 1:
=  Ethersex am Puls der Zeit =
+
[http://www.ethersex.de/index.php/Clock_%28Deutsch%29 Am Puls der Zeit im neuen Wiki]
Viele Mikrocontroller-Projekte kommen irgendwann an den Punkt, wo eine (halbwegs) verlässliche Zeitquelle von Nöten ist. Sei es, dass man um eine bestimmte Uhrzeit eine Lampe schalten möchte, die Heizungssteuerung morgens für Warmwasser sorgen soll oder dass man alle halbe Stunde einen Messwert speichert ...
 
 
 
Wie könnte es anders sein, Ethersex bietet hierfür eine elegante Lösung: eine Systemuhr :-)
 
 
 
<pre>
 
make menuconfig
 
 
 
Applications  ---&gt;
 
  System clock  ---&gt;
 
  | |                [*] System clock support                                    | 
 
  | |                [ ] Use 32 kHz crystal to tick the clock                    | 
 
  | |                [*] Synchronize using NTP protocol                          | 
 
  | |                [*] Cron daemon                                              | 
 
  | |                [ ] NTP daemon                                              | 
 
  | |                [ ] Working hour meter                                      | 
 
  | |                (UTC) Time Zone                                            | | 
 
</pre>
 
 
 
==  Der Uhrentakt ==
 
Wenn irgendwie möglich, solltest Du Deinem Ethersex einen Uhrenquarz mit einer Taktfrequenz von 32 kHz spendieren (an die Pins TOSC1 resp. TOSC2 anschließen, im Falle des ATmega644 sind das PC6 und PC7) und die Option ''Use 32 kHz crystal to tick the clock'' aktivieren. Die Systemuhr läuft mit dem Uhrenquarz erheblich genauer.
 
 
 
Ohne den Quarz wird der Systemtakt als Quelle herangezogen. Dieser ist aber im Vergleich weit weniger genau.
 
 
 
==  Zeitquellen ==
 
Selbstverständlich muss sich die Uhr selbst stellen. Der Controller wäre weitestgehend nutzlos wenn jedesmal die Uhr per Hand eingestellt werden müsste. Ethersex sieht hierzu im Moment zwei Lösungsansätze vor:
 
 
 
===  Synchronisation mittels NTP ===
 
Ethersex kann als NTP-Client einen Zeitserver im Internet nach der Uhrzeit fragen. Hierzu ist lediglich die Option ''Applications → System Clock Support → Synchronize using NTP protocol'' zu aktivieren.
 
Die Firmware frägt dann nach dem Boot und anschließend in regelmäßigen Abständen den Zeitserver. Die standardmäßig festgelegten Server sind in der Datei [https://github.com/ethersex/ethersex/blob/master/services/clock/config.in services/clock/config.in] gesetzt (können aber per <code>menuconfig</code> verändert werden):
 
 
 
{| border="1"
 
| ''address type''
 
|  ''DNS aktiviert''
 
|  ''ohne DNS Unterstützung''
 
|-
 
| IPv6
 
|  ns.ipv6.uni-leipzig.de
 
|  2001:638:902:1:0:0:0:10
 
|-
 
| IPv4
 
|  ptbtime1.ptb.de
 
|  192.53.103.108
 
|-
 
|}
 
 
 
===  [[DCF77]] ===
 
Die Ethersex-Firmware kann auch als [[DCF77|DCF77-Empfänger]] (besser bekannt als &quot;Funkuhr&quot;) fungieren. Hierzu ist zunächst ein Uhrenquarz anzuschließen und die zugehörige Option zu aktivieren, vgl. oben. Dann muss die Option ''Synchronize using DCF77 signal'' aktiviert werden. Funktionstüchtige (Empfangs-)hardware und guten Empfang vorausgesetzt, sollte die Uhr nun automatisch gestellt werden.
 
 
 
Siehe auch [[DCF77]]
 
 
 
==  Zeitinformationen verwenden ==
 
===  Cron ===
 
Ethersex hat einen Cron-Dienst ähnlich dem Dienst auf typischen Unix-Systemen. Dieser kann verwendet werden, um zu bestimmten Uhrzeiten bestimmte Tätigkeiten verrichten zu lassen.
 
 
 
Die Jobtabelle selbst findet sich in der Datei ''cron/cron.c'' ziemlich am Anfang. Es ist auch ein Beispieljob eingetragen. Selbstverständlich sind hierzu dann zumindest rudimentäre Programmierkenntnisse in C erforderlich %)
 
 
 
Eine (einfachere) Alternative wäre evtl. der Einsatz eines [[Control6]]-Programms.
 
 
 
===  NTP-Server ===
 
Die Ethersex Firmware kann die so gewonnenen Zeitinformationen als NTP-Server auch im lokalen Netzwerk zur Verfügung stellen. Hierzu ist lediglich die Option ''NTP daemon'' zu aktivieren.
 
 
 
 
[[Category:Ethersex]]
 
[[Category:Ethersex]]
 
[[Category:StepByStep]]
 
[[Category:StepByStep]]
 
[[Category:Clock]]
 
[[Category:Clock]]
 
[[Category:Network]]
 
[[Category:Network]]

Aktuelle Version vom 5. Juni 2013, 10:51 Uhr