Projects / Home automation

Smart Plant Buddy – soil moisture monitor with a face

A tiny smart stake for your pot that shows how thirsty your plant is – with a cheerful (or worried) face.

Inside: board, sensor and OLED wired

Photo: webguyatwork, Printables model 832485 (CC0)

Choose how it arrives

₹1,322

Before shipping. The courier fee is calculated from your PIN.

  • 5 printed parts
  • ESP32 D1 Mini board, capacitive soil sensor, 0.96" OLED
  • Wire, screws, micro-USB cable
  • Ready ESPHome configuration and illustrated guide
Order diy kit

Beginner

What it is

Push the Plant Buddy into the soil and its little screen tells you, at a glance, how your plant is doing. You get the moisture percentage and a face that goes from cool to confused to crying as the soil dries out. Your money plant, tulsi or monstera will never be forgotten again.

Inside is a capacitive moisture probe. It doesn't corrode like cheap metal-fork sensors, so it lasts for years in the pot. An ESP32 board reads it and drives a crisp OLED display. It also joins your home Wi-Fi, so you can check every plant from your phone's browser. If you use Home Assistant, it appears automatically and can trigger watering reminders or a pump.

It's a thoughtful gift for plant parents and an easy, rewarding first electronics build. There's a little soldering, all big friendly joints.

Components

Each line is the price of that part. The tier price above is the full price for that way of buying it, before shipping.

PartQtyEachLine
ESP32 D1 Mini board (ESP32-WROOM-32, micro-USB)1₹496₹496
Capacitive soil moisture sensor v2.0 (analog)1₹54₹54
0.96" OLED display 128×64, I2C, 4-pin (SSD1306)1₹203₹203
23 AWG single-strand wire, red + black 1 m each1₹25₹25
M3 × 15 mm Phillips screws (pack of 4; 2 used)1₹8₹8
Micro-USB cable 1 m (power)1₹55₹55

Printed parts

Print just the parts · ₹388 before shipping.

Build guide

The DIY kit includes this guide. Assembled and fully built orders include it too, for care and the steps that remain.

Build your Smart Plant Buddy

Plants can't tell you they're thirsty, but now they can show you. Plant Buddy sits on top of a moisture probe in the pot and shows a live percentage with a little face: cool when the soil is happy, worried as it dries, and very dramatic when it's bone-dry. It also joins your Wi-Fi so you can check on your plants from your phone.

Which version do you have? - DIY kit: follow every step. - Assembled: soldering, fitting and firmware are done. Start at Step 7 (close the case), then Wi-Fi setup and Calibration. - Fully built: it's calibrated and named. Go to Wi-Fi setup (if not pre-set) and Using it.

Plant Buddy on its probe

What's in the box

| Item | Qty | |---|---| | Printed case bottom, case top, OLED carriage, ESP32 carriage, spacer | 5 | | ESP32 D1 Mini board | 1 | | Capacitive soil moisture sensor (with 3-wire lead) | 1 | | 0.96" OLED display (I2C, 4-pin) | 1 | | Red and black wire, 2 × M3 screws, micro-USB cable | 1 set |

You'll also need a USB phone charger to power it. Plant Buddy uses very little power.

3D render of the printed parts (not a photo)

Tools you'll need

  • Soldering iron and solder, plus a stand and damp sponge
  • Wire stripper or craft knife, and side cutters
  • Small Phillips screwdriver
  • A computer with Chrome or Edge (for one-click flashing) and a smartphone

Safety notes

  • The soldering iron is around 330 °C. Always use the stand, work in a ventilated spot and wash your hands afterwards.
  • Only the probe goes in the soil. Keep the case, board and USB plug dry. Water from the top of the pot, away from the case.
  • Use a proper USB charger, and route the cable so nobody trips over it or pulls the pot off a shelf.
  • Supervise children while soldering.

Step-by-step build

1. Shorten the sensor lead

Cut the sensor's 3-wire lead to about 5 cm and strip 3 mm from each wire. Keep the plug end on the sensor. A short lead fits neatly in the case.

2. Solder the sensor to the board

On one side of the ESP32 D1 Mini, solder the sensor wires to these pins:

  • VCC (red) → 3V3
  • GND (black) → GND
  • AOUT (yellow/blue) → IO34

3. Prepare the OLED wires

Cut four wires about 5 cm long. If possible use four colours. Solder them to the other side of the board: 3V3, GND, IO21 and IO22. Inside view

4. Fit and wire the OLED

