Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
de:tech:gardenled [2022/11/14 08:30] – [Motivation] bullar | de:tech:gardenled [2022/11/14 15:56] (aktuell) – bullar | ||
---|---|---|---|
Zeile 3: | Zeile 3: | ||
===== Motivation ===== | ===== Motivation ===== | ||
- | Unser Grundstück ist - wie häufig hier in Thailand - von einer zwei Meter hohen Mauer eingerahmt. | + | Unser Grundstück ist - wie häufig hier in Thailand - von einer zwei Meter hohen Mauer eingerahmt. |
{{ : | {{ : | ||
Zeile 11: | Zeile 11: | ||
===== Lösungsansatz ===== | ===== Lösungsansatz ===== | ||
- | Im Garten liegt eine 230V Versorgung die aber nicht schaltbar oder dimmbar ist, da andere Verbraucher wie Aussensteckdosen und das Bodenlicht daran angeschlossen sind. | + | Im Garten liegt bei uns eine 230V Versorgung, die aber nicht schaltbar oder dimmbar ist, da andere Verbraucher wie Aussensteckdosen und das Bodenlicht daran angeschlossen sind. |
- | Eine Zusatzverdrahtung zum Haus habe ich ausgeschlossen nachdem ich versucht habe den Verlauf der unterirdischen Rohre zu verfolgen. Also muss etwas drahtloses her, das (wie immer) auch in [[https:// | + | Eine Zusatzverdrahtung zum Haus habe ich ausgeschlossen, nachdem ich erfolglos |
Vorab habe ich schon die LED Spots nach Aussehen, Leistung, Preis und Größe ausgewählt. Dabei fiel die Wahl auf einen 5W/600lm Strahler mit 12V AC/DC Versorgung im IP65 Gehäuse vom thailändischen Amazon: LAZADA. | Vorab habe ich schon die LED Spots nach Aussehen, Leistung, Preis und Größe ausgewählt. Dabei fiel die Wahl auf einen 5W/600lm Strahler mit 12V AC/DC Versorgung im IP65 Gehäuse vom thailändischen Amazon: LAZADA. | ||
Zeile 18: | Zeile 18: | ||
{{ : | {{ : | ||
- | Bei einem Preis von unter 4€ pro Stück kommt das ganze wirklich in einem wasserfesten Alugehäuse mit einer internen Steuerplatine und funktioniert! Lichtgeber ist eine 3mm LED die mit 21.5V bei einem Konstantstrom von 266mA betrieben wird. Die höhere Spannung wird durch einen Boost Regler (BP1808) erreicht, der auch einen ungenutzten DIM Eingang hat. Dieser kann analog oder über ein PWM Signal angesteuert werden. Ein erster Test mit einer 500Hz PWM zeigt das gewünschte Dimmverhalten. | + | Bei einem Preis von unter 4€ pro Stück kommt das ganze wirklich in einem wasserfesten Alugehäuse mit einer internen Steuerplatine und funktioniert! Lichtgeber ist eine 3mm LED die mit 21.5V bei einem Konstantstrom von 266mA betrieben wird. Die höhere Spannung wird durch einen Boost Regler |
- | {{: | + | <WRAP group> |
+ | <WRAP half column> | ||
+ | {{ : | ||
+ | </ | ||
+ | <WRAP half column> | ||
+ | {{: | ||
+ | </ | ||
+ | </ | ||
- | Jetzt brauchen wir nur ein Idee wie wir die im Home Assistant | + | Jetzt brauchen wir nur ein Idee wie wir die im Home Assistant |
- | Erste Versuche mit einer Kommunikation über Niedrigvoltleitungen schlugen aus Zuverlässigkeits- und Skalierungsgründen fehl. Dazu gibt es aber einen pfiffigen Ansatz: [[https:// | + | Erste Versuche mit einer Kommunikation über Niedrigvoltleitungen schlugen aus Zuverlässigkeits- und Skalierungsgründen fehl. Dazu gibt es durchaus |
- | Für Datenübertragungen über mehrere | + | Für Datenübertragungen über mehrere |
===== Hardware ===== | ===== Hardware ===== | ||
- | Der LED Boost Driver mit dem BP1808 muss um eine Schaltung für den. Empfang von seriellen Daten über RS485 erweitert werden und das ganze möglichst klein. Der Innenraum des Lampengehäuses fasst nur ca. 40mm x 20mm. Als Steuer-CPU fiel die Wahl auf ein [[https:// | + | Der LED Boost Driver mit dem BP1808 muss um eine Schaltung für den Empfang von seriellen Daten über RS485 erweitert werden und das ganze möglichst klein. Der Innenraum des Lampengehäuses fasst nur ca. 40mm x 20mm. Als Steuer-CPU fiel die Wahl auf einen [[https:// |
==== Schaltplan ==== | ==== Schaltplan ==== | ||
- | Alles zusammengefasst sieht der Schaltplan so aus: | + | Alles zusammengefasst sieht der Schaltplan |
{{ : | {{ : | ||
- | 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, | + | 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, |
==== PCB ==== | ==== PCB ==== | ||
- | Bei den geometrischen Vorgaben kommen wir um eine beidseitige Bestückung nicht herum. Aber auf der zweiten Seite befinden sich nur die vier SS14 Dioden (D3-D6) des Brückengleichrichters und der große Thru-hole Kondensator | + | Bei den geometrischen Vorgaben kommen wir um eine beidseitige Bestückung nicht herum. Aber auf der zweiten Seite befinden sich nur die vier SS14 Dioden (D3-D6) des Brückengleichrichters und der große Thru-hole Kondensator |
{{ : | {{ : | ||
Zeile 51: | Zeile 59: | ||
{{ : | {{ : | ||
+ | |||
+ | 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 98: | 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 135: | 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 391: | Zeile 405: | ||
</ | </ | ||
- | Gegebenenfalls müssen die Pins für die serielle Schnittstelle und der Richtungspin für die eigene Hardware angepasst werden. | + | Gegebenenfalls müssen die Pins '' |
+ | |||
==== Hardware Gateway ==== | ==== Hardware Gateway ==== | ||
Zeile 403: | 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 417: | 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). |
{{ : | {{ : | ||
- | Damit lassen sich alle Funktionen auf alle oder einzelne LEDs ausführen. Mit **CHK** wird nach angeschlossen LEDs gesucht und im unteren Bereich steht ein einfacher Skript Editor zur Verfügung der die Programmierung von Abläufen erlaubt, bei einer Stepzeit von 100ms also 10Hz. Ein Gimmick für Silvester oder Parties. | + | Damit lassen sich alle Funktionen auf alle oder einzelne LEDs ausführen. Mit **CHK** wird nach angeschlossen LEDs gesucht und im unteren Bereich steht ein einfacher Skript Editor zur Verfügung der die Programmierung von Abläufen erlaubt, bei einer Stepzeit von 100ms also 10Hz. Ein Gimmick für Silvester oder andere |
Zeile 439: | Zeile 456: | ||
* {{: | * {{: | ||
* {{: | * {{: | ||
+ | * {{: | ||
* {{: | * {{: | ||
* {{: | * {{: |