Mein Wecker ist die "Kommandozentrale" für meinen Bus. Hier kann man alles steuern und sehen.
Aufbau
Drin sind:
S65-Display (2,1", 16Bit Farbe) (läuft)
DS1307 Echtzeituhr mit 32khz-Quarz und Batteriebackup (extern am bus) (läuft)
DCF77 receiver (extern am bus) (läuft)
lichtsensor für displaybeleuchtung (nachts aus/dunkler) (läuft so
lala)
Lautsprecher/Beeper (beept)
Drehencoder mit Taster (funktioniert)
ein paar Tasten für Quicklinks (unter Bildschirm) und Hotkeys (z.B. für
Winamp)
Mega128 (ich brauche viel Speicher für Bitmaps & Schriften)
Temperatursensor, falls am Bus keine Temperatur verfügbar ist
H-Bus Interface (I2C)
Funktion
Das soll er können:
Zeit anzeigen --> ok
Wecken
akkustisch --> ok
über Bus
Radiosteuerung
Lichtsteuerung
nachwecken
PC an/ausschalten --> ok
Temperatur/Wetter anzeigen --> ok
Winamp steuern --> ok
Winamp anzeigen --> ok
Licht steuern (schalten/dimmen) --> ok
Display dimmen --> ok
Menüsteuerung --> ok
Schaltung
Der Schaltplan ist zwar nicht schön, aber dafür hässlich - für das Board war
er gut genug. Ich hoffe, man kann das wichtigste erkennen.
An K1 ist das Display festgelötet.
Eindrücke (aktuellste zuerst)
Menü
Chronologie
Bus-Kommunikation
Start
Uhrzeit holen
Temperatur holen (spät genug, dass sie auch gemessen ist!)
Relais abfragen
Dimmer abfragen
alle 10s
Temperatur holen
wenn nicht DCF-synchron, dann DCF nach Zeit fragen
alle Stunde
DCF synchronisieren (eine Minute nach, damit z.B. Sommerzeit gleich
übernommen wird)
Relais abfragen
Dimmer abfragen
passiv
Songtitel setzen: 0x10
1: offset im songtitel
2...n+1: titel
Winamp Status setzen: 0x11
1: volume (0-255)
2: status (0=stop; 1=play; 3=pause)
3-4: length (16bit; in Sekunden; MSB first)
5-6: position (16bit; in Sekunden; MSB first)
Wetter setzen: 0x12
1: condition code (gemapped nach Tabelle)
Temperatur abfragen: 0x13
zurück kommt 1 Byte mit der Temperatur in °C als int8
Beleuchtung abfragen: 0x14
zurück kommt ein uint16 (2 Byte) mit der Beleuchtung 0-1023