Fensterbogenbeleuchtung: Unterschied zwischen den Versionen
Marenz (Diskussion | Beiträge) Die Seite wurde neu angelegt: „Die LEDs sind oben auf den Fensterrahmen geklebt. Damit wird der Fensterbogen beleuchtet. Datei:fensterbogenbeleuchtung_1.jpg|200px|thumb|right|Momentan ist…“ |
Florz (Diskussion | Beiträge) →Beispiel: wieder auf UDP zurückgestellt |
||
(13 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt) | |||
Zeile 2: | Zeile 2: | ||
[[Datei:fensterbogenbeleuchtung_1.jpg|200px|thumb|right|Momentan ist diese Beleuchtung nur in der neuen Lounge vorhanden]] | [[Datei:fensterbogenbeleuchtung_1.jpg|200px|thumb|right|Momentan ist diese Beleuchtung nur in der neuen Lounge vorhanden]] | ||
== [https://github.com/marenz2569/chch-fensterbogenbeleuchtung Sourcecode] == | |||
== Funktionsweise == | == Funktionsweise == | ||
Gesteuert werden die LEDs (WS2812) durch einen Microcontroller (ATMega328P) welcher mittels Netzwerk (ENC28J60) angebunden ist. | Gesteuert werden die LEDs (WS2812) durch einen Microcontroller (ATMega328P) welcher mittels Netzwerk (ENC28J60) angebunden ist. | ||
Dieser ist im Choasnetz unter der IP ''172.23.92. | Dieser ist im Choasnetz unter der IP ''172.23.92.15'' erreichbar. | ||
Ansprechbar ist die Belechtung mittels ein Protokoll basierend auf ''UDP'' mit den Port ''49152''. | Ansprechbar ist die Belechtung mittels ein Protokoll basierend auf ''UDP'' mit den Port ''49152''. | ||
== Protokoll == | |||
C ≙ Client | |||
S ≙ Server (Fensterbogenbeleuchtung) | |||
LEN ≙ Länge von nachfolgenden Bytes (2 Bytes) | |||
ERROR ≙ spezifischer Fehler(code) | |||
=== INFORMATION === | |||
C: "i" + 0x00 | |||
S: "i" + LEN + JSON-Beschreibung || "e" + LEN + ERROR | |||
JSON-Beschreibung := | |||
{ | |||
"leds": # leds, | |||
"max_protolen": # | |||
} | |||
=== SET === | |||
C: "s" + LEN + [ledid (2 Byte) + GRB (3 Byte)] ... | |||
S: "s" + LEN (0x0000) || "e" + LEN + ERROR | |||
=== RANGESET === | |||
C: "r" + LEN + offset (2 Byte) + GRB (3 Byte) ... | |||
S: "r" + LEN (0x0000) || "e" + LEN + ERROR | |||
=== ALLSET === | |||
C: "a" + LEN + GRB (3 Bytes) | |||
S: "a" + LEN (0x0000) || "e" + LEN + ERROR | |||
=== FARBVERLAUF === | |||
C: "n" + LEN (0x0002) + 0x0100 | |||
oder | |||
C: "n" + LEN (0x0002) + 0x01FF | |||
=== Beispiel === | |||
alles an: | |||
'''echo -en "a\x00\x03\xff\xff\xff" > /dev/udp/172.23.92.15/49152''' | |||
este LED an: | |||
'''echo -en "s\x00\x05\x00\x00\xff\xff\xff" > /dev/udp/172.23.92.15/49152''' |
Aktuelle Version vom 16. Februar 2017, 09:54 Uhr
Die LEDs sind oben auf den Fensterrahmen geklebt. Damit wird der Fensterbogen beleuchtet.
Sourcecode
Funktionsweise
Gesteuert werden die LEDs (WS2812) durch einen Microcontroller (ATMega328P) welcher mittels Netzwerk (ENC28J60) angebunden ist.
Dieser ist im Choasnetz unter der IP 172.23.92.15 erreichbar.
Ansprechbar ist die Belechtung mittels ein Protokoll basierend auf UDP mit den Port 49152.
Protokoll
C ≙ Client
S ≙ Server (Fensterbogenbeleuchtung)
LEN ≙ Länge von nachfolgenden Bytes (2 Bytes)
ERROR ≙ spezifischer Fehler(code)
INFORMATION
C: "i" + 0x00
S: "i" + LEN + JSON-Beschreibung || "e" + LEN + ERROR
JSON-Beschreibung := {
"leds": # leds, "max_protolen": #
}
SET
C: "s" + LEN + [ledid (2 Byte) + GRB (3 Byte)] ...
S: "s" + LEN (0x0000) || "e" + LEN + ERROR
RANGESET
C: "r" + LEN + offset (2 Byte) + GRB (3 Byte) ...
S: "r" + LEN (0x0000) || "e" + LEN + ERROR
ALLSET
C: "a" + LEN + GRB (3 Bytes)
S: "a" + LEN (0x0000) || "e" + LEN + ERROR
FARBVERLAUF
C: "n" + LEN (0x0002) + 0x0100
oder
C: "n" + LEN (0x0002) + 0x01FF
Beispiel
alles an: echo -en "a\x00\x03\xff\xff\xff" > /dev/udp/172.23.92.15/49152
este LED an: echo -en "s\x00\x05\x00\x00\xff\xff\xff" > /dev/udp/172.23.92.15/49152