Greenhouse Controller
A solar-powered greenhouse controller on a 12 V lead-acid battery, designed from Circuit Issues template blocks. It is being redesigned now; this page tracks how the blocks fit together on a real product.
System photo — coming with build log
System overview
The controller charges a 12 V lead-acid battery from a solar panel, runs pumps and grow LEDs from that battery, and measures soil moisture and its own energy use. Data and controls are exposed over Wi-Fi through ESPHome and Home Assistant.
| MCU | 0140 ESP32-S3 core (WROOM-2), Wi-Fi + BLE |
| Energy | Solar panel → 0120 MPPT charger (BQ24650) → 12 V lead-acid battery |
| Logic supply | 0101 buck converter (TPS562203) from the 12 V battery |
| Load control | 0110 low-side switches for pumps and grow LEDs; 0115 high-side switches for 12 V rails |
| Telemetry | 0010 INA219 current, voltage and power monitor |
| Sensors | Soil moisture inputs (new 0–10 V analog input block) and I²C environment sensors |
| Firmware | ESPHome / Home Assistant |
| Status | Schematic redesign from the blocks; prototypes follow |
Templates used
Charging, regulation, switching, telemetry and control come from Circuit Issues blocks. 0120 and 0101 go onto the board once their open design-review items are fixed.
0140 ESP32-S3 Core (WROOM-2)
Free KiCad 10 design block: ESP32-S3-WROOM-2 (16 MB flash, 8 MB PSRAM) with native USB-C, ESD protection, BOOT/RESET buttons and 22 GPIOs on labels.
0120 BQ24650 MPPT Solar Charger
KiCad 10 design block: TI BQ24650 MPPT charger for a 12 V lead-acid battery (14.1 V) from a solar panel up to 28 V; status and PV-voltage outputs.
0101 TPS562203 Buck 2 A
KiCad 10 design block: TI TPS562203 synchronous buck, 4.5–17 V in, 3.3 V / 2 A out (4.93 V option), with optional reverse-polarity diode.
0110 Low-side Switch 5 A
KiCad 10 design block: logic-level N-MOSFET low-side switch for pumps, LED strips and solenoids, 24 V / 5 A, PWM-capable from a 3.3 V GPIO.
0010 INA219 Current / Power Monitor
KiCad 10 design block: TI INA219 high-side current, bus-voltage and power monitor on I²C with a 22 mΩ shunt, 5 A at up to 26 V and selectable address.
Key integration decisions
One 12 V battery bus
The 0120 MPPT charger keeps the lead-acid battery charged from the panel; loads and the 0101 buck for the logic rail run from the same battery.
Freewheel diodes on every pump
Pumps and solenoids are inductive, so the 0110 low-side switches are built with their freewheel diode fitted.
Measurement + switching feedback loop
0010 telemetry tells the firmware how much energy is available and used, and 0110/0115 switch the loads accordingly: energy-aware greenhouse automation.
Blocks verified on the prototype
Bring-up of the first prototypes is where blocks move to the “hardware verified” status shown on their template pages.
Build log
4 posts plannedWhy I Built a Greenhouse Controller From Templates
PlanningComing soonThe motivation, system requirements, and why reusing proven building blocks beats designing from scratch every time.
Integrating Five Blocks on One PCB
HardwareComing soonCombining 0140, 0120, 0101, 0110, and 0010: how rails, sensing, switching, and control fit together in one system.
Board Bring-Up and Sensor Calibration
DebugComing soonFirst power-on checklist, probing the rails, flashing firmware over USB-C, and checking each block against its specs.
ESPHome Integration and Home Assistant Dashboard
FirmwareComing soonWriting the ESPHome YAML, mapping GPIOs to sensors and pumps, and building the Home Assistant dashboard.
Video walkthrough
Video coming with build log series
Build your own project from templates
Start with the free 0140 ESP32-S3 core and add the power, measurement and switching blocks as they are released.