Skip to main content

Régulation du pH (Projet C)

Ahmed Hamza, Malek Sari, Naouel Azaiez, Yakoub Laidani, Malak Ben Hamida

La régulation du pH

I. Objectif du projet :

Le projet consiste à réguler le pH d’une certaine solution (acide ou basique) en utilisant un programme Arduino. L’idée vient du problème du traitement des eaux qui est une étape primordiale avant de le rejeter dans l'environnement.

Le traitement de l'eau se manifeste par une réaction entre l'acide chlorhydrique (HCl) et le carbonate de sodium (Na2CO3), pour produire du chlorure de sodium (NaCl), du dioxyde de carbone (CO2), et de l'eau (H2O)=> Elimination des ions carbonate dans l'eau.


HCl+Na2CO3 ==> NaCl+CO2+H2O

II.Description du projet:

HCl est stocké dans le réservoir 1, et Na2CO3 dans le réservoir 2

Lorsque l'interrupteur est allumé, la vanne 1 s'ouvre, permettant le versement de HCl  dans le réservoir   3.

Puis, la vanne 1 se ferme après 3 secondes, et la vanne 2 s'ouvre, permettant le versement de   Na2CO3 de  dans le réservoir 3 durant 3 secondes.

Ensuite, l’agitation commence.

L’agitation dure 5 secondes. Ainsi, le mélange réagit, formant davantage de NaCl, CO2, et H2O.

Un capteur de pH est accordé au milieu réactionnel. 

Le capteur de pH se met en marche et il s’arrête lorsque la valeur pH atteint une valeur autour de 7.

Après la réaction, la vanne 3 s'ouvre et le vidange se fait dans le réservoir 4.

III. Matériel utilisé :

  • 4 réservoirs 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
  • Carte pH-mètre reliée à l’Arduino
  • 2  solutions étalons
  • Un Arduino avec une plaque d’essai
  • Des files et des tuyaux en plastique
  • Interrupteur
  • Un support en bois
  • Une tige d’agitation associée à un moteur

IV. Les appareils utilisés : 

  • Perceuse à colonne
  • Scie électrique
  • Des outils manuels ( pistolet à colle, perceuse, viceuse à main,…)
  • Imprimante 3D

V. Les étapes de construction : 

Étape 1 : Construction du support
Nous avons utilisé 2 plaques en bois

É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 et le tank en faisant des trous dans les petits plaques ajoutés. Enfin, nous avons fait des trous dans les réservoirs 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 (HCl)s'ouvre quand l’interrupteur est ON, et donc
l’acide se verse le réacteur (réservoir 3).

-Aprés 3 secondes, l’électrovanne liée au réservoir de Na2CO3 s'ouvre, et donc
la base se verse dans réacteur (réservoir 3).
-La valeur de pH est mesurée par la sonde de pH.

-Après 5 secondes de l’agitation et la valeur de pH s’affiche au fur et à mesure dans l’afficheur.
-Dès que la valeur de pH atteint 7 , l’électrovanne liée au réacteur s’ouvre pour la vidange dans le tank.

VII. Illustrations du projet

Organisation des différents composantes du projet et commande du matériel (1séance)

image.png

Préparation du support (3 séance)

image.png       image.png  image.png   

mY9mpqimage.png

 

 

 

Ecriture du code (2 séances)

Cablage des composants avec la carte arduino (2 séances)

image.png C37image.png 

image.pngNk4image.png  image.png

 

image.png

Projet après la finalisation

image.png

Test du code et rectification (Voir les 3 vidéos mis dans ce drive)

https://drive.google.com/drive/folders/1Z9QvfrS876cZnwdwtNFdvtTpCLOnY27U

VIII. Le code Arduino

Code des vannes, du moteur et du pH:

const int RELAY_PIN_VANNE1 = A5;  // Broche de l'Arduino connectée à la vanne 1

const int RELAY_PIN_VANNE2 = A4;  // Broche de l'Arduino connectée à la vanne 2

const int RELAY_PIN_MOTEUR = 13;  // Broche de l'Arduino connectée au relais du moteur

