What's new
  • ICMag and The Vault are running a NEW contest! You can check it here. Prizes are seeds & forum premium access. Come join in!

DIY Smart Grow LED Light

doc_loomis

Active member
Hallo zusammen.

Wie einige bereits wissen steht bei mir ein Umzug in ein neues Zelt an. Dazu möchte ich natürlich auch die Beleuchtung erneuern und anzupassen. Einige kennen vielleicht schon meine DIY LED Beleuchtung für das 80x40 Zelt. Diese geht an einen Freund und ich werde mir eine neue bauen.
Dazu haben ich auch direkt den Einwand von @early_bird aufgegriffen, und habe die Lampe mit mehreren Treibern und Dimmern ausgestattet. Mehr dazu später.


Vorüberlegungen

Die Idee ist also eine Lampe zu bauen, die ich über das Internet steuern kann. Dazu möchte ich die Lampe in mehrere Segmente aufteilen, die ich einzeln an und ausschalten und dimmen kann. Und das Ganze möchte ich natürlich nicht vom Handy aus machen, sondern automatisiert durch meinen Python Controller, den einige vielleicht aus meinen Grow Report kennen. Im Betrieb möchte ich einen DLI angeben können, und der Controller soll den Rest übernehmen.
Also die Lampe an und ausschalten, dimmen, die Segmente steuern und eine Transition von Sonnenaufgang zu Sonnenuntergang simulieren. Dazu möchte ich die 3 weißen Segmente zunächst um eine Minute versetzt auf dem untersten Level anschalten, und dann über 15 Minuten auf den Level hochdimmen, der den gewünschten DLI für die Wachstums-/Blütephase erreicht. Niemand möchte schließlich mit grellstem Licht geweckt werden :D Und Abends entsprechend wieder runterdimmen und ausschalten. Die roten Segmente sollen dann noch 15 Minuten länger anbleiben, um die Erholung zu fördern. Außerdem wird ab der zweiten Woche der Blütephase das UVA Segment sukzessive hochgefahren, um die Harzproduktion zu fördern.

Mit dem Plan bin ich also auf Einkaufstour gegangen. Das Angebot von cre.science hat mich überzeugt. Vor allem der hervorragende Simulator war sehr hilfreich beim zusammenstellen und berechnen der Lampe. Ich habe die Größe meines Zelts angegeben, die gewünschten Module ausgewählt, angeordnet und die Lampe für verschiedene Höhen simuliert, um sicherzugehen, dass ich genug Leistung habe. Das Tool ist wirklich hervorragend und man kann viel Zeit damit verbringen, die Lampe zu optimieren.
Nur ein kleiner Hinweis, die HD Version des Simulators ist bei mir immer auf Speicherprobleme gelaufen, SD tut es aber völlig (ist auch die Standardeinstellung).
Die simulierten Werte habe ich entsprechend in meinen Controller übernommen.
Hier ein paar Impressionen vom Simulator und meiner geplanten Lampe:

Pasted image (4).png Pasted image (3).png Pasted image (2).png Pasted image.png

Nachdem also sichergestellt ist, dass das Licht relativ homogen verteilt ist, und die Leistung stimmt, war ich bei cre.science vor Ort und habe mich nochmal von Elia und Simon beraten lassen, und hab auch gleich die entsprechenden Teile mitgenommen. Cre.science nutzt für die Montage der Strips die 2020er Standardaluprofile, das würde ich auch empfehlen. Wer den Thread mit den Lientech Modulen kennt, weiß, dass diese nicht besonders gut zu verarbeiten sind. Also am besten direkt mit 2020 Aluprofilen arbeiten.
Ein kleiner Kritikpunkt sei noch erwähnt, cre.science nutzt 2020er Profile vom I-Typ mit Nut 5. Zubehör dafür ist schwieriger zu bekommen, als für die B-Typ Profile mit Nut 6. Das ist aber auch schon alles, was ich zu bemängeln habe.
Die Strips sind sehr hochwertig, und der Besuch vor Ort war sehr angenehm.

Danke und viele Grüße an Elia und Simon.


Teileliste für die Lampe