Drop the OLED into the OLED carriage, screen facing out. Push the four wires through from behind and solder them on top of the OLED's pins: VCC ← 3V3, GND ← GND, SDA ← IO21, SCL ← IO22. Match by the printed labels, because the pin order varies between displays. Parts and electronics

5. Board and sensor into the case

Put the board into the ESP32 carriage, then slide it into the case bottom, with the USB port lined up with its opening. Lay the soil sensor in its slot so the screw cut-outs line up with the screw holes.

6. Spacer and screen

Feed the OLED and its carriage through the carriage spacer. Slide the spacer down into the case bottom above the board. Fitting the screen assembly

7. Close the case

Flash the firmware first (next section) so you can check the screen works. Then fit the OLED assembly into the window of the case top and place the top on the bottom. It catches at the end away from the screws. Drive the two M3 screws in until snug. Closed case

Wiring

Wiring diagram

| From | To ESP32 D1 Mini | |---|---| | Sensor VCC | 3V3 | | Sensor GND | GND | | Sensor AOUT | IO34 | | OLED VCC | 3V3 | | OLED GND | GND | | OLED SDA | IO21 | | OLED SCL | IO22 |

Firmware flashing

Plant Buddy runs ESPHome, the open-source smart-home firmware (<https://github.com/esphome/esphome>). Our configuration is docs/firmware/plant-buddy.yaml.

Easiest: one-click flash from your browser

  1. Plug the board into your computer with the micro-USB cable.

- If no port appears, install the CH340 or CP210x USB driver. Which one depends on the chip on your board.

  1. Open <https://web.esphome.io> in Chrome or Edge and click Connect. Choose the board's serial port.
  2. Click Install, choose docs/firmware/plant-buddy-factory.bin from this project, and wait for it to finish.

To customise it (plant name, calibration): install ESPHome (pip install esphome, or the ESPHome add-on in Home Assistant). Edit the substitutions: at the top of plant-buddy.yaml, and put your Wi-Fi in secrets.yaml. Then run esphome run plant-buddy.yaml. Later updates can go over Wi-Fi.

Wi-Fi setup

  1. Power Plant Buddy from a USB charger. After about a minute without known Wi-Fi it opens a hotspot called Plant-Buddy-Setup (password plantbuddy).
  2. Join it from your phone. A page opens (or go to 192.168.4.1). Pick your home 2.4 GHz network, enter its password and save.
  3. Plant Buddy restarts and joins your network. Visit http://plant-buddy.local (or the IP your router shows) to see live readings.
  4. Using Home Assistant? It will be discovered automatically under Settings → Devices.

Calibration (5 minutes, worth it)

Every probe is slightly different, so this step turns its voltage into an honest 0–100 %.

  1. Open the Plant Buddy web page and watch Soil Sensor Voltage.
  2. Dry: hold the probe in the air and note the voltage, around 2.2 V.
  3. Wet: stand the probe in a glass of water up to the white line, never above it, and note the voltage, around 1.0 V.
  4. Put these into dry_volts and wet_volts in plant-buddy.yaml and re-install.

Testing and using it

  • Push the probe into the soil up to the white line, about 2–3 cm from the plant's stem.
  • Water the plant. The reading should rise within a minute and the face should cheer up.
  • As a rough guide, most houseplants are happy at 40–80 %. Succulents like it drier; ferns like it wetter.

Troubleshooting

| Problem | Try this | |---|---| | Screen blank | Check SDA → IO21 and SCL → IO22 (swapping them is the classic mistake). Re-check VCC and GND. A few OLEDs use address 0x3D; change address: in the YAML. | | Reading stuck at 0 % or 100 % | Calibrate (see above). Check the sensor's signal wire is on IO34. | | Reading jumps around | Push the probe in firmly. Air pockets cause noise. Check the joints for a cold, dull solder joint. | | No setup hotspot | Wait a full minute after power-up; re-flash with the factory file. | | Can't flash, no port | Install the CH340/CP210x driver and try a different USB cable (some are charge-only). |

Credits

  • Case design, photos and the original ESPHome sensor config by webguyatwork: "ESP32 Plant Moisture Sensor with OLED Screen" (<https://www.printables.com/model/832485-esp32-plant-moisture-sensor-with-oled-screen>), released into the public domain under CC0. Thank you!
  • Firmware: ESPHome (<https://esphome.io>). Our extended configuration is MIT-licensed, and the factory binary is built from it with ESPHome (source at the link above).
  • This guide, the wiring diagram and the renders are original MyPartLab material.

Ways to change it

Customise this project

Source: ESP32 Plant Moisture Sensor with OLED Screen by webguyatwork (Printables). CC0. View source