Projet : Automatisation et régulation du pH
UE MU5CI823-Optimisation, contrôle et digitalisation des procédés
Groupe 8
Noms et Prénoms:
SELMANI Abderrahmane (abderrahmane.selmani@etu.sorbonne-université.fr) 21518618
DOGHRI Adam (adam.doghri@etu.sorbonne-universite.fr) 21518599
Si Tayeb Fares (fares.si-tayebetu.sorbonne-universite.fr) 21519164
Djebrouni Rayan (rayan.djebrouni@etu.sorbonne-universite.fr) 21519173
I.Introduction:
Selon la qualité de l’eau prélevée, la production d’eau potable nécessite la mise en œuvre de différentes étapes faisant appel à quatre types de procédés : physiques, chimiques, physico-chimiques et biologiques.
Une station de production d’eau potable destinée au traitement des eaux de surface repose généralement sur une filière comprenant les étapes suivantes :
dégrillage, tamisage, floculation–décantation, filtration sur sable, ozonation, filtration sur charbon actif et chloration.
Dans le cadre de notre projet, l’attention a été portée sur l’étape de neutralisation
Objectif du projet:
L’objectif du projet est de concevoir et réaliser un système automatisé de régulation du pH d’une solution aqueuse (acide ou basique), piloté par une carte Arduino. Ce projet s’inspire des problématiques industrielles liées à la neutralisation des rejets liquides, étape clé dans le traitement des eaux industrielles avant rejet ou réutilisation.
II.Le matériel utilisé
- 3 bouteilles en plastique (2 réservoirs pour l’acide et la base, un réacteur, et un tank).
- 3 électrovannes associées à des relais.
- Une sonde de pH
- Une Tige d’agitation associé à un moteur
- Un afficheur
- Un indicateur de niveau
- Un Arduino avec une plaque d’essai
- Des files et des tuyaux en plastique
- Interrupteur
- Un support en bois
Les appareils utilisés
- Découpeuse Laser.
- Perceuse à colonne.
- Scie électrique.
- Imprimante 3D.
- Des outils manuels ( pistolet à colle, perceuse, visseuse à main,…)
III.Les étapes de construction
- Étape 1 : Construction du support Nous avons utilisé 2 plaques.
- Étape 2 : Mise en place des réservoirs
Nous avons fixé d’abord les 2 réservoirs des solutions acide et base. Ensuite, nous avons fixé le réacteur. Enfin, nous avons fait des trous pour faire passer les tuyaux.
- Étape 3 : Mise en place des électrovannes
Nous avons placé les électrovannes à la sortie des deux réservoirs ainsi que le réacteur. Nous avons associé à ces dernières des relais.
- Étape 4 : Impression de la tige
Nous avons fait le design de la tige en utilisant le logiciel Tinkercad, et ensuite nous avons utilisé l'imprimante 3D. Enfin, nous avons relié la tige au moteur.
- Étape 5 : Montage finale
Nous avons fait le montage total, nous avons relié les électrovannes, la sonde de pH, l’indicateur de niveau avec la plaque d’essai et cette dernière avec Arduino auquel nous avons associé le programme de régulation de pH.
VI.Principe de fonctionnement
-L’électrovanne liée au réservoir de l’acide s'ouvre quand l’interrupteur est ON, et donc l’acide se verse le réacteur.
-La valeur de pH est mesurée par la sonde de pH.
-L’agitation commence .
-Après 3 secondes de l’agitation, l’électrovanne liée au réservoir de la base s’ouvre automatiquement et la valeur de pH s’affiche au fur et à mesure dans l’afficheur.
-Dès que la valeur de pH atteint 7, les deux électrovannes se ferment automatiquement et l’électrovanne liée au réacteur s’ouvre pour la vidange dans le tank.
-Le niveau de remplissage de tank est indiqué par un capteur de niveau.
-Une fois le niveau seuil atteint, toutes les électrovannes s’arrêtent.
Pour bien illustrer l’idée du projet, nous avons réalisé ce schéma explicatif par :
Figure 1 : schéma de fonctionnement de procédé de régulation
L’eau du robinet est introduite dans la cuve principale, où un agitateur assure une homogénéisation continue du milieu. Le pH de la solution est mesuré en temps réel à l’aide d’un pH-mètre, qui transmet l’information au système de commande. En fonction de la valeur mesurée et de la consigne de pH, une solution acide ou une solution basique est injectée dans la cuve à partir de réservoirs dédiés, via des électrovannes. Lorsque le pH est trop élevé, la solution acide est ajoutée, tandis qu’en cas de pH trop faible, la solution basique est injectée. L’agitation permet une répartition rapide des réactifs, garantissant ainsi une correction efficace et continue du pH jusqu’à l’obtention de la valeur souhaitée.
Figure 2 : Impression 3D des pales d'agitation

Figure 3 : Pales d'agitation