- 6 x Flux Strip cSpec Enhanced
- 2 x Apex Strip 730 Mk III
- 2 x Apex Strip UVA 365-385nm
- 3 x Meanwell XLG-75-H-AB
- 2 x Meanwell LCM-25 dimmbar
- 2 x 2020 Aluprofil 76cm
- 4 x 2020 Aluprofil 48cm
- 2 x 6020 Aluprofil 48cm
- Alukabelkanal 8cmx8cmx76cm (für die Treiber)
- Innenwinkel
- Endkappen
- Nutensteine
- Innensechskantschrauben
- Kabelhalter
- Kabelbinder
- Kabel (0,5mm², 0,75mm², 1,5mm², Schuko, Wago Klemmen)
- Kabelschraubverbinder IP67
- Kunststoffbox für die Switches und Dimmer (alles, was Internet benötigt wäre im Alukabelschacht abgeschirmt)
- Kabelverschraubung/-durhführung zur Druckentlastung in den Kabelkanal und die Smart Box
Optional (aber empfohlen):
- Aderendhülsen
- Schrumpfschlauch
- Crimpzange
- Abisolierzange
- Entmanteler
- Schukostecker
- Wärmeleitpaste/-klebeband
- Standfüße
- Magnetwasserwaage (um die Lampe später gerade ausrichten zu können)

Zubehörteile findet man zB bei Dold Mechatronik. Bei Amazon ist es schwieriger die richtigen Teile zu bekommen, da die meisten für Typ-B Nut 6 sind. Die Profile und Zubehörteile sind aber auch bei cre.science erhältlich.
Den Alukabelkanal habe ich mir bei Dold passend zusägen lassen.


Überlegungen für die Schaltung

Hier habe ich wie gesagt auf den Ratschlag von @early_bird gehört, und ein wenig mehr Geld in die Hand genommen. Dafür bin ich aber auch flexibler. Es hängen jeweils zwei 3500er Strips an einem XLG-75 Treiber und bilden ein Modul. Die beiden Farred und UVA Apex Strips hängen jeweils an einem LCM-25 Treiber.
Die drei weißen Module sollen gemeinsam gedimmt werden können. Das UVA und Farred Modul werden auch gemeinsam an einem Dimmer hängen. Dazu habe ich also jeweils die Dimmausgänge parallel geschaltet und an je einen Shelly v3 Dimmer gehängt.
Wo wir auch schon bei den smart Features wären.
Um die einzelnen Modulpaare wie gewünscht zeitversetzt voneinander starten zu können, habe ich mir noch 2 Sonoff 4CHR3 Switches bestellt. Das erlaubt das Ein- und Ausschalten der einzelnen Kanäle per Zeitplan und natürlich übers Netz.
An einem Sonoff werden die drei weißen Module und der Dimmer für diese angeschlossen, am anderen das UVA und Farred Modul und der Dimmer für diese. Die Sonoffs und der Dimmer werden dann über meinen Python Controller gesteuert.


Teileliste für smarte Features

- 2 x Sonoff 4CHR3
- 2 x Shelly v3 Dimmer 0/1-10V

Die Sonoffs sind bei Amazon erhältlich, die Shellys habe ich direkt bei Shelly bestellt, da es bei Amazon nur die v2 gab. Die v3 sind erst kürzlich released worden.


Kosten

Die gesteigerte Flexibilität und die smarten Features haben ihren Preis. Insgesamt haben alle aufgeführten Teile etwa 650-700€ gekostet. Inklusive aller optionaler Teile.


Zusammenbau

Wie schon erwähnt ist es viel einfacher und befriedigender die Strips von cre.science zu verbauen, als die Lientech Module. Die Strips passen perfekt auf die 2020er Profile und haben entsprechende Löcher zur Verschraubung. Ich habe noch Wärmeleitpaste verstrichen bzw Wärmeklebeband verlegt, und die Strips darauf befestigt. Es hilft den Strip neben das Profil zu legen, und schonmal die Nutensteine grob zurecht zu schieben. Der Rest ist dann einfach.

PXL_20240603_163439286.MP.jpg.converted.jpg PXL_20240603_163400583.MP.jpg.converted.jpg PXL_20240603_163916433.MP.jpg.converted.jpg PXL_20240603_164307947.MP.jpg.converted.jpg PXL_20240617_134649643.MP.jpg.converted.jpg
 
Last edited:

doc_loomis

Active member
Teil 2

Sobald die Strips befestigt sind legen wir uns das künftige Design aus. Wenn wir damit zufrieden sind, geht's ans Bestücken mit Innenwinkeln, Ausmessen und Festschrauben. Ich habe mir zusätzlich noch kleine Standfüße für die Lampenenden besorgt, damit man die Lampe auch mal beruhigt auf den Boden legen kann, ohne die Strips zu beschädigen. Kann ich auch nur empfehlen, gibt's für schmales Geld im Netz.

PXL_20240617_135713788.MP.jpg.converted.jpg PXL_20240617_140056201.MP.jpg.converted.jpg PXL_20240617_144614222.MP.jpg.converted.jpg PXL_20240617_151108224.MP.jpg.converted.jpg


Verkabelung

