This project aims to develop an automatic plant management system with automatic watering that can be configured by the user. We decided to undertake this project as part of a course in our final year of engineering school at Polytech Sorbonne.
Voici deux vidéos montrant l'arrosage avec le système automatique et le manuel :
Voici l'architecture global de notre système :
This project aims to develop an automatic plant management system with automatic watering that can be configured by the user. We decided to undertake this project as part of a course in our final year of engineering school at Polytech Sorbonne.This project focuses on creating an automatic plant management system with configurable automatic watering. The initiative was undertaken as part of our final year coursework at Polytech Sorbonne, an engineering school.
We have provided two videos showcasing the automatic and manual watering systems :
The overall architecture of our system is illustrated as follows:
Our project comprises an ESP32-managed section (Arduino code included in the archive), responsible for gathering plant measurements and monitoring the water level in the reservoir used for plant irrigation. On the other hand, our system consists of a server that plays the role of data processing, database updates, route management, graph creation and MQTT client.
These data are then transmitted via the MQTT protocol to a "Mesure" topic. Subsequently, the server retrieves this data through subscription to the relevant topic. Upon receiving the data, the server updates the database and performs the necessary operations to display accurate information on the user interface (HTML pages).
You can observe the structure of the Python server :
Our server utilizes Flask and connects to the MQTT broker, allowing it to retrieve data from the ESP32. Additionally, you can observe the message reception process. In the case of a message from the 'Mesure' topic, we can trigger watering by publishing to the 'Arrosage' topic. The ESP32 subscribes to this topic, and watering is initiated only if the conditions are met, and the water reservoir is not empty :
Furthermore, the server retrieves messages sent from the graphical interface that manages the settings :
Additionally, we present visuals of the user interface:
The homepage displays the latest measurements.
- The homepage displays the latest measurements.
The settings page enables users to send messages via MQTT to modify parameters such as humidity limits, critical levels, maximum temperature, and the activation of automatic and manual watering.
- The settings page enables users to send messages via MQTT to modify parameters such as humidity limits, critical levels, maximum temperature, and the activation of automatic and manual watering.
This page provides users with a long-term overview of the plant's history
- This page provides users with a long-term overview of the plant's history
After downloading the two archives (ESP32-code, Projet_Conn), you need to make the following sensor connections:
Next, open the ESP32-code and modify the username and password for your WiFi. Find the public IP address on the computer where you will run the code; it should be on the same local network as the WiFi your ESP32 is connected to. After obtaining the public IP, update the ESP32 code with the correct IP.
Then, install the Mosquitto broker. Finally, launch the server using Python3 and open a page in your browser at http://127.0.0.1
You should see the following page:
Comments