H-Wecker

Mein Wecker ist die "Kommandozentrale" für meinen Bus. Hier kann man alles steuern und sehen.

H-Wecker

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

schaltungboard

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
  • Zeit setzen: 0x15
    • 1: sekunden
    • 2: minute
    • 3: stunden
    • 4: tag
    • 5: monat
    • 6: jahr (2-stellig)
  • Alarmzeit setzen: 0x16
    • 1: Aktiv (0=aus, alles andere=an)
    • 2: Minute
    • 3: Stunde (minute und stunde sind optional)