Plant monitor

It started as one sensor in one pot that told me when to water. Version 2 watches four plants, reads the room's temperature and humidity, and waters them itself.

Board
ESP32-C3 SuperMini
Sensors
Four soil moisture sensors, a DHT22 for temperature and humidity
Watering
A relay switching a 12 V water pump
Network
Local web page behind Caddy HTTPS, ntfy alerts to my phone

Version 2: ESP32-C3 with auto-watering

  • More inputs. The ESP8266 has a single analog input, so it could only read one soil sensor. The ESP32-C3 has several, enough for four.
  • Climate readings. A DHT22 adds air temperature and humidity next to the soil readings.
  • Automatic watering. The board drives a relay that switches a 12 V pump, so the plants get water without me.
  • Same plumbing as v1. It still serves a local web page and pushes alerts through ntfy, with Caddy on the home server adding HTTPS in front.

Version 1: ESP8266 with one sensor

  • An ESP8266 read one analog soil moisture probe, calibrated against dry air and water.
  • On boot it joined Wi-Fi, synced its clock over NTP, and started a small web server showing the moisture percentage.
  • Every five minutes it took a reading, and three times a day it pushed that reading to my phone.
  • Pi-hole gave it a local name, and Caddy put HTTPS in front of its plain-HTTP page.