Régulation du niveau d'eau dans une cuve (Groupe E)
Informations
Membres du projet :
- Jonathan LI (jonathan.li@etu.sorbonne-universite.fr)
- Léa LIN (lea.lin.1@etu.sorbonne-universite.fr)
- Bernard LUONG (bernard.luong@etu.sorbonne-universite.fr)
- Nishta RAMKHELAWON (nishta.ramkhelawon@etu.sorbonne-universite.fr)
Formation : Master 2 Chimie parcours Ingénierie Chimique - MU5CI803 : Optimisation et contrôle des procédés
Date : 21 octobre 2024 - 29 janvier 2025
Contexte
Dans le cadre du projet de l'UE 5CI803, nous allons réaliser une étude pratique portant sur la régulation du niveau d'eau dans une cuve à l'aide d'une carte Arduino et d'un capteur à ultrasonultrasons . Ce projet s'inscrit dans la première partie du cours, dédiée à la régulation et à l'automatisation, et vise à nous initier aux concepts fondamentaux de l'ingénierie chimique.
Objectifs
Le but de ce projet est de concevoir et de mettre en œuvre un système automatisé permettant de contrôler le niveau de liquide dans un réservoir se vidantvideant dans un autre réservoir de stockage de manière continue dans un circuit fermé. Ce système repose sur l'utilisation d'un capteur à ultrasonultrasons pour mesurer le niveau d'eau, d'une pompe 12V pour ajuster le niveau de liquide, et d'un programme codé sur Arduino pour assurer une régulation précise et stable. Un orifice se trouve en bas du réservoir afin que le liquide se vide sous l’l'action de la gravité.
Ce projet vise également à nous familiariserrencontrer avec les concepts d'automatisation, la fabrication d’d'une maquette de A à Z, et la prise en main d'un microcontrôleur Arduino UNO.
Fig. 1 Notre régulateur de niveau d'eau prise le 29/01/2025
Matérielsriel
- Support (en bois et en PMMA)
- Arduino UNO
- Écran LCD (16 x 2) I2C
BreadboardPlanche à pain- Pompe 12 V (+ adaptateur 12 V)
- Capteur à
ultrasonultrasons (HC-SR04) - Module relais (pour contrôler la pompe en mode automatique)
- Câbles électriques x 20
- Verre en plastique (Réservoir)
- Boite de glace (Stockage)
- Tuyaux (1 m)
EquerresÉquerres de renfort x 2
Machines utilisées au FabLab
- Découpeuse laser Trotec Speedy 360
- Pistolet à colle
Perceuse- Perceuse
- Multimètre
Construction
Lors de notre première séance, nous avons réalisé un premier schéma du montage afin d'étudier les équipements dont nous aurions besoin pour réaliser notre projet.
Fig. 2 Schéma de notre montage de régulation du niveau d'eau dans une cuve
Le schéma ci-dessous montre le fonctionnement du capteur ultrasonà ultrasons que nous utilisons pour mieux le comprendre. Le capteur émet des rayons et ces derniers se reflètenttransmettent quand ils arrivent au niveau d'eau et le récepteur reçoisoit les rayons reflétés.réfléchis. Le capteur enregistre le temps mis pour que le récepteur reçoisoive les rayons et calcule ensuite calcule la distance en utilisant la vitesse du son dans l'air.
Fig. 3 Fonctionnement du capteur Ultrason
( https://www.robotique.tech/tutoriel/capteur-ultrason-arduino/ )
Nous avons ensuite suivi à la lettre ces 5 étapes afin de pouvoir nous organiser au mieux dans le bon déroulement du projet :
Étape 1
La première étape consiste à se renseignerrechercher sur le fonctionnement de l’l'Arduino UNO ainsi que le code et le montage utilisés habituellement pour l’l'utilisation d’d'un capteur à ultrasonultrasons pour la lecture du niveau d’d'eau. Les premiers essais sont réalisés sur Tinkercad afin de visualiser le montage dans le global.
Étape 2
Le code d’d'Arduino est inspiré de ressources diverses sur Internet et sur Youtube. Une fois le Tinkercad effectué avec les différents composants électroniques, nous pouvons réaliser un montage simple pour faire fonctionner l'écran LCD avec le capteur à ultrason.ultrasons. Les tests du code sont réalisés sur le logiciel Arduino IDE afin de mettre en œuvre notre montage et de modifier le code en temps réel. Nous devons notamment faire attention aux librairies utilisées dans le code car cela nous a coûté beaucoup de temps pour trouver les bonnes librairies à nos matériels électroniques.
Étape 3
Après avoir bien vérifié que le code Arduino (Annexe) marche correctement avec les objectifs émis au début en testant avec deux verres d’d'eau et que tous les composants du montage (pompe, alimentation, carte Arduino UNO) fonctionnent comme il le faut, nous passonspasse à l’l'étape de la construction du montage. En utilisant un support en bois et en PMMA, et divers outils dans le FabLab comme la découpeuse laser Trotec Speedy 360 et la perceuse, nous montons un support simple pour notre dispositif.
Étape 4
L’L'avant dernière étape consiste à assembler les dispositifs électroniques et le support afin d’d'obtenir la maquette finale. Les tests sont réalisés pour s’s'assurer que l’l'installation fonctionne bien qu’qu'il n’n'y ait pas de problèmes inattendus.
Étape 5
La démonstration de la maquette est réalisée le 29 janvier en présence de M. Jérôme Pulpytel.
Journal de bord
10/07/10/2024
Nous avons fait le choix de notre projet qui est la Régulation du niveau d'eau dans une cuve. Ensuite nous avons fait unune schématisation du projet pour pouvoir faire une liste des matériels quedont nous aurons besoin.
15/10/2024
Nous avons complété la liste du matériel nécessaire pour envoyer à notre tutrice.
21/10/2024
Récupération du matériel auprès de la tutrice et brainstorming.
Essai d'un montage sur Tinkercad.
Compréhension et recherches sur les différents composés utilisés (ultrason,ultrasons, LCD) pour mieux comprendre leursleur utilité.
18/11/2024
Nous avons écrit dans un premier temps le code sur Tinkercad pour le capteur ultrason + l'écran LCD en utilisant la bibliothèque : Adafruit.
Cela a parfaitement fonctionné parfaitement sur le Tinkercad;Tinkercad ; le capteur ultrasonà envoyéultrasons envoie un signal à l'Arduino qui signalésignale quandlorsque la pompe doit fonctionner à travers un module relais.
Connexions :
Arduino :
Pin 5V connecté au breadboard dans la colonne positifpositive
GND connecté au breadboard dans la colonne négatifgative
Le capteur ultrason :
VCC : 5V de l'Arduino
GND : GND de l'Arduino
SIG : pin n° 7 sur l'Arduino
L'écran LCD :
VCC : 5V de l'Arduino
GND : GND de l'Arduino
SCL : SCL sur l'Arduino
SDA : SDA sur l'Arduino
Module relairelais :
SIG : pin n° 3 sur l'Arduino
VCC : 5V de l'Arduino
GND : GND de l'Arduino
V+ : pôle positif de la pompe
V- : pôle négatif de la pompe
VIN : pôle positif de l'alimentation
GND : pôle négatif de l'alimentation
Fig. 4 Schéma de notre Tinkercad
21/11/2024
Nous avons fait en premier temps lesle branchement comme effectués sur le Tinkercad comprenant le breadboard, l'Arduino UNO, le capteur ultrason et l'écran LCD, avec le code correspondant. Sur Tinkercad, le code a bien marché mais lorsque nous avons testé sur le logiciel Arduino IDE , nous avons rencontré un problème de détection de port. Avec le premier ordinateur, aucun port n'est détecté. Sur le deuxième ordinateur, un port est détecté mais il ne semble pas être le bon et c'est affiché un message d'erreur sur Arduino IDE.
Nous avons changé le Arduino UNO et il n'y a plus de message d'erreur. Le code fonctionne bien pour le capteur ultrasonà ultrasons mais il faut le modifier encore car il ne donne pas des valeurs cohérentes. Le code n'a pas fonctionné pour l'écran LCD même si nous l'avons échangé comme vous pouvez le voir sur le schéma ci-dessous.
Fig. 5 Erreur de l'écran LCD
25/11/2024
RechercherNous avons rechercher des nouveauxnouvelles bibliographies pour faire fonctionner l'écran LCD et le capteur ultrason.à ultrasons. Nous avons installé ces 2 bibliothèques suivantes sur Arduino IDE :
1) Grove Ultrasonic Ranger
2) Grove LCD RGB Backlight
28/11/2024
Nous avons réussi à faire fonctionner les 2 équipements : le capteur ultrason et l'écran LCD comme vous pouvez le voir sur le schéma ci-dessous. (Voir le code en annexe)
Fig. 6 Affichage sur l'écran LCD
Pour la prochaine séance, nous allons tester si la pompe fonctionne bien ou pas et si nous arrivons à réguler le niveau d'eau.
29/11/2024
Lors de cette séance, nous avons découvert et utilisé Inkscape , un logiciel de dessin vectoriel open source. Ce dernier permet de concevoir et de modifier des fichiers de format SVG, souvent utilisés par l'imprimante laser 360. Inkscape est essentiel pour créer des designs précis, définir les tracés nécessaires pour les découpes et les gravures, et convertir les fichiers dans des formats compatibles avec les machines. Grâce à ses fonctionnalités, nous avons pu préparer des motifs adaptés, ajuster leurs dimensions et optimiser la découpe ainsi que la gravure sur différents matériaux. À l'issue de cette séance, nous avons réalisé deux gravures sur deux matériaux différentes,rents, et voici les résultats obtenus :
Fig. 7 Gravure sur deux plaques différentsrentes
12/05/12/2024
Nous avons testé la pompe avec différentes batteries de 12 V mais cela n'a pas fonctionné.
12/12/2024
Nous avons changé d'alimentation et la pompe fonctionne bien maintenant avec le module relai.relais.
La pompe s'arrête dès que le niveau d'eau est atteint et se rallume lorsque le niveau d'eau est inférieur au niveau souhaité. Nous avons complété la plupart des objectifs du sujet. Le montage fonctionne bien avec le code.
Pour la prochaine fois, nous allons commencer à mettre en forme le montage proposé en figure 2. Il faut d'abord trouver le bon diamètre de l'orifice du bas du réservoir qui permet le débit d'eau sortant du réservoir soit inférieur au débit d'eau entrant dans le réservoir via la pompe.
Fig. 8 Petite démonstration du montage
19/12/2024
Nous avons réussi à trouver le bon diamètre de l'orifice du bas du réservoir et cela a permis de réguler le niveau d'eau du réservoir jusqu'à 85 %.
Nous avons ensuite proposé un schéma du montage ci-dessous :
Fig. 9 Schéma de (a) l'avant et (b) de l'arrière du support en bois
20/12/2024
Pour le support du réservoir, nous avons décidé d'utiliser un support en PMMA où nous allons le couper en utilisant le laser 360. Tout d'abord, nous avons fait des tests sur un bout de PMMA pour avoir le bon diamètre des trous correspondant aux vissesvis que nous allons utiliser et de s'affrenchir des incertitudes de la découpeuse laser. Une fois la réalisation, nous avons trouvé le diamètre correspondant au visse que nous allons utiliséutiliser pour le support.
Fig. 10 Des tests faitfaits par le laser pour les trous
01/10/01/2025
Nous avons alorsensuite entreprisprocédé à la réalisationfabrication du support pour le verre. SurPour cela, nous avons découpé un large cercle de 7,5 cm de diamètre dans une plaque de PMMA,PMMA onafin ad’y fait un gros rond de diamètre 7,5 cm pour logerinsérer le verre en plastique qui serviraservant de réservoir.
Fig. 11 Support du réservoir
Nous avons aussiégalement réalisé un couvercle du réservoir pour le support du capteur ultrason.à ultrasons. Le couvercle du réservoir recouvre tout le haut du réservoir, tous en laissant passer le capteur à ultrasonultrasons et le tuyau.
Fig. 12 Couvercle du réservoir
24/01/2025
Réalisation des encrages sur le support en bois via des trous.
À l'l’arrière de ce support, nous avons faitpercé 4quatre petits trous de la taille des vissesvis, et disposerpositionnés de façonmanière queà nouspermettre pourrionsune mettrefixation régulière en fonction de l'l’équerrequerre, pourafin l'accrochéde surl’accrocher lesolidement au support en boisbois. àCes l'aidetrous d'ont été réalisés avec une perceuse à des endroitsemplacements stratégiques pour queallier cela soit pratiquepraticité et esthétique.tisme. Nous avons aussiégalement faitajouté desde petits trous pour les encrages defixer la pompe, de l'l’écran LCD et pour connecter les équipements à l'l’Arduino à l'l’arrière du support en bois. L'encrageL’ancrage de la pompe et de l'l’écran LCD sera réaliséassuré avecà desl’aide de colliers de serrage.
Fig. 13 Collier de serrage
27/01/2025
Réalisation du montage final.
Nous avons rassemblé toutes les pièces de puzzle de notre projet : le support pour notre cuve, l'encrage de la pompe en haut à droite, le LCD en haut à gauche. Le stockage d'eau sera placé en dessous du réservoir relié par un tuyau et une pompe.
Nous avons rencontré un petit problème avec la pompe car nous l'avons placée en haut et donc elle ne pouvait pas bien pousserpomper l'eau dans le réservoir. Pour résoudre ce problème, nous avons décidé de remplir le tuyau avec l'eau manuellement avant de démarrer la pompe. Une autre solution c'était de placer la pompe au bas près du stockage.
du montage)
Fig. 13 Montage (presque) final
Conclusion
...
Annexe
Pour mieux comprendre le code, voici un schéma pour expliquer les variables précisédétaillées dans le code.
#include "Ultrasonic.h"
#include <Wire.h>
#include "rgb_lcd.h"
rgb_lcd lcd; // setting up LCD screen
const int colorR = 255;
const int colorG = 0;
const int colorB = 0;
const float water_height_needed_percentage = 80; // en %, choissisez le niveau d'eau souhaité
const float max_height = 14; // en cm, mesurer le profondeur du réservoir
float water_height; // mesure le niveau d'eau dans le réservoir
float water_height_percentage;
float distance;
bool pump;
const int relay_pin = 3; // pin n° 3 sur l'Arduino
Ultrasonic ultrasonic(7); // pin n° 7 sur l'Arduino
void setup()
{
pinMode(relay_pin, OUTPUT);
digitalWrite(relay_pin, LOW); // set up the LCD's number of columns and rows
lcd.begin(16, 2);
lcd.setRGB(colorR, colorG, colorB);
// Pour afficher sur l'écran LCD
lcd.print("Niveau d'eau % :");
delay(100);
Serial.begin(9600);
}
void loop()
{
distance = ultrasonic.MeasureInCentimeters(); // mesure la distance du niveau d'eau jusqu'au capteur ultrason
Serial.print(distance); //0~14cm
Serial.println(" cm");
water_height = max_height - distance;
water_height_percentage = (water_height/max_height) * 100.0;
//
if (water_height_percentage >= water_height_needed_percentage) {
digitalWrite(relay_pin, LOW); // Eteint la pompe si le niveau d'eau est atteint
pump = false;
}
else //
{
digitalWrite(relay_pin, HIGH); // Allume la pompe si le niveau d'eau est inférieur à celui souhaité
pump = true;
Serial.print("PUMP ON\n");
}
// Afficher les détails sur l'écran LCD
lcd.setCursor(0, 1);
lcd.print(water_height_percentage);
if (pump)
{
lcd.print(" pump on");
}
else
{
lcd.print(" "); // pour effacer le "pump on" sur l'écran
}
delay(250);
}