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 supportNous avons utilisé 2 plaques en bois Étape 2 : Mise en place des réservoirsNous 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 électrovannesNous 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 tigeNous avons fait le design de la tige en utilisant le logiciel Tinkercad, et ensuite nous avonsutilisé l'imprimante 3D. Enfin, nous avons relié la tige au moteur. Étape 5 : Montage finaleNous 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 nousavons 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 doncl’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 doncla 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) Préparation du support (3 séance)       Ecriture du code (2 séances) Cablage des composants avec la carte arduino (2 séances) Projet après la finalisation 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 brocheanalogique à 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 (ou3V suivant les cartes Arduino).La mesure prend environ 100μs, il n'est donc pas possible de faire plus de 10 000 mesures parseconde.pH_sensorA = analogRead(sensorPin);pH_sensor=(float)pH_sensorA*5.0/1024; //convert the analog into millivoltpH_sensor=3.5*pH_sensor;//pH_sensor = pH_sensorA * (5.0 / 1024.0); // get the pH valueSerial.println(pH_sensor); // print the pH value to the serial monitor Détails et explications1. La sonde de pH : 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-ArduinoTinkercad 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.