Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
de:tech:gardenled [2022/11/14 13:57] – [Spenden] bullar | de:tech:gardenled [2022/11/14 15:56] (aktuell) – bullar | ||
---|---|---|---|
Zeile 47: | Zeile 47: | ||
{{ : | {{ : | ||
- | Der LED Boot Driver ist identisch zur Originalversion und nur durch die PWM-Ansteuerung ergänzt. Da ich bei den ersten Versuchen ein paar Hardwareausfälle (ATTINY85 + BP1808) wegen Überspannung hatte, wird das PWM Signal galvanisch mit einem Optokoppler (OC1) getrennt. An der RS485 Schnittstelle sind auch optional die Abschlusswiderstände vorgesehen (R1,R3,R4). Der MAXIM Baustein arbeitet im Halb-Duplex, | + | Der LED Boot Driver ist identisch zur Originalversion und nur durch die PWM-Ansteuerung ergänzt. Da ich bei den ersten Versuchen ein paar Hardwareausfälle (ATTINY85 + BP1808) wegen Überspannung hatte, wird das PWM Signal galvanisch mit einem Optokoppler (OC1) getrennt. An der RS485 Schnittstelle sind auch optional die Abschlusswiderstände vorgesehen (R1,R3,R4). Der MAXIM Baustein arbeitet im Halb-Duplex, |
==== PCB ==== | ==== PCB ==== | ||
Zeile 59: | Zeile 60: | ||
{{ : | {{ : | ||
- | Um die Platine elektrisch isoliert in das Gehäuse einzubauen drucke ich aus flexiblem TPU ein zweiteiliges Cover. An beiden Enden über die Platine geschoben bleibt dann alles vor ungewollten Kurzschlüssen geschützt. Das STL File ist im Downloadbereich zu finden. | + | Um die Platine elektrisch isoliert in das Gehäuse einzubauen, drucke ich aus flexiblem TPU ein zweiteiliges Cover. An beiden Enden über die Platine geschoben bleibt dann alles vor ungewollten Kurzschlüssen geschützt. Das STL File ist im Downloadbereich zu finden. |
{{ : | {{ : | ||
- | |||
===== Firmware ===== | ===== Firmware ===== | ||
- | Den physikalischen Layer haben wir mit RS485 gewählt | + | Den physikalischen Layer haben wir mit RS485 festgelegt |
In meiner Implementierung besteht ein Frame aus 13 Bytes: | In meiner Implementierung besteht ein Frame aus 13 Bytes: | ||
- | * drei Header Bytes (0xAA) | + | * 3x Header Bytes (0xAA) |
- | * des ID Bytes (0..15) | + | * 1x ID Bytes (0..15) |
- | * drei Bytes Payload | + | * 3x Bytes Payload |
* Function (0...255) | * Function (0...255) | ||
* Value (0...255) | * Value (0...255) | ||
* Delay (0...255) | * Delay (0...255) | ||
- | * vier CRC Bytes (32-bit) | + | * 4x CRC Bytes (32-bit) |
- | * ein EOF Byte (0x55) | + | * 1x EOF Byte (0x55) |
- | der je nach Funktion vom Spotlight beantwortet wird. Bei Broadcastbefehlen erfolgt keine Antwort der Gegenseite. Hier die kurze Befehlsübersicht: | + | der je nach Funktion vom angesprochenen |
< | < | ||
Zeile 110: | Zeile 110: | ||
In den Spotlights lassen sich auch individuelle Helligkeits- und Fadewerte abspeichern, | In den Spotlights lassen sich auch individuelle Helligkeits- und Fadewerte abspeichern, | ||
+ | |||
==== Programmierung ==== | ==== Programmierung ==== | ||
- | In der Werkseinstellung des ATTINY85 ist das // | + | In der Werkseinstellung des ATTINY85 ist das // |
{{ : | {{ : | ||
- | Das Debug- und Programmingtool der ersten Wahl ist und bleibt //SNAP (PG164100)// | + | Das Debug- und Programmingtool der ersten Wahl ist und bleibt |
{{ : | {{ : | ||
+ | |||
===== Integration ===== | ===== Integration ===== | ||
- | Hat man die Spotlights wie oben beschrieben programmiert, | + | Hat man die Spotlights wie oben beschrieben programmiert, |
- | Mein Wunsch | + | Mein Ziel ist es aber die Spotlights in Home Assistant (HA) zu integrieren. Dazu brauchen wir ein Gateway, das die Spotlights als //Lights// in HA abbildet und zusätzlich einen UART Server |
- | Für den UART server | + | Für den UART Server |
<code C> | <code C> | ||
Zeile 147: | Zeile 149: | ||
</ | </ | ||
- | Für die Einbindung der LEDs als Lights schreiben wir wieder ein //custom component// | + | Für die Einbindung der LEDs als Lights schreiben wir wieder ein //custom component// |
++++ garden-leds.h | | ++++ garden-leds.h | | ||
Zeile 404: | Zeile 406: | ||
Gegebenenfalls müssen die Pins '' | Gegebenenfalls müssen die Pins '' | ||
+ | |||
+ | |||
==== Hardware Gateway ==== | ==== Hardware Gateway ==== | ||
Zeile 415: | Zeile 419: | ||
| GND | GND | | | GND | GND | | ||
- | Das Ganze dann auf einer Lochrasterplatine aufgelötet und verpackt | + | Das Ganze dann auf einer Lochrasterplatine aufgelötet und in einem wasserfesten Gehäuse |
{{ : | {{ : | ||
+ | |||
==== Gesamtverdrahtung ==== | ==== Gesamtverdrahtung ==== | ||
- | Zwischen den Spotlights und dem Gateway wird ein 4-adriges Kabel benötigt. Da ich Aussen in einem wasserdichten Rohr verlege, reicht mir eine PVC-Schlauchleitung H03VV-F4G0, | + | Zwischen den Spotlights und dem Gateway wird ein 4-adriges Kabel benötigt. Da ich Aussen in einem wasserdichten Rohr verlege, reicht mir eine PVC-Schlauchleitung H03VV-F4G0, |
^ Gateway | ^ Gateway | ||
Zeile 429: | Zeile 434: | ||
| B | B | B | ... | B | | | B | B | B | ... | B | | ||
- | Je nach Anzahl der Spots brauchen wir noch ein leistungsfähigen Trafo für ~230V auf ~12V. Hier kann man z.B. einen gebrauchten Halogentrafo wiederverwenden. Die finden sich zuhauf in Gebrauchtwarenmärkten. Meinen 200W Trafo inkl. Sicherungen gab es dort für 8, | + | Je nach Anzahl der Spots brauchen wir noch einen leistungsfähigen Trafo für ~230V auf ~12V. Hier kann man z.B. einen gebrauchten Halogentrafo wiederverwenden. Die finden sich zuhauf in Gebrauchtwarenmärkten. Meinen 200W Trafo von ABB inkl. Sicherungen gab es dort für 8, |
===== Inbetriebnahme ===== | ===== Inbetriebnahme ===== | ||
- | Schliessen wir nun das fertig verdrahtete Konqlumerat an, steht uns das Licht mit DImmfunktion in Home Assistant zur Verfügung. Die Fadezeit kann dort festgelegt werden und steht standardmässig auf 1s. Durch den Stream-Server können wir aber auch mit z.B. einem PC auf die LEDs zugreifen. Dazu habe ich ein kleines Pythonprogramm geschrieben (Source Code im Downloadbereich). | + | Schliessen wir nun das fertig verdrahtete Konqlumerat an, steht uns das Licht mit DImmfunktion in Home Assistant zur Verfügung. Die Fadezeit kann auch dort festgelegt werden und steht standardmässig auf 1s. Durch den Stream-Server können wir aber auch mit z.B. einem PC auf die LEDs zugreifen. Dazu habe ich ein kleines Pythonprogramm geschrieben (Source Code im Downloadbereich). |
{{ : | {{ : | ||
Zeile 474: | Zeile 479: | ||
< | < | ||
+ | |||
<form action=" | <form action=" | ||
<input type=" | <input type=" | ||
Zeile 479: | Zeile 485: | ||
<img alt="" | <img alt="" | ||
</ | </ | ||
+ | |||
</ | </ | ||