This is part of the PlantMonitoring project, a distributed system designed to monitor environmental data of plants. This specific module focuses on collecting sensor data via a Raspberry Pi, processing it, and then sending it to an Azure Queue for further processing.
The PlantMonitoring project is a distributed system designed to collect, store and analyze environmental data for monitoring plant health. This repository handles the Raspberry Pi module, which reads data from various sensors and sends it to Azure Queue.
The main components of the project include:
- Data Collection: The Raspberry Pi reads environmental data from sensors.
- Data Transmission: The data is transmitted to an Azure Queue.
- Data Storage: A MongoDB database saves the data.
- Data Visualization: The frontend processes and visualizes this data.
Here is the big picture of the entire system, including how the Raspberry Pi module interacts with the cloud services, database and frontend:
This diagram illustrates the specific architecture for the Raspberry Pi module, including sensor integration, data processing and communication with cloud services:
- Raspberry Pi: Any version with GPIO pins
- Sensors:
- Temperature sensor (BMP180)
- Barometric air pressure sensor (BMP180)
- Humidity sensor (DHT11)
- Soil moisture sensor (YL-69) + analog digital converter (ADS1115)
- Light intensity sensor (BH1750)
- Water pump
- Breadboard and wires for prototyping
Easy to expand by adding additional sensors
Here is an image of the setup used during initial real-life tests:
- Clone the repository:
git clone https://github.com/Si-Ni/PlantMonitoring-RaspberryPI.git
cd PlantMonitoring-RaspberryPI
- Install the required dependencies:
python3 -m venv .venv
source .venv/bin/activate
pip3 install -r requirements.txt
- Set up the environment variables for connection to the Azure Queue
To start collecting data and transmitting it to the cloud, run the following command: python3 main.py