Wie schon erwähnt kommen jeweils zwei Strips in Reihe an einen Treiber. Die neuen cre.science Module haben gute Steckverbindungen, die man mit einem Simkartentool einfach lösen kann. Ich würde für die Verkabelung wärmstens starre 0,5mm² Kabel empfehlen. Ich habe mir dazu bei Amazon ein Set mit verschiedenen Farben bestellt, um die Kabel später auseinanderhalten zu können.
Nachdem die Module jeweils verkabelt sind werden die beiden zu einem Modul gehörenden Kabel mit einem Schrumpfschlauch verbunden. Anschließend werden diese Kabel dann nochmal mit einem Schrumpfschlauch umwickelt, und ein einzelnes Kabel zu haben. Das macht die Verkabelung später einfacher und übersichtlicher.
Die Treiber landen später alle im Kabelkanal, für die Verkabelung selbst ist es allerdings ratsam, diese neben den Kanal zu legen. Zum Einen um Platz zum Arbeiten zu haben, zum Anderen um direkt per Augenmaß abschätzen zu können, wie lang die Kabel sein müssen, und ob später alles in den Kanal passt. Die Kabel der Treiber habe ich entsprechend gekürzt und mit Aderendhülsen versehen.
Der Dimmerausgang der Treiber wird jeweils zusammen an eine 5er Wago Klemme geschlossen, mit einem Ausgang, der zum Dimmer geht.
Die Treiber und der Dimmer bekommen ihren Strom von den Sonoff Switches. Diese landen in der SmartBox um Konnektivität sicherzustellen.

PXL_20240618_124128098.MP.jpg.converted.jpg PXL_20240618_054120685.jpg PXL_20240618_084632104.MP.jpg.converted.jpg PXL_20240618_130349482.MP.jpg.converted.jpg

Und die Skizze zur Verkabelung. Habe nur jeweils ein Strip-Modul eingezeichnet, um die Zeichnung nicht zu überladen. An jedem Treiber hängt natürlich je ein Modul bestehend aus 2 Strips.
verkabelung-white.drawio (1).png verkabelung-booster.drawio.png
 
Last edited:

doc_loomis

Active member
Teil 3

Jetzt noch alles in die entsprechenden Boxen und Kanäle stecken, und verbinden.
PXL_20240618_105859548.MP.jpg.converted.jpg PXL_20240617_184534556.MP.jpg.converted.jpg PXL_20240618_105933313.MP.jpg.converted.jpg PXL_20240618_110847742.MP.jpg.converted.jpg PXL_20240618_110905925.MP.jpg.converted.jpg PXL_20240618_092426221.MP.jpg.converted.jpg

Testlauf
Daumen drücken, Lampe anschließen und Testlauf starten.

Screenshot_20240619-140538.png IMG-20240618-WA0011.jpg IMG-20240618-WA0014.jpg

Abschluss
Deckel drauf, und auf den neuen Grow warten :)
PXL_20240619_104059178.MP.jpg


Bonus (für die Techies)

Der Python Code für den gewünschten DLI und automatischen Dimmlevel könnte einfacher nicht sein.
Wir übernehmen die Werte aus dem Simulator und berechnen den DLI für die Maximaleinstellung, und leiten daraus den gewünschten Dimmwert ab. Die Leistungskurve der Module ist fast linear, und nur im untersten Bereich ein wenig gekrümmt, daher nehmen wir Linearität an. Das gewünschte Dimmlevel ergibt sich entsprechend aus gewünschtem DLI / max DLI.

Python:
pfd_per_height = {
    20: {"min": 103, "max": 1398},
    30: {"min": 95, "max": 1275},
    40: {"min": 85, "max": 1168},
}


def actual_dli(ppfd: float, light_hours_day: int) -> float:
    return ppfd * light_hours_day * 3600 / 1_000_000


# get required dim level for a desired dli
def calculate_dim_level_for_dli(desired_dli: float, light_hours_day: int, lamp_height: int) -> float:
    return desired_dli / actual_dli(pfd_per_height[lamp_height]["max"], light_hours_day)

round(calculate_dim_level_for_dli(desired_dli=50, light_hours_day=18, lamp_height=20), 2) #=> ergibt 0.55, also 55% Dimmlevel
 
Last edited:

Uludag

Well-known member
Moderator
Chat Moderator
Ja ist cool, vielen dank fürs zeigen und detailiert beschreiben! Ich häng das mal Im Indoor report forum oben an für paar Tage damit du nen bisschen Aufmerksamkeit abkriegst! Danach werde ich deinen und Lehmis Lampenbau report zusammen legen als Hall of fame Post. :bandit:
 

doc_loomis

Active member
Beeindruckend und fantastisch umgesetzt.
Vor allem ist sie auch optisch richtig schön anzusehen

