Pour connaître le taux d'acidité (ou d'alcalinité) de l'eau de votre piscine ou de votre aquarium, vous avez besoin d'un pH-mètre. Dans cet article, vous trouverez une solution simple mais efficace, basée sur des composants disponibles sur le marché.

Dans cet article, nous présentons un pH-mètre capable de mesurer avec précision la valeur du pH d'une solution. Nous utilisons un capteur dédié, la carte Arduino UNO R4 Minima, et un petit écran OLED de 0,96 pouce. La polyvalence de ce système lui permet d'être utilisé dans différents domaines, en fournissant des résultats fiables et une utilisation conviviale.

L'eau est un élément crucial dans de nombreux domaines. Par exemple, dans l'agriculture hydroponique, où les plantes sont cultivées sans terre, le pH de l'eau joue un rôle clé dans l'absorption optimale des nutriments par les plantes. La surveillance constante du pH de l'eau permet aux agriculteurs et aux utilisateurs d'ajuster les niveaux d'acidité ou d'alcalinité, créant ainsi un environnement idéal pour la croissance et le développement des plantes. Le maintien d'une valeur adéquate du pH de l'eau est également essentiel, par exemple, pour l'entretien courant des piscines - une condition préalable pour garantir aux baigneurs un environnement sain, sécurisé et toujours propice à la baignade. Un pH déséquilibré peut provoquer une irritation des yeux et de la peau des nageurs et favoriser la prolifération de bactéries et d'algues.

En plus, il est possible d'utiliser ce système de mesure du pH dans les aquariums, où la qualité de l'eau est vitale pour la santé des poissons et de tous les autres organismes vivants. Un pH inadéquat peut perturber l'équilibre de l'écosystème aquatique, provoquant stress et maladies pour ses habitants. Avec ce pH-mètre, vous pourrez contrôler le pH de l'eau en temps réel et apporter les corrections nécessaires pour garantir une valeur idéale pour chaque application.

Qu'est-ce que le pH ?

Avant de poursuivre la description du projet, voyons ce qu'est le pH. Le pH (potentiel d'hydrogène) est une échelle de mesure utilisée pour indiquer le niveau d'acidité ou d'alcalinité d'une solution. Cette échelle va de 0 à 14, où une valeur de 7 représente la neutralité, tandis que les valeurs inférieures à 7 indiquent l'acidité et celles supérieures à 7 l'alcalinité (figure 1).

pH Scale
Figure 1. L'échelle utilisée pour indiquer le niveau d'acidité ou d'alcalinité d'une solution. (Source : Freepik / @freepik)

Le pH est déterminé par la concentration d'ions hydrogène (H+) présents dans la solution. Lorsqu'une substance se dissout dans l'eau, elle peut libérer des ions hydrogène qui déterminent l'acidité de la solution. Si la concentration de ces ions est élevée, le pH sera faible, ce qui indique l'acidité. Inversement, si la concentration en ions hydrogène est faible, le pH sera élevé, ce qui indique une alcalinité.

Comme nous l'avons mentionné, le pH est un paramètre important dans de nombreux domaines scientifiques et industriels, mais il est également fondamental pour la santé humaine, car divers systèmes biologiques ont besoin d'un environnement ayant un pH spécifique pour fonctionner correctement. La mesure du pH peut être effectuée avec des indicateurs chimiques ou des instruments électroniques appelés pH-mètres, qui fournissent une lecture précise du pH de la solution et sont couramment utilisés dans les laboratoires de chimie et d'analyse environnementale.

Je m'abonne
Abonnez-vous à la balise thématique test&mesure pour être averti dès qu'une information relative à ce sujet sera publiée par Elektor !

Sonde de mesure du pH

Dans notre projet, nous utiliserons une sonde électronique pour mesurer le pH (figure 2). Le fonctionnement d'une sonde électronique d'un pH-mètre repose sur des principes électroniques et chimiques. Elle se compose d'une électrode en verre sensible au pH et d'une électrode de référence. La première se compose d'un verre spécial qui réagit avec les ions hydrogène de la solution.

Figure 2. Sonde électronique pour la mesure du pH. (Source : Elettronica In)

Lorsque l'électrode de verre est immergée dans la solution, une différence de potentiel électrique est créée en fonction du pH de la solution. L'électrode de référence fournit un point de référence stable pour la mesure du pH. En général, on utilise une électrode de référence en gel ou en solution saline. La sonde pH peut détecter la différence de potentiel électrique entre l'électrode de verre et l'électrode de référence. Ce potentiel est converti en valeur de pH grâce à un circuit électronique.

Avant toute utilisation, il est nécessaire de calibrer l'appareil en utilisant des valeurs de pH connues (généralement pH 4 et pH 7) afin de garantir la précision des mesures. Un soin particulier doit être apporté à l'électrode de verre, qui doit être conservée dans une solution spécifique et nettoyée périodiquement pour éliminer les dépôts susceptibles d'affecter les mesures. Nous ne pouvons pas connecter la sonde directement à notre carte Arduino UNO R4, mais le signal doit être amplifié et rendu lisible par le microcontrôleur via une carte de traitement du signal (figure 3).

Arduino UNO R4
Figure 3. La carte de traitement des signaux qui nous permet d'interfacer
la sonde de pH à l'Arduino UNO R4. (Source : Elettronica In)

La sonde de pH est connectée au module de conditionnement via un connecteur BNC, ce qui garantit une connexion stable et fiable. Le module dispose d'une broche de sortie de tension qui délivre un niveau proportionnel au niveau de pH mesuré. Il est possible de connecter cette broche à l'entrée analogique d'une carte, telle que l'Arduino UNO. Pour un bon fonctionnement, le module doit être alimenté par une tension de 5 VCC, et, compte tenu de sa faible consommation (entre 5 et 10 mA), nous pouvons l'alimenter directement à partir de la broche 5 V de notre carte UNO R4. Pour un fonctionnement optimal, il est nécessaire d'attendre au moins 60 secondes pour obtenir des lectures précises.

Je m'abonne
Abonnez-vous à la balise thématique Arduino pour être averti dès qu'une information relative à ce sujet sera publiée par Elektor !

Arduino UNO R4 Minima

La quatrième version de l'Arduino UNO, l'Arduino UNO R4 Minima, constitue une avancée majeure dans le domaine du bricolage et de l'électronique (figure 4). Cette nouvelle version abrite un processeur Arm Cortex-M4 32 bits, offrant plus de puissance de calcul et 16  fois plus de mémoire que ses prédécesseurs. Malgré ces améliorations, la taille et la compatibilité 5 V restent les mêmes. Cela assure un portage transparent pour les shields et les projets existants, en profitant de l'écosystème étendu et unique déjà créé pour l'Arduino UNO original figure 5).

Arduino UNO R4 Minima board
Figure 4. Arduino UNO R4 Minima.
Arduino UNO R4
Figure 5. Le brochage de cette nouvelle carte Arduino est identique à celui de la précédente (Source : arduino.cc)

La nouvelle version offre également une horloge plus rapide, ce qui lui permet d'effectuer des calculs plus précis et de controler des circuits complexes et sophistiquées. Elle est également dotée d'un connecteur USB-C, plus petit, plus puissant et plus durable que les connecteurs précédents. Pour utiliser l'Arduino UNO R4 Minima, vous devrez installer le package de la carte UNO R4 Minima, qui fait partie du noyau Arduino pour les appareils Renesas. Pour l'installer, vous devrez télécharger une version de l'EDI l'Arduino, depuis la page de téléchargement d'Arduino .

Arduino IDE
Figure 6. La dernière version disponible de l'EDI Arduino est la 2.2.1.

Dans cet article, nous utiliserons la dernière version de l'EDI 2 (figure 6). Pour installer le package de la carte, ouvrez le gestionnaire de cartes dans le menu de gauche, recherchez UNO R4 Minima et installez la dernière version (ou la version de votre choix) (figure 7). Maintenant, la connexion de la carte à l'ordinateur créera un port série virtuel, que vous pourrez utiliser pour programmer l'Arduino.

Figure 7. Le paquet "Arduino UNO R4 Boards" doit être installé.

Câblage

Dans ce projet, nous avons utilisé plusieurs composants pour réaliser un système de mesure du pH, comme le montre le schéma de câblage (figure 8). Nous avons connecté le composant principal, qui est la sonde capable de détecter le pH, à son circuit de conditionnement via un connecteur BNC. Comme mentionné précédemment, ce circuit est alimenté directement par les broches 5 V et GND de la carte Arduino UNO R4. La broche P0 du module de détection de pH a été connectée à la broche analogique A0 de la carte Arduino. Cette connexion permettra à la carte principale de lire les valeurs de pH détectées par le capteur.

Arduino UNO R4 Minima board
Figure 8. Schéma de câblage du projet.

L'écran OLED utilisé fournit une connexion I2C qui permet de contrôler l'afficheur avec seulement deux fils en plus de l'alimentation. Les broches SDA et SCL de l'afficheur sont donc connectées aux broches SDA et SCL de la carte Arduino R4, tandis que l'alimentation est fournie par les broches 3,3 V et GND. Cette configuration nous permettra de mesurer le pH à l'aide de la sonde et d'afficher les résultats sur l'écran OLED. Il est important de suivre attentivement les instructions données, ainsi que les connexions indiquées dans le schéma de câblage, afin d'assurer le bon fonctionnement du système.

Je m'abonne
Abonnez-vous à la balise thématique Embedded & AI pour être averti dès qu'une information relative à ce sujet sera publiée par Elektor !

Micrologiciel

Le code écrit pour l'Arduino UNO R4, téléchargeable sur la page web Elektor Labs de ce projet , nous permet de lire les valeurs du capteur de pH et de les afficher sur l'OLED. Regardons le code plus en détail. Les bibliothèques nécessaires au fonctionnement du programme sont incluses dans les premières lignes de code, en particulier la bibliothèque Wire pour l'I2C et les bibliothèques Adafruit_GFX et Adafruit_SSD1306 pour la gestion de l'affichage OLED. Ensuite, on définit quelques constantes et variables utilisées dans le programme (listage 1).

