Electronics & Firmware

Control Electronics & Pinout

The wall is controlled by an ESP8266-based NodeMCU microcontroller running custom firmware. The controller handles pump scheduling, LED dimming, water level monitoring, and serves a web interface for configuration — all accessible over WiFi without physical access to the unit.


Microcontroller

The brain of the system is an ESP8266 NodeMCU (Wemos D1 Mini compatible pinout). All outputs operate at 3.3V logic level. The firmware is written in Arduino C++ and supports OTA (over-the-air) updates, meaning the software can be updated remotely without touching the hardware.


Pin Assignment

PinGPIOFunctionComponent
D3GPIO0Pump controlFafeicy 3.3V 1-channel relay module
D5GPIO14LED channel 1 (PWM)MOSFET module (diymore)
D6GPIO12LED channel 2 (PWM)MOSFET module (diymore)
D1GPIO5Ultrasonic TRIGAJ-SR04M water level sensor
D2GPIO4Ultrasonic ECHOAJ-SR04M water level sensor
D4GPIO2BuzzerKY-006 passive buzzer
A0ADCReservedMoisture sensor (future use)

Power Distribution

The system uses three separate DC power supplies. Each of the two LED strips runs on its own dedicated 24V supply — the supplies that came with the strips — with each strip switched independently via its own MOSFET module. Keeping the supplies separate avoids interference between channels and simplifies fault diagnosis. The pump and the Mini360 DC-DC buck converter share a single 12V supply. The buck converter steps the 12V down to 3.3V, fed directly into the VIN pin of the NodeMCU, bypassing the onboard regulator entirely.

Initial attempts to power the NodeMCU via the 5V VIN pin resulted in insufficient current delivery to the MOSFET modules — the LEDs glowed faintly rather than switching properly. Using the buck converter resolved this.

An important lesson from the build: wire gauge matters significantly at low voltages. Thin signal-grade wiring caused visible LED flickering under load. All power-carrying connections were therefore rebuilt using AWG 18 wire. The Grove connector carrier cables were assembled by hand using AWG 18 cores rather than standard thin Grove cable stock — this eliminated the flickering significantly.


Pump Control

The pump is switched via a diymore MOSFET module which bridges the 3.3V logic output of the ESP8266 to the 12V load side. The firmware supports three operating modes: manual on/off, interval-based automatic watering with configurable hours/minutes/seconds, and schedule-based watering with up to 8 daily trigger times. A pre-wetting mode delivers short bursts before the main watering cycle to counter hydrophobic fleece behaviour after extended dry periods — essential after the wall has been dry for more than a few hours.


LED Control

Two independent LED channels allow the light output to be split or staged across the wall. Both channels support PWM dimming via dedicated diymore MOSFET modules. The firmware implements a full daily light schedule with configurable ramp-up and ramp-down times, peak brightness windows, and a hard maximum PWM cap of 40%. The 3V–5V logic to 12V–24V switching capability of the MOSFET modules makes them well suited for driving LED strips directly from microcontroller pins.


Water Level Monitoring

A first attempt at water level monitoring used an AJ-SR04M ultrasonic sensor mounted in the tank lid. In practice, the sensor proved unsuitable for this setup: operated at 3.3V, its blind zone of approximately 20 cm made it unable to measure above roughly 40% fill level in the 34 cm tall tank.

The replacement will be a VL53L0X time-of-flight laser sensor. It offers millimetre resolution, no relevant blind zone, and runs natively at 3.3V via I2C – fitting directly into the existing sensor mounting hole in the tank lid with a PG13.5 adapter. The main uncertainty is whether the clear brown iron-chelate nutrient solution reflects the 940nm laser reliably at the water surface. A floating ping-pong ball in a guide tube is planned as a fallback reflector if direct surface measurement proves unreliable. The firmware calibration and daily logging logic remains unchanged.


Connectivity & Remote Management

The controller connects to the local WiFi network and exposes a web interface on port 80. All settings — watering schedules, LED timing, pre-wetting parameters — are configurable through the browser interface without touching the hardware. Firmware updates are delivered over-the-air (OTA) via a dedicated update endpoint. For a wall mounted in a hard-to-reach position, OTA capability is not a convenience feature — it is a necessity.


Components Used

ComponentFunction
ESP8266 NodeMCUMain controller
diymore MOSFET module 3V/5V → 12V/24V, 22APump & LED switching
Fafeicy 3.3V 1-channel relay module with LEDPump control (alternative)
Mini360 DC-DC buck converter 4.75–23V → 1–17V12V to 3.3V for NodeMCU
VL53L0X time-of-flight laser sensorWater level measurement
KY-006 passive buzzerAcoustic alerts
Grove connector carrierModular wiring
AWG 18 wire (custom Grove cables)Power distribution — critical for stable LED operation

Greenwall Control — Custom Firmware for Automated Living Walls

This firmware runs on an ESP8266/ESP32 microcontroller and manages all core functions of an automated vertical green wall: irrigation, LED grow lighting, and water tank monitoring — entirely self-contained, accessible via a local web interface over WiFi.

The irrigation system supports both interval-based and schedule-based watering cycles. A dedicated pre-wetting mode addresses the hydrophobic behaviour of dry fleece pockets by running short water bursts with absorption pauses before the main cycle begins — preventing runoff and ensuring even substrate saturation.

LED lighting follows a fully configurable daily schedule with smooth fade transitions between dim and full brightness phases, simulating natural light conditions for the plant community.

Water consumption is tracked via ansensor with a multi-point calibration system. All settings are stored persistently on-device and the firmware supports over-the-air (OTA) updates, so the controller never needs to be physically accessed after installation.

The interactive demo below reflects the actual web interface running on the device.