Figure 4 : Montage Arduino
V.Code Arduino
Le code Arduino a été réalisé à l'aide de l'outil Ai ChatGpt5 :
#include "DFRobot_PH.h"#include <EEPROM.h>#include <Wire.h>#include "rgb_lcd.h"#define PH_PIN A0// Relais (déjà branchés chez vous)#define VALVE_BASE 7#define VALVE_ACID 8// Consigne pHconst float PH_SET = 7.00;// Petite hystérésis pour éviter ON/OFF permanentconst float HYS = 0.02;DFRobot_PH phSensor;rgb_lcd lcd;float temperature = 25.0;void setup() {Serial.begin(115200);pinMode(VALVE_BASE, OUTPUT);pinMode(VALVE_ACID, OUTPUT);// Relais actifs LOW → HIGH = vanne ferméedigitalWrite(VALVE_BASE, HIGH);digitalWrite(VALVE_ACID, HIGH);phSensor.begin();lcd.begin(16, 2);lcd.clear();lcd.setCursor(0, 0);lcd.print("Regulation pH");delay(800);lcd.clear();}void loop() {// Lecture du pHfloat voltage = analogRead(PH_PIN) * (5000.0 / 1024.0);float pH = phSensor.readPH(voltage, temperature);bool openBase = false;bool openAcid = false;// Logique de régulationif (pH < (PH_SET - HYS)) {openBase = true;}else if (pH > (PH_SET + HYS)) {openAcid = true;}// Sécurité : jamais les deux en même tempsif (openBase && openAcid) {openBase = false;openAcid = false;}// Commande des relais (actifs LOW)digitalWrite(VALVE_BASE, openBase ? LOW : HIGH);digitalWrite(VALVE_ACID, openAcid ? LOW : HIGH);// Affichage LCDlcd.setCursor(0, 0);lcd.print("pH:");lcd.print(pH, 2);lcd.print(" ");lcd.setCursor(0, 1);lcd.print("BASE:");lcd.print(openBase ? "ON " : "OFF");lcd.print(" AC:");lcd.print(openAcid ? "ON " : "OFF");// Debug sérieSerial.print("pH=");Serial.print(pH, 2);Serial.print(" | BASE=");Serial.print(openBase ? "ON" : "OFF");Serial.print(" | ACIDE=");Serial.println(openAcid ? "ON" : "OFF");delay(200);
Explication du code :
Ce programme Arduino réalise une régulation automatique du pH d’une solution autour d’une valeur cible fixée à pH = 7. Il utilise un capteur de pH DFRobot, deux électrovannes commandées par relais (une pour ajouter une base et une pour ajouter un acide) et un écran LCD RGB pour l’affichage.
L’Arduino commence par initialiser la communication série (pour le débogage), configurer les broches des relais en sortie et les mettre à l’état HIGH car les relais sont actifs à l’état bas (LOW = vanne ouverte, HIGH = vanne fermée). Le capteur de pH est ensuite initialisé, ainsi que l’écran LCD qui affiche brièvement un message de démarrage.
Dans la boucle principale, l’Arduino lit en continu la tension issue du capteur de pH via l’entrée analogique A0. Cette valeur analogique (0–1023) est convertie en tension en millivolts, puis transformée en valeur de pH réelle grâce à la fonction readPH() de la bibliothèque DFRobot, en tenant compte d’une température supposée constante de 25 °C. Cette température est importante car la mesure du pH dépend légèrement de la température.
La valeur de pH mesurée est ensuite comparée à la consigne (pH = 7.00) avec une hystérésis de ±0,02. Cette hystérésis permet d’éviter des commutations trop fréquentes des relais lorsque le pH oscille autour de la consigne. Si le pH est inférieur à 6,98, cela signifie que la solution est trop acide : l’électrovanne de base est alors ouverte pour corriger le pH. À l’inverse, si le pH est supérieur à 7,02, la solution est trop basique : l’électrovanne d’acide est ouverte. Si le pH est dans la zone acceptable autour de la consigne, aucune vanne n’est activée.
Une sécurité logicielle empêche explicitement l’ouverture simultanée des deux vannes, ce qui éviterait une injection d’acide et de base en même temps (situation dangereuse et inefficace). Une fois la décision prise, l’Arduino commande les relais en appliquant un niveau LOW pour ouvrir la vanne concernée et HIGH pour la fermer.
En parallèle, l’écran LCD affiche en temps réel la valeur du pH mesuré sur la première ligne, et sur la deuxième ligne l’état des vannes (ON/OFF pour la base et l’acide). Les mêmes informations sont envoyées sur le moniteur série afin de permettre le suivi du fonctionnement et le diagnostic du système. La boucle se répète toutes les 200 ms, assurant une régulation réactive mais stable.
VI. Schéma du montage : Plaque d’essai-Arduino
Tinkercad est un programme de modélisation 3D en ligne qui s'exécute dans un navigateur web, connu pour sa simplicité et sa facilité d’utilisation.
Voici le schéma détaillé de notre montage :
Figure 5 : schéma du montage
Une vidéo explicative a été ajoutée afin d’illustrer le fonctionnement du système :
https://drive.google.com/drive/folders/1TZQ5oi3JKfVTSi8YBwyKRysVEG_OjWrw?usp=sharing


No Comments