define SensorPin 0          // the analog output pin of the pH sensor is connected to the analog input 0 of the Arduino
unsigned long int avgValue;  // stores the average value of the sensor feedbacks
float b;
int buf[10],temp;

#define SCREEN_WIDTH 128  // OLED screen width in pixels
#define SCREEN_HEIGHT 64  // OLED screen height in pixels
#define OLED_RESET    -1  // reset pin  (o -1 if the reset handling is shared)
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);

La fonction setup() est exécutée au démarrage et joue un rôle crucial dans l'initialisation du programme (listage 2). Tout d'abord, la broche numérique 13 est configurée en sortie pour contrôler une LED. Ensuite, la communication série via le moniteur série est initialisée à une vitesse de transmission de 9 600 bauds. Si la mémoire ne peut pas être allouée, un message d'erreur s'affiche et le programme s'interrompt.

void setup()
{
  pinMode(13,OUTPUT);  
  Serial.begin(9600);  
  Serial.println(“Ready”);   

  if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) 
  { 
   Serial.println(F(“SSD1306 allocation failed”));
   for(;;);
  }
  display.display();
  delay(2);
  display.clearDisplay();

  display.clearDisplay();
  display.setTextColor(WHITE);
  display.setTextSize(2);
  display.setCursor(10,5);
  display.print(“PH Sensor”);
  display.display();
  delay(3000); 
}

Si, en revanche, l'écran est correctement initialisé, une série de commandes est exécutée pour le configurer. Une courte pause est lancée, puis l'affichage est effacé. La taille du texte est réglée sur 2 et le curseur est placé aux coordonnées de l'écran (10, 5). Ensuite, le texte "PH Sensor" est affiché en appelant la fonction display.display(). Une delai de 3 secondes est introduit pour permettre à l'utilisateur de lire le message sur l'écran avant que le programme ne passe à la fonction loop(). La fonction loop() est le cœur du croquis Arduino et est exécutée en continu après la phase de configuration (listage 3).

void loop()
{
  for(int i=0;i<10;i++)     //Get 10 sample values from the sensor to get a more accurate measurement
  { 
    buf[i]=analogRead(SensorPin);
    delay(10);
  }
  for(int i=0;i<9;i++)        //Sort the analog values from smallest to largest
  {
    for(int j=i+1;j<10;j++)
    {
      if(buf[i]>buf[j])
      {
        temp=buf[i];
        buf[i]=buf[j];
        buf[j]=temp;
      }
    }
  }
 avgValue=0;
  for(int i=2;i<8;i++)                      //take the average value of 6 center sample
    avgValue+=buf[i];
  float phValue=(float)avgValue*5.0/1024/6; //convert the analog into millivolt
  phValue=3.5*phValue;                      //convert the millivolt into pH value
  Serial.print(“    pH:”);  
  Serial.print(phValue,2);
  Serial.println(“ “);
  display.clearDisplay();
  display.setTextSize(2);
  display.setCursor(20,5);
  display.println(“Ph Value”);
  display.setTextSize(3);
  display.setCursor(30,35);
  display.print(phValue);
  display.display(); 
  digitalWrite(13, HIGH);       
  delay(800);
  digitalWrite(13, LOW); 
 
}

Dans la boucle loop(), 10 valeurs d'échantillon sont acquises à partir du capteur de pH sensor via la broche analogique 0. Ces valeurs sont ensuite classeées en ordre croissant pour calculer la valeur moyenne des six échantillons du milieu, afin de réduire le bruit. Cette valeur est ensuite convertie en millivolts puis en valeur de pH correspondante. La valeur du pH est ensuite affichée sur le moniteur série avec une précision de deux décimales puis affichée sur l'OLED.

Ensuite, un voyant connectée à la broche numérique 13 s'allume et s'éteint pour fournir un retour visuel, et enfin le programme execute un délai de 800 ms avant de recommencer la boucle, en effectuant les mêmes opérations d'acquisition et de calcul des valeurs de pH. Cette boucle se répète indéfiniment tant que l'Arduino reste alimenté. La figure 9 montre le prototype fonctionnel terminé.

Project with Arduino UNO R4 Minima board.
Figure 9. Le prototype terminé, prêt à être testé.

Vérifions la qualité de l'eau

Cet article a présenté un système de mesure du pH utilisant un capteur dédié, la carte Arduino UNO R4 Minima, et un écran OLED. Ce système offre une solution polyvalente pour mesurer avec précision le pH d'une solution dans divers domaines, tels que l'agriculture hydroponique, les piscines et les aquariums. C'est un excellent point de départ pour réaliser votre application spécifique.


À propos de l'auteur

 

Boris Landoni est un expert en électronique et un véritable passionné de ce domaine. Son engagement l'a amené à devenir le directeur général de Elettronica In, le magazine d'électronique le plus populaire en Italie. Il est également le responsable d'open-electronics.org, une plateforme consacrée aux projets open-source qui rassemble des amateurs et des professionnels passionnés.

 


Notes de l'éditeur : Ce projet a été publié à l'origine dans Elettronica IN
elektor