PlantaSoteria
A smart plant monitoring system
Author: Ana-Maria Adascalitei 1241EA
GitHub Project Link: https://github.com/UPB-PMRust-Students/project-AnaAdascalitei
Description
PlantaSoteria (a mix of Latin and Greek meaning "Plant Salvation") is a smart plant monitoring system designed to simplify and optimize plant care. The system continuously monitors key environmental parameters, including soil moisture, light intensity, ambient temperature, humidity, and environmental disturbances. The collected data is transmitted via Wi-Fi to a server, which processes it and serves a web dashboard. Users can observe real-time plant conditions and receive alerts when environmental parameters fall outside optimal ranges.
Motivation
This project was inspired by my passion for plants and my goal to simplify their care while efficiently monitoring their requirements. Many plants suffer from overwatering, insufficient light, or temperature extremes — all issues that can be avoided with proper data. PlantaSoteria acts as a guardian for your plants, providing real-time insights so you can act before it is too late.
Architecture
The system is built around the Raspberry Pi Pico W as the central hub. It collects data from five sensors over I2C, one-wire, and ADC interfaces, then transmits the readings to a remote server over Wi-Fi using HTTP. The server stores the data and serves a web dashboard for monitoring.
Main components:
- Raspberry Pi Pico W — The microcontroller at the heart of the system. It gathers data from all sensors, processes it, and sends it to the server over Wi-Fi.
- Server — Receives data from the microcontroller, stores it, and serves it to the web dashboard.
- Web Dashboard — Displays real-time sensor data and sends alerts when conditions require attention (e.g. low soil moisture, insufficient light).
- DHT22 — Measures ambient temperature and humidity of the environment around the plant.
- BMP180 — Measures temperature and atmospheric pressure, helping detect weather or room condition changes that could affect plant health.
- TEMT6000 — Ambient light sensor that evaluates whether the plant is receiving sufficient sunlight during the day.
- Soil Moisture Sensor (Hygrometer) — Measures soil water levels to determine whether the plant needs watering.
- Piezoelectric Vibration Sensor — Detects unusual vibrations in the soil, which could indicate pest activity or accidental disturbances.

Log
Week 5 - 11 May
Ordered and gathered all necessary hardware components to ensure an organized and smooth development process. Started drafting the system architecture and planning the roles of each component. Simultaneously began writing documentation and outlining the project structure. Tested several sensors (including the soil moisture and temperature sensors) to verify correct operation, and began sketching the initial KiCad schematic to visualize the hardware layout.
Week 12 - 18 May
Assembled all hardware components on the breadboard. Connected the DHT22, BMP180, TEMT6000, soil moisture sensor, and piezoelectric vibration sensor to the Raspberry Pi Pico W. Verified all wiring connections and tested each sensor individually to confirm correct readings. Finalized the KiCad schematic.
Week 19 - 25 May
Hardware
The hardware component of PlantaSoteria is designed to monitor various environmental parameters crucial to plant health. At the core is the Raspberry Pi Pico W, which collects data from a range of sensors and transmits it to the backend server. Each sensor targets a specific plant care need:
- Soil Moisture Sensor (Hygrometer): Detects soil water levels to inform watering needs.
- BMP180 Sensor Module: Measures temperature and air pressure, tracking environmental changes that could affect the plant.
- Ambient Light Sensor (TEMT6000): Evaluates light exposure to ensure the plant receives sufficient sunlight.
- DHT22 Sensor: Provides additional temperature and humidity readings, offering redundancy and a broader environmental profile.
- Piezoelectric Vibration Sensor: Detects unusual movements or disturbances in the soil, such as pest activity or accidental touches.
- Power Supply: A stable 5V/3A micro-USB adapter powers the entire system.
- Wiring & Connectors: Jumper wires and resistors ensure reliable electrical connections between components.
All sensors connect to the microcontroller via GPIO pins using I2C and analog input interfaces, enabling real-time monitoring and data collection.
Schematics

Photos

Bill of Materials
| Device | Usage | Price |
|---|---|---|
| Raspberry Pi Pico W | Microcontroller | 34.50 RON |
| Alimentator micro-usb 5V/3A | Power supply | 29.00 RON |
| Soil Moisture Sensor, Hygrometer | Soil moisture sensor | 7.29 RON |
| Analogue Piezoelectric Vibration Sensor | Vibration/disturbance detection | 9.39 RON |
| BMP180 Temperature and Pressure Sensor Module | Temperature & pressure sensor | 6.98 RON |
| Ambient Light Sensor TEMT6000 | Light intensity sensor | 9.54 RON |
| DHT22 Temperature and Humidity Sensor Module | Temperature & humidity sensor | 23.12 RON |
| Set of 40 Arduino Wires, Male-Male, 30 cm, Multicolor | Electrical connections | 15.59 RON |
| Resistor Kit, 30 Values, 600 Pieces, 1/4W, 10R–1M | Pull-up/pull-down & voltage dividers | 22.61 RON |
Software
| Library | Description | Usage |
|---|---|---|
| embedded-hal | Abstraction layer for embedded hardware | Provides a unified interface for embedded hardware such as I2C, SPI, ADC |
| embassy-rp | Embassy HAL for Raspberry Pi Pico (RP2040) | Accesses GPIO pins, I2C, ADC, and other RP2040 peripherals |
| embassy-net | Async networking stack for embedded systems | Sends sensor data from the Pico W to the server over Wi-Fi |
| cyw43 | Wi-Fi driver for Pico W | Manages the on-board CYW43439 Wi-Fi chip |
| dht-sensor | Driver for DHT family sensors | Reads temperature and humidity from the DHT22 |
| bmp180 | Driver for BMP180 sensor | Reads temperature and pressure over I2C |
| cortex-m-rt | Real-time runtime for Cortex-M | Handles startup, interrupt vectors, and memory initialization |