PlantaSoteria
A smart plant monitoring system
Author: Ana-Maria Adascalitei
GitHub Project Link: https://github.com/UPB-PMRust-Students/project-AnaAdascalitei
Descriptionβ
PlantaSoteria(is a mix of latin-greek language and it means βPlant Salvationβ). My project is designed to simplify and optimize plant care. The system continuously monitors key environmental parameters, including soil moisture, pH levels, light intensity, ambient temperature, and pest activity.Through a user-friendly mobile app, it provides real-time data and sends notifications when conditions require attention.
Motivationβ
This project was inspired by my passion for plants and my goal to simplify their care while efficiently monitoring their requirements.
Architectureβ
Main components:
Raspberry Pi Pico W - This is the microcontroller I will use for this project. It is responsible for gathering data from the sensors, processing it, and sending it to the server (which will eventually send it to the app).
Server - A component that receives the data from the microcontroller and stores it in a database. It will also send it to the app.
App - A mobile application that receives the data from the servers and informs the user about the plant. It will send alerts in case the plant needs water or if there should be a change in the plant's location.
SOIL MOISTURE SENSOR, HYGROMETER - It measures the soil moisture to determine if the plant needs water.
BMP180 Temperature and Pressure sensor module - This component provides crucial environmental data by measuring both temperature and atmospheric pressure. By monitoring changes in atmospheric pressure, we can detect alterations in weather patterns or room conditions, such as sudden temperature drops or fluctuations in air pressure, which could impact plant health and growth.
Ambient light sensor TEMT6000 - This component will help us realize if there is enough light in the place for the plant during the day. If not, we will change the location.
Analogue Piezoelectric Vibration Sensor - This component detects vibrations. These vibrations will determine whether a bug has entered the plant or if a pet has disturbed the soil.
DHT22 Temperature and Humidity Sensor Module - This will give us the temperature and humidity of the place where the plant is. The temperature is not really needed since we already have BMP180, but the humidity will tell us if the place is humid enough.
Logβ
Week 5 - 11 Mayβ
In the first week of my PlantaSoteria project, I ordered and gathered all the necessary hardware components to ensure an organized and smooth development process. I began drafting the system architecture and planning the roles of each component. Simultaneously, I started writing documentation and outlining the project structure. I also tested several sensors (including the soil moisture and temperature sensors) to ensure they functioned properly and began sketching the initial KiCad schematic to visualize the hardware layout.
Week 12 - 18 Mayβ
Week 19 - 25 Mayβ
Hardwareβ
The hardware component of the PlantaSoteria system is designed to monitor various environmental parameters crucial to plant health. At the core of the system is the Raspberry Pi Pico W, which collects data from a range of sensors and transmits it to the backend server for further processing and visualization via a mobile app. Each sensor has been chosen to target a specific need related to plant care:
Soil Moisture Sensor (Hygrometer): Detects soil water levels to inform watering needs.
BMP180 Sensor Module: Measures temperature and air pressure, helping track environmental changes that could affect the plant.
Ambient Light Sensor (TEMT6000): Evaluates light exposure, ensuring the plant gets 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: A set of jumper wires and resistors ensure reliable and organized electrical connections between components.
All sensors connect to the microcontroller via GPIO pins, using interfaces such as I2C and analog input. This setup allows for real-time monitoring and data collection, forming the foundation of the smart monitoring system.
Schematicsβ
Bill of Materialsβ
Device | Usage | Price |
---|---|---|
Rapspberry Pi Pico W | The microcontroller | 34.5 RON |
Alimentator micro-usb 5V/3A | The power supply | 29 RON |
SOIL MOISTURE SENSOR, HYGROMETER | Sensor | 7.29 RON |
Analogue Piezoelectric Vibration Sensor | Sensor | 9.39 RON |
BMP180 Temperature and Pressure sensor module | Sensor | 6.98 RON |
Ambient light sensor TEMT6000 | Sensor | 9.54 RON |
DHT22 Temperature and Humidity Sensor Module | Sensor | 23.12 RON |
Set of 40 Arduino wire, Male-Male, 30 cm, Multicolor | Electrical connections | 15.59 RON |
RESISTORS KIT 30 VALUES, 600 PIECES, 1/4W, 10R-1M | The power supply | 22.61 RON |
Softwareβ
Library | Description | Usage |
---|---|---|
embedded-hal | Abstraction layer for embedded hardware | Provides a unified interface to work with embedded hardware like I2C, SPI, etc. |
rp2040-hal | Hardware abstraction layer for Raspberry Pi Pico | Offers access to low-level hardware features specific to the RP2040 chip. |
embassy-net | Networking for embedded systems | This library will help me send data from the Raspberry Pi Pico W to the app. |
embassy-rp | GPIO library for Raspberry Pi Pico | This will help me access GPIO pins such as SPI, I2C, PWM. |
dht-sensor | Library for DHT sensor | Rust library designed for interfacing with DHT sensors like DHT22. |
bmp180 | Library for BMP180 sensor | Enables communication with the BMP180 temperature and pressure sensor over I2C. |
cortex-m-rt | Real-time runtime for Cortex-M microcontrollers | Handles low-level startup, interrupt vectors, and memory initialization. |