Select your language

© Borgmann Aquaponik & Hydroponik
Alle Rechte Vorbehalten
https://borgmann-aquaponik-hydroponik.ch

Viel Erfolg wünschen wir Ihnen!

Lighting Control in Smart Greenhouse:
    Energy Efficiency and Growth

Lighting Control in Smart Greenhouse: Energy Efficiency and Growth

Light is one of the most critical factors for plant growth. Intelligent lighting control not only optimizes photosynthesis and yield, but also enables a significant reduction in energy consumption. This article highlights technical approaches for dynamic adjustment of lighting in aquaponics and hydroponics systems, from simulating natural day cycles to demand-based supplementary lighting.

3.1 Fundamentals of Plant Light Requirements

Plants use light not only for photosynthesis, but also to control developmental processes (photomorphogenesis). The most important parameters are:

  • Light Intensity: Measured in Photosynthetically Active Radiation (PAR) in µmol/m²/s. Requirements vary greatly between plant species and growth phases.
  • Spectral Composition: The "color spectrum" of light. Blue light promotes compact growth and leaf development, red light promotes flowering and fruiting. Green and yellow components may be reflected or used inefficiently under certain conditions.
  • Photoperiod: The duration of daily light exposure. This influences flower induction and dormancy states.

Conventional timer-based lighting systems can only inadequately represent these complex requirements. Smart control enables dynamic adjustment.

3.2 Dynamic LED Lighting Systems

The use of light-emitting diodes (LEDs) enables precise control of light intensity and spectrum. Modern LED drivers offer dimming functions (PWM) and the ability to individually control different LED colors.

3.2.1 Daylight Simulation with Dimmable LEDs

Replicating the natural course of the day can reduce plant stress and optimize growth.

Technical Implementation:
  1. Multispectral LED Strips/Modules: Use LED strips that make different light colors (e.g., warm white, cool white, red, blue, far-red) separately controllable. Specialized plant LEDs or flexible RGBW/RGBWW strips are suitable for this purpose.
  2. PWM LED Drivers: The intensity of each LED color is controlled via pulse width modulation (PWM). Microcontrollers like the ESP32 have multiple PWM outputs. For high-power LEDs, dedicated LED drivers (e.g., Meanwell LDD-H series for constant current or MOSFET drivers for constant voltage) are required, which in turn are controlled via PWM signals from the microcontroller.
  3. Microcontroller: The ESP32 or Arduino generates PWM signals based on a predefined daylight profile.

Program the ESP32 to slowly increase the intensity of warm white and red LEDs from 0% to maximum value over a period of 30-60 minutes (or longer) (sunrise) and decrease accordingly in the evening (sunset). Blue LEDs could be turned on later and turned off earlier to simulate the blue component of midday light. This requires precise control of the microcontroller's PWM pins.


// Vereinfachtes Arduino/ESP32 Code-Beispiel für Sonnenaufgang/Sonnenuntergang const int warmWhitePin = 13; // PWM-Pin für Warmweiß-LED const int redLedPin = 12; // PWM-Pin für Rot-LED const int blueLedPin = 14; // PWM-Pin für Blau-LED const int sunriseDuration = 30 * 60 * 1000; // 30 Minuten (ms) const int sunsetDuration = 30 * 60 * 1000; // 30 Minuten (ms) const int dayDuration = 12 * 60 * 60 * 1000; // 12 Stunden Taglicht (ms) unsigned long currentTime; unsigned long dayStartTime = 0; // Speichert den Start des aktuellen Tageszyklus void setup() { // Für ESP32 müssen PWM-Frequenz und Auflösung konfiguriert werden ledcSetup(0, 5000, 8); // Kanal 0, Frequenz 5kHz, 8 Bit Auflösung (0-255) ledcAttachPin(warmWhitePin, 0); ledcSetup(1, 5000, 8); // Kanal 1 ledcAttachPin(redLedPin, 1); ledcSetup(2, 5000, 8); // Kanal 2 ledcAttachPin(blueLedPin, 2); Serial.begin(115200); Serial.println("Starte Lichtzyklus."); } void loop() { currentTime = millis(); // Reset des Tageszyklus alle 24 Stunden (oder basierend auf Echtzeituhr) if (currentTime - dayStartTime >= (24 * 60 * 60 * 1000)) { // 24 Stunden dayStartTime = currentTime; Serial.println("Neuer Tageszyklus beginnt."); } long timeInDay = (currentTime - dayStartTime) % (24 * 60 * 60 * 1000); // Zeit seit Tagesstart int warmWhiteIntensity = 0; int redIntensity = 0; int blueIntensity = 0; // Sonnenaufgangs-Phase if (timeInDay < sunriseDuration) { float progress = (float)timeInDay / sunriseDuration; warmWhiteIntensity = (int)(progress * 255); // Max 255 redIntensity = (int)(progress * 200); // Etwas weniger Rot } // Taglicht-Phase (inkl. Blaulicht) else if (timeInDay >= sunriseDuration && timeInDay < (sunriseDuration + dayDuration)) { warmWhiteIntensity = 255; redIntensity = 200; blueIntensity = 150; // Blau hinzu } // Sonnenuntergangs-Phase else if (timeInDay >= (sunriseDuration + dayDuration) && timeInDay < (sunriseDuration + dayDuration + sunsetDuration)) { float progress = (float)(timeInDay - (sunriseDuration + dayDuration)) / sunsetDuration; warmWhiteIntensity = (int)((1.0 - progress) * 255); redIntensity = (int)((1.0 - progress) * 200); blueIntensity = 0; // Blau zuerst weg } // Nacht-Phase else { warmWhiteIntensity = 0; redIntensity = 0; blueIntensity = 0; } ledcWrite(0, warmWhiteIntensity); ledcWrite(1, redIntensity); ledcWrite(2, blueIntensity); delay(1000); // Aktualisierungsrate }

