A smart plant monitor is a great project for anyone looking to get started with IoT (Internet of Things) and electronics. It helps you track the health of your plants and reminds you when to water them, making it both a fun and practical build.
Components
What you need:
- A Microcontroller (preferably an ESP32 or ESP8266 for Wi-Fi capability)
- Soil Moisture Sensor
- DHT11 or DHT22 Sensor (for temperature and humidity)
- OLED Display (SSD1306 recommended)
- Buzzer (optional)
- Jumper Wires
- Breadboard
- Battery Pack (or USB power supply)
- Small Plant Pot (with soil and a real plant)
- Access to a 3D printer (optional)
- CAD Skills (required if 3D printing)
Steps to follow when making your first Smart Plant Monitor
Design your system on paper first
Draw out the sensors and where they will be placed around your plant pot. Decide how many sensors you want and how you’ll display the data. Plan how you want to power your project (USB, battery, solar, etc).
1. Wire up your sensors to your ESP32
- Connect the soil moisture sensor to an analog pin
- Connect the DHT11 sensor to a digital pin
- Connect the OLED display via I2C (usually SDA/SCL)
- Optionally, connect a buzzer to alert you when soil is dry
2. Write code to read the sensor data and display it
- Start by writing code to read from each sensor and print values to the Serial Monitor. Once that works, display the readings on the OLED display using the Adafruit SSD1306 library.
3. Calibrate the soil sensor
- Test your soil sensor in dry and wet soil. Note the readings and decide on a dry threshold. Add an if-statement in your code to sound the buzzer or flash an LED when soil is too dry.
Guidelines/ Tips to making your Smart Plant Monitor
- Use an ESP32 or ESP8266 for Wi-Fi and more GPIO
- An ESP32 gives you access to many analog and digital pins as well as Wi-Fi and Bluetooth. This makes it easier to later add features like logging data to the cloud or accessing data on your phone.
- Calibrate your sensors properly
- Soil moisture sensors can degrade over time. Make sure you check their values with known dry and wet soil and replace them if they start giving inaccurate readings.
- Keep your electronics safe
- Moisture and electronics don’t mix. Make sure all your sensors and wires are protected using a plastic casing or waterproof box, especially if your plant is outdoors.
- Use a buzzer or LED to alert you
- Adding a buzzer or even a small red LED to your circuit can make it easy to know when your plant needs watering. You can even add a small OLED display to show real-time readings.
- Add a web dashboard
- If you’re using an ESP32 or ESP8266, consider sending your data to a local web server or Google Sheets using IFTTT. This lets you track your plant’s health over time and set email alerts.
- Use a 3D printed enclosure
- 3D printing an enclosure for your project keeps your electronics safe and gives it a professional finish. You can design a casing that fits around the plant pot with slots for the sensors.
How to develop your project
- Add a solar panel to power it off-grid
- Using a small 5V solar panel and lithium battery charger circuit lets you run your plant monitor without external power. This is great for garden or balcony use.
- Control a water pump
- You can connect a relay and a small water pump to automate watering. When the soil is dry, the ESP32 can trigger the pump for a few seconds.
- Add voice assistant integration
- Use IFTTT and webhooks to connect your ESP32 to Alexa or Google Assistant. For example, you could ask “How’s my plant doing?” and get a real-time response.
What to do next?
Integrate your remote control with the rest of your project ideas. Need a project idea?
Try making a Remote Control Car or a Robotic Arm





