Construisez un pH-mètre Arduino précis avec capteur Atlas Scientific – Guide complet
Composants et fournitures
| Composant | Quantité |
|---|---|
| Arduino UNO | 1 |
| Capteur pH Atlas Scientific Gravity™ Analog | 1 |
| Sonde pH Atlas Scientific Grade Consommateur | 1 |
| Module LCD 20×4 | 1 |
| Boîtier 158×90×60 mm | 1 |
| Mini breadboard | 1 |
| Résistance 220 Ω | 1 |
| Résistance 1 kΩ | 1 |
| Entretoises et vis 11 mm (fournies avec le capteur pH) | 4 |
| Fils de connexion | 1 |
| Plaque acrylique (plexiglas) | 1 |
Outils nécessaires
- Perceuse, mèches, fraises pour cloison sèche, limes, tournevis, étau d'établi, scie à ruban, pistolet à colle, fer à souder, pied à coulisse numérique, règle
Applications et services en ligne
- Arduino IDE
À propos du projet
Nous allons réaliser un pH-mètre de paillasse utilisant le circuit analogique Gravity pH et la sonde d'Atlas Scientific avec un Arduino Uno. Les mesures s'affichent sur un LCD.
Notes :
- Développé sous Windows. Non testé sur Mac.
- Le boîtier n'est pas étanche.
Étape 1 : Préparer le boîtier
Sécurité : Portez lunettes, gants et masque pour l'usinage.
Découpe pour le LCD
- Sur le couvercle, centrez un rectangle 98×40 mm.
- Percez un trou pilote 3,2 mm (1/8") dans le rectangle.
- Utilisez une fraise 3,2 mm pour découper l'intérieur du rectangle (travaillez depuis l'intérieur).
- Limez pour obtenir le rectangle net aux bonnes dimensions.
Découpes pour connecteur BNC et ports Arduino
Sur le côté de la base du boîtier :
- Marquez le centre du cercle (BNC) et les deux rectangles (USB, prise d'alimentation) selon les côtes.
- Découpez : cercle à la perceuse, rectangles comme pour le LCD.
Plaque de base pour composants
Utilisez une plaque acrylique 3,2 mm d'épaisseur.
- Découpez à 135×62,5 mm (scie à ruban).
- Marquez et percez 4 trous 2,38 mm (3/32"). Fraisez côté visserie (profondeur 3 mm, Ø 4,4 mm) pour que les têtes de vis ne dépassent pas.
- Fixez les 4 entretoises 11 mm avec les vis fournies (2 pour le capteur pH, 2 pour l'Arduino).
Étape 2 : Installer l'électronique dans le boîtier
- Insérez la plaque de base dans le fond du boîtier. Fixez avec vis ou colle chaude.
- Montez le capteur pH sur les entretoises.
- Montez l'Arduino Uno sur ses entretoises.
- Collez la mini breadboard sur la plaque.
- Soudez les connecteurs sur le LCD (fournis). Insérez le LCD dans le couvercle et fixez à la colle chaude.
Étape 3 : Câblage
Suivez le schéma (image). Utilisez la mini breadboard pour les résistances 1 kΩ et 220 Ω et pour distribuer le 5V et GND de l'Arduino. Les deux résistances règlent le contraste de l'écran.
Étape 4 : Finaliser l'assemblage
- Assemblez le couvercle et la base avec les vis fournies.
- Connectez la sonde pH au connecteur BNC.
Étape 5 : Téléverser le code sur l'Arduino
- Connectez l'Arduino, ouvrez l'IDE. Outils → Carte → Arduino/Genuino Uno. Outils → Port → sélectionnez le port.
- Ajoutez la bibliothèque LiquidCrystal : Croquis → Inclure une bibliothèque → Gérer les bibliothèques → recherchez « liquidcrystal » → installez « LiquidCrystal Built-in by Arduino, Adafruit ».
- Ajoutez la bibliothèque Atlas Gravity : téléchargez le ZIP depuis le lien fourni → Croquis → Inclure une bibliothèque → Ajouter la bibliothèque .ZIP → sélectionnez « Atlas_gravity.zip ».
- Copiez le code du pH-mètre (lien fourni) dans l'IDE.
- Compilez et téléversez.
- Les lectures pH s'affichent sur le LCD. Pour le moniteur série : Outils → Moniteur série (Ctrl+Shift+M), 9600 bauds, « Carriage return ».
Étape 6 : Calibrer le capteur pH
Important : Si vous utilisez une alimentation externe, branchez-la avant la calibration pour que les niveaux de référence soient corrects.
Calibration 1, 2 ou 3 points avec solutions tampons standard (pH 4, 7, 10). La calibration se fait via le moniteur série – vous voyez les lectures se stabiliser et envoyez les commandes.
Les données de calibration sont stockées dans l'EEPROM de l'Arduino.
Commandes de calibration
- Point bas :
cal,4 - Point milieu :
cal,7 - Point haut :
cal,10 - Effacer calibration :
cal,clear
Procédure
- Retirez le flacon de stockage et rincez la sonde.
- Versez de la solution pH 4 dans un verre (assez pour couvrir la zone sensible).
- Plongez la sonde, remuez pour chasser l'air. Observez le moniteur série jusqu'à stabilisation (légères variations normales).
- Entrez
cal,4dans le moniteur série. Calibration pH 4 terminée. - Répétez pour pH 7 et pH 10 (rinçage entre chaque).
Compensation de température
Le capteur a une précision de ±0,2 %. Le pH-mètre fonctionne dans cette précision entre 7 et 46 °C. Hors de cette plage, une compensation température serait nécessaire. La sonde supporte 1–60 °C.
Code
/* Une fois téléversé, ouvrez le moniteur série (9600 bauds, "Carriage return")
Lectures pH temps réel + calibration 1/2/3 points.
Commandes : "cal,4" "cal,7" "cal,10" "cal,clear"
*/
#include "ph_grav.h"
#include "LiquidCrystal.h"
String inputstring = "";
boolean input_string_complete = false;
char inputstring_array[10];
Gravity_pH pH = A0; // Broche A0 pour sortie capteur pH
LiquidCrystal pH_lcd(2, 3, 4, 5, 6, 7); // LCD : RS=2, E=3, D4-D7=4-7
void setup() {
Serial.begin(9600);
pH_lcd.begin(20, 4);
pH_lcd.setCursor(0,0); pH_lcd.print("--------------------");
pH_lcd.setCursor(0,3); pH_lcd.print("--------------------");
pH_lcd.setCursor(5,1); pH_lcd.print("pH Reading");
if (pH.begin()) Serial.println("Loaded EEPROM");
Serial.println(F("Commandes: \"CAL,4\", \"CAL,7\", \"CAL,10\" pour calibrer"));
Serial.println(F("Commande \"CAL,CLEAR\" pour effacer la calibration"));
}
void serialEvent() {
inputstring = Serial.readStringUntil(13);
input_string_complete = true;
}
void loop() {
if (input_string_complete) {
inputstring.toCharArray(inputstring_array, 30);
parse_cmd(inputstring_array);
input_string_complete = false;
inputstring = "";
}
Serial.println(pH.read_ph());
pH_lcd.setCursor(8, 2);
pH_lcd.print(pH.read_ph());
delay(1000);
}
void parse_cmd(char* string) {
strupr(string);
if (strcmp(string, "CAL,4") == 0) { pH.cal_low(); Serial.println("LOW CALIBRATED"); }
else if (strcmp(string, "CAL,7") == 0) { pH.cal_mid(); Serial.println("MID CALIBRATED"); }
else if (strcmp(string, "CAL,10") == 0) { pH.cal_high(); Serial.println("HIGH CALIBRATED"); }
else if (strcmp(string, "CAL,CLEAR") == 0) { pH.cal_clear(); Serial.println("CALIBRATION CLEARED"); }
}
Schéma
Processus de fabrication
- Construire un Spybot Arduino piloté par Bluetooth
- FlickMote : Télécommande IR à gestes pour maison connectée
- TV-B-Gone DIY Arduino : Télécommande universelle pour toutes les TV
- Construire une horloge maître LED personnalisée avec alarme – Visible à 12 mètres
- Find Me : Localisateur d'objets intelligent avec Arduino et Bluetooth
- Solutions d'alimentation optimisées pour projets Arduino
- Morpion sur matrice LED MAX7219 avec boîtier en carton
- Construire un robot quadrupède Arduino intelligent : guide étape par étape
- Volant Joystick Arduino Personnalisé pour Jeux Vidéo