3.2.2 Photoperiod Control

The exact adherence to light-dark cycles is crucial, especially for short-day and long-day plants, to induce or prevent flowering and fruiting.

Technical Implementation:
  1. Real-Time Clock (RTC): An RTC module (e.g., DS3231 or DS1307) on the I²C bus of the microcontroller provides precise time data, independent of the microcontroller's power supply. This is more reliable than internal timers, which are reset during power failures.
  2. Microcontroller & Relay: Controls the main lighting via a relay module based on RTC data.
Practical Idea: Precise Light Timer with RTC

Use an RTC to capture the current time. Define start and end times for lighting in the code. More reliable and precise than pure timers, as the RTC knows the actual time and not just the elapsed time since the last reset. This is particularly important when you need to precisely maintain the photoperiod for flower induction.

3.3 Light Sensor-Based Supplementary Lighting

In greenhouses or at windows, natural daylight can fluctuate. Intelligent control can activate artificial lighting only when natural light is insufficient, which saves considerable energy.

3.3.1 Demand-Controlled Supplementary Lighting

This system uses an ambient light sensor to activate artificial lighting only when needed or adjust its intensity.

Technical Implementation:
  1. Light Sensor (PAR or Lux): A digital light sensor (e.g., BH1750 for Lux, or a dedicated PAR sensor for professional applications) is installed at a representative location in the greenhouse.
  2. Microcontroller: Reads the data from the light sensor and compares it with a predefined threshold value for the desired minimum light intensity.
  3. Actuators – LED Lighting & Relay: Artificial lighting is controlled via relays (for on/off) or PWM drivers (for dimming).

The ESP32 reads the Lux value from the BH1750 sensor. If the value falls below a defined threshold (e.g., 5000 Lux for leafy greens) and the current time is within the desired "light day" (e.g., 6:00 AM to 8:00 PM, controlled by RTC), the supplementary lighting is turned on. If the value rises above the threshold, it is turned off again. For dimmable LEDs, the intensity could be adjusted proportionally to the missing light.

// Vereinfachtes Arduino/ESP32 Code-Beispiel für Zusatzbeleuchtung #include #include // Bibliothek für BH1750 Sensor BH1750 lightMeter; const int auxLightRelayPin = 5; // Pin für Zusatzbeleuchtung const int minLuxThreshold = 5000; // Minimaler Lux-Wert, unter dem Zusatzlicht anspringt void setup() { Serial.begin(115200); Wire.begin(); lightMeter.begin(); // Initialisiere BH1750 pinMode(auxLightRelayPin, OUTPUT); digitalWrite(auxLightRelayPin, HIGH); // Zusatzlicht AUS starten (Relais oft inverted) Serial.println("Starte Lichtsensor-basierte Steuerung."); } void loop() { float lux = lightMeter.readLightLevel(); // Lux-Wert lesen // Hier sollte zusätzlich eine RTC-Abfrage erfolgen, ob es überhaupt "Tag" ist. // if (isDaytime() && lux < minLuxThreshold) { ... } if (lux < minLuxThreshold) { if (digitalRead(auxLightRelayPin) == HIGH) { Serial.print("Lux zu niedrig ("); Serial.print(lux); Serial.println("), Zusatzlicht AN."); digitalWrite(auxLightRelayPin, LOW); // Zusatzlicht AN } } else { if (digitalRead(auxLightRelayPin) == LOW) { Serial.print("Lux ausreichend ("); Serial.print(lux); Serial.println("), Zusatzlicht AUS."); digitalWrite(auxLightRelayPin, HIGH); // Zusatzlicht AUS } } delay(5000); // Alle 5 Sekunden messen }

3.4 Conclusion

Intelligent lighting control is a key element for the efficiency and productivity of modern aquaponics and hydroponics systems. Through precise adjustment of intensity, spectrum and photoperiod, supported by real-time sensor data and programmable microcontrollers, not only can optimal growth conditions be created, but also significant energy savings can be realized. The combination of dynamic light simulation and demand-controlled supplementary lighting enables maximum utilization of natural light and minimizes the use of artificial lighting. The next article will address the control of other environmental parameters such as temperature, humidity and CO2 concentration.

Context: