Plant watering alarm
When your plant is thirsty it can't tell you that, but I can help with it.
Author: Pacuraru Mihai-Dorin
GitHub Project Link: https://github.com/UPB-PMRust-Students/proiect-dmihai03
Description
The "Plant Watering Alarm" is a smart monitoring system that detects when your plants need water and alerts you before they become dehydrated. The system uses a soil moisture sensor inserted into the plant's soil to continuously measure moisture levels. When the soil becomes too dry (falling below a configurable threshold), the system triggers an audio and visual alarm to notify you that your plant needs attention.
The core components include a Raspberry Pi Pico 2 microcontroller, soil moisture and air temperature sensors, a buzzer for audible alerts, a LCD Display for informations feedback and a RGB LED that shows the watering level:
- green (normal)
- yellow (prepare for watering)
- red (urgent watering)
Motivation
I had a plant that i've forgot to water and died.
Architecture
Log
Week 5 - 11 May
Write documentation.
Week 12 - 18 May
Assemble hardware components and write demo source code.
Week 19 - 25 May
Add LCD Display and BMP180 temperature sensor. Finish writing code.
Hardware
- 2x Raspberry Pi Pico 2W
- one for flashing the program to the other
- one for controlling input from senzor and sending output signals to buzzer and LED
- buzzer
- alert when plant is thirsty
- RGB LED
- feedback of watering level
- voltage converter source
- convert from 3V given out by GPIO to 12V required by buzzer
- soil humidity sensor
- read soil humidity
- temperature and pressure sensor
- read air temperature and pressure
- 16x2 LCD display
- display data given by sensors

Schematic
Bill of Materials
| Device | Usage | Price |
|---|---|---|
| 2x Raspberry Pi Pico 2 | The microcontroller | 70 RON |
| DC DC Voltage Converter | The transistor for buzzer | 3 RON |
| Buzzer | The buzzer | 2 RON |
| 2x Transistor | The transistors | 6 RON |
| RGB LED | The LED for feedback | 2 RON |
| Rezistors | The resistors kit | 15 RON |
| Soil Humidity Sensor | The sensor for soil humidity | 4 RON |
| Temperature and Pressure Sensor | The sensor for air temperature and pressure | 7 RON |
| LCD Display | The LCD display | 15 RON |
| Breadboard | The Breadboard | 17 RON |
| Wires | The Wires | 10 RON |
| Total | 151 |
Software
| Library | Description | Usage |
|---|---|---|
| embassy-rp | Async embedded peripherals | Peripherals access |
| embassy-executor | Async embedded tasks | Tasks manager |
| embassy-time | Async embedded time | Delay time manager |
| lcd_lcm1602_i2c | LCD 16x2 i2c driver | Control LCD Display |
| bmp180_embedded_hal | BMP180 driver | Control BMP180 sensor |
| core | Rust stdlib | Format string for printing |