#define PH_PIN A0  // Broche analogique à laquelle le capteur pH est connecté

 void setup() {

  pinMode(RELAY_PIN_VANNE1, OUTPUT);

  pinMode(RELAY_PIN_VANNE2, OUTPUT);

  pinMode(RELAY_PIN_MOTEUR, OUTPUT);

  Serial.begin(9600);

}

void loop() {

  // Contrôler les vannes en fonction du pH

  float pHValue = readPH();

   if (isnan(pHValue)) {

    Serial.println("Erreur de lecture du capteur pH. Vérifiez la connexion.");

  } else {

    Serial.print("Valeur du pH : ");

    Serial.println(pHValue, 2);  // Affiche la valeur pH avec deux décimales

    // Contrôler la vanne 1 si le pH est inférieur à 7

    if (pHValue < 7) {

      digitalWrite(RELAY_PIN_VANNE1, HIGH);

      delay(5000);  // Ouvrir la vanne 1 pendant 5 secondes

      digitalWrite(RELAY_PIN_VANNE1, LOW);

    }

  delay(1000);  // Attendez 1 seconde entre les opérations des vannes

 // Contrôler la vanne 2 si le pH est supérieur à 7

    if (pHValue > 7) {

      digitalWrite(RELAY_PIN_VANNE2, HIGH);

      delay(5000);  // Ouvrir la vanne 2 pendant 5 secondes

      digitalWrite(RELAY_PIN_VANNE2, LOW);

    }

   delay(1000);  // Attendez 1 seconde entre les opérations des vannes

  // Activer le moteur pendant 1 seconde

    digitalWrite(RELAY_PIN_MOTEUR, HIGH);

    delay(1000);

    digitalWrite(RELAY_PIN_MOTEUR, LOW);

  delay(1000);  // Attendez 1 seconde entre les opérations du moteur

  }

delay(1000);  // Attendez une seconde entre les lectures pour éviter des lectures trop fréquentes

}

 float readPH() {

  int rawValue = analogRead(PH_PIN);

  float voltage = (rawValue / 1024.0) * 5.0;  // Convertit la valeur analogique en tension

  float pHValue = 7 - (voltage - 2.5);  // Formule de conversion approximative, à calibrer selon le capteur

    return pHValue;

}

Détail sur le code Arduino
-La fonction analogRead() accepte un paramètre obligatoire : le numéro de broche
analogique à lire.
Dans notre cas d'une carte Arduino UNO, ce paramètre peut prendre la valeur A0.
-La fonction analogRead() retourne un nombre entier (int) compris entre 0 et 1023.

Ce nombre correspond à la tension mesurée, 0 = 0 volt, 1023 = tension alimentation = 5 volts (ou
3V suivant les cartes Arduino).
La mesure prend environ 100μs, il n'est donc pas possible de faire plus de 10 000 mesures par
seconde.
pH_sensorA = analogRead(sensorPin);
pH_sensor=(float)pH_sensorA*5.0/1024; //convert the analog into millivolt
pH_sensor=3.5*pH_sensor;
//pH_sensor = pH_sensorA * (5.0 / 1024.0); // get the pH value
Serial.println(pH_sensor); // print the pH value to the serial monitor

Détails et explications
1. La sonde de pH :

image.png

Précautions :
Il faut utiliser une alimentation à découpage externe et une tension aussi proche que possible du + 5,00 V. Plus la tension est précise, plus la précision est élevée !
Avant que l'électrode ne soit utilisée en continu à chaque fois, il faut la calibrer par la solution standard, afin d'obtenir des résultats plus précis. La meilleure température ambiante est d'environ 25 °C, et la valeur du pH est connue et fiable, proche de la valeur mesurée . Si nous mesurons l'échantillon acide, la valeur du pH de la solution standard doit être de 4,00. Si nous mesurons l'échantillon alcalin, la valeur du pH de la solution standard doit être de 9,18.
Étalonnage de sous-section, juste pour obtenir une meilleure précision. Avant que l'électrode de pH ne mesure différentes solutions, nous devons utiliser de l'eau pour la laver (L'eau déminéralisée).

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.

image.png