Inspiration

I’ve always enjoyed growing plants and experimenting with small electronics, so I decided to combine both hobbies. I wanted a simple way to see when plants actually need water or light without guessing.

Connection to My Hobby

I spend a lot of time building small electronics projects and tinkering with sensors, microcontrollers, and Raspberry Pis. I also like caring for plants and setting up indoor grow lights. PlantLink combines both interests — it’s a hands-on electronics project that makes plant care easier and more data-driven. It’s satisfying to design a system that’s both useful and tied to something I already enjoy.

What it does

PlantLink uses ESP32 sensors to measure soil moisture and light levels, sending the data to a Raspberry Pi that runs a local web dashboard. The dashboard shows live readings and lets users toggle grow lights.

How I built it

  • Hardware: ESP32, capacitive soil-moisture sensors, grow-light
  • Network: MQTT broker (Mosquitto) on Raspberry Pi
  • Backend: Python with Flask for data handling and APIs
  • Frontend: HTML, CSS, and JavaScript with Bootstrap for the dashboard
  • Hosting: Nginx serving the site locally

Challenges I ran into

  • Calibrating sensors for consistent readings
  • Handling Wi-Fi and MQTT reconnections
  • Debugging JSON payloads and topic formatting

Accomplishments that I'm proud of

  • Built an end-to-end IoT system that works reliably
  • Got real-time updates working across multiple devices
  • Created a simple, usable dashboard for live plant data

What we learned

  • Setting up MQTT communication between microcontrollers and servers
  • Calibrating and stabilizing analog sensor inputs
  • Managing local hosting and asynchronous web updates

What's next for PlantLink

  • Add automatic watering with a servo-controlled valve
  • Store data in the cloud for long-term tracking
  • Build a mobile-friendly interface for remote access

Built With

  • Hardware: ESP32, Raspberry Pi, capacitive soil-moisture sensors, grow lights
  • Software: JavaScript (MQTT.js), HTML, CSS, Bootstrap
  • Networking: MQTT (Mosquitto), Nginx
  • Tools: VS Code, PlatformIO, Tailscale

Built With

Share this project:

Updates