Ja ist cool, vielen dank fürs zeigen und detailiert beschreiben! Ich häng das mal Im Indoor report forum oben an für paar Tage damit du nen bisschen Aufmerksamkeit abkriegst! Danach werde ich deinen und Lehmis Lampenbau report zusammen legen als Hall of fame Post. :bandit:
Vielen Dank :) Freut mich, dass es gefällt.

Wie hast du das hingekriegt das du über Shelly die Lampe dimmen kannst ?

Die Dimmer sind parallel geschaltet und hängen am Shelly. Ich füge die Skizzen auch oben noch ein.

verkabelung-white.drawio (1).png verkabelung-booster.drawio.png
 
Last edited:

doc_loomis

Active member
Teil 4
Wie schon an anderer Stelle gesagt, war ich nicht glücklich damit die Lampe manuell in der Höhe anpassen zu müssen. Also habe ich einen Distanzsensor entworfen. Dieser besteht aus einem ESP32 Board (AzDeliver D1 Mini) und 3 VL53L0/1Xv2 Laser Distanzsensoren, die es jeweils für 1-5€ zu kaufen gibt.

Idee
Die Sensoren messen den Abstand zu den Pflanzen und dimmen die Lampe selbständig auf das für das auf das gegenwärtige Stadium passende Level.

Prototyp
Zunächst habe ich einen Prototypen gebastelt, die Sensoren mit USB-C Kabeln verlötet, Gehäuse für die Sensoren gedruckt, und alles getestet.
Screenshot from 2024-09-19 18-50-18.png Screenshot from 2024-09-19 18-50-02.png Screenshot from 2024-09-19 18-49-50.png Screenshot from 2024-09-19 18-49-35.png

Code:
$ curl http://distance-sensor
{"sensor3": 534, "sensor2": 476, "sensor1": 635}

Als klar war, dass das funktioniert, und ich den Controller über mein Netzwerk abfragen kann und die Werte der Sensoren erhalte, habe ich mich drangemacht und ein PCB erstellt und bestellt, um alles zu finalisieren.

Screenshot from 2024-09-19 18-55-05.png

Ein wenig Gelöte, ein bißchen 3D Druck für das Gehäuse und fertig ist die automatische Distanzmessung :p Die Gehäuse der Sensoren haben eingedruckte Magnete, so dass diese einfach an die Halterungen klippen. Das ist sehr befriedigend anzubringen und zu lösen, Magnete haben etwas Magisches :)

Screenshot from 2024-09-19 19-00-19.png

Und so sieht das Ganze dann im Growzelt aus.

Screenshot from 2024-09-19 18-58-41.png Screenshot from 2024-09-19 18-58-26.png Screenshot from 2024-09-19 18-57-55.png

Wer an den Plänen des PCB Boards, oder an den 3D Druck Dateien interessiert ist, kann sich gerne melden. ich habe noch einige PCB Boards rumliegen, da die Mindestbestellmenge 5 ist, und ich ja nur 1 brauchte :)
 
Last edited:

doc_loomis

Active member
Teil 5

Da nun alle Sensoren und Smart Switches und Dimmer verbaut sind, und die Lampe sowohl internetfähig, als auch lagebewusst ist, können wir an die Automatisierung gehen.
Zunächst erfassen wir die Werte im Prometheus und zeigen sie in Grafana an.
Der Wert der Sensoren für die Höhe. Ich nehme den Durchschnitt.

Screenshot from 2024-09-19 19-04-34.png

Dann habe ich die gewünschten DLI Werte für das jeweilige Stadium definiert:
Code:
desired_dli_per_week = {
    "1": 35,
    "2": 42,
    # flower
    "3": 28,
    "4": 30,
    "5": 34,
    "6": 36,
    "7": 38,
    "8": 40,
    "9": 40,
    "10": 42,
    "11": 42,
    "12": 38,
}

Damit lässt sich sehr einfach berechnen, welcher Dimmlevel zum gewünschten DLI führt:
Code:
{'current_brightness': 55.8, 'desired_brightness': 55.8, 'current_dli': 35.0, 'desired_dli': 35, 'max_potential_dli': 62.7264, 'height': 54, 'ppfd': 540.14, 'switch_is_on': True, 'dimmer_is_on': True, 'is_transitioning': False}

Die Werte auch in Grafana übernommen ergibt sich folgendes Bild:
1726765806948.png

Wie gewünscht geht die Sonne eine Stunde lang auf, und eine Stunde lang unter. Die Kurven für desired brightness und current brightness, sowie desired DLI und actual DLI sind quasi deckungsgleich, so dass die Mission als erfüllt angesehen werden kann :)
 
Top