Our Journey
During my IoT course, we had a group assignment to build something practical and connected.
We wanted a project that felt useful in real life β something beyond just blinking LEDs. Thatβs when the idea of a Smart Soil Monitoring System came up.
The goal was simple: measure temperature, humidity, and soil moisture using sensors, and display the data live on a web dashboard hosted directly on the ESP32.
It sounded ambitious, but also exciting β like building a mini smart gardening tool.
Building the System
We used an ESP32 board because it has built-in WiFi and is perfect for IoT projects.
Hereβs what we connected:
- π‘οΈ DHT11 Sensor β for temperature and humidity
- π± Soil Moisture Sensor β to check how dry or wet the soil is
- π Jumper wires + breadboard β for quick prototyping
Once wired up, the ESP32 served a web dashboard that refreshed every 2 seconds.
It felt magical to see the numbers update in real time β no cloud server, no external hosting, just the ESP32 doing everything.
Libraries & Setup
To make the ESP32 act like a mini web server, we installed:
- ESPAsyncWebServer
- AsyncTCP
These libraries allowed us to serve a dynamic page that auto-updated with sensor readings.
Setup was straightforward:
- Wire the sensors.
- Upload the sketch.
- Open the Serial Monitor to get the local IP.
- Enter that IP in a browser β boom, live dashboard.
How It Works
- ESP32 continuously reads sensor values.
- A simple HTTP server hosts the dashboard.
- The page fetches new data every 2 seconds.
- Meanwhile, the Serial Monitor logs everything for debugging.
It was like having two views of the same system β one for us (developers) and one for users (gardeners).
What I Learned
This project taught me the power of microcontrollers with WiFi.
I realized you donβt always need a cloud backend β sometimes the device itself can host everything.
It also showed me how IoT projects can be both low-cost and impactful. Imagine farmers or gardeners using this to monitor soil health without expensive equipment.
And since it was a group project, I learned the importance of dividing tasks: wiring, coding, testing. Everyone contributed, and seeing it all come together was super satisfying.
