• Post category:Node-Red
  • Commentaires de la publication :1 commentaire
  • Dernière modification de la publication :mars 15, 2022
  • Temps de lecture :9 min de lecture

Mesure de PH avec un Arduino et Adapter 1130. Communication Serial au Raspberry pour affichage sur un Dashboard Node-RED *

1. Introduction :

Dans ce tutorial vous allez découvrir comment mesurer une valeur de PH avec un Arduino Uno et un Adapter 1130.

Récupérer cette valeur dans Node-RED grâce à une communication Serial entre Arduino et Raspberry.

Et afficher ces valeurs dans un Dashboard.

 

2. Composants nécessaires :

  • Arduino Uno
  • Un Raspberry
  • Une Breadboard
  • 1 Adapter 1130
  • 1 Sonde PH
  • Des fils de connexion

 

3. Prérequis d’installation du Raspberry :

  • Raspberry Pi OS
  • Node-RED
  • Node-RED-dashboard

 

4. Programmation de la partie Arduino :

Avant de commencer le câblage, on va commencer par injecter le programme dans votre Arduino qui va servir à récupérer la valeur de la carte Adapter 1130 branchée sur l’entrée analogique A1 de votre Arduino et de la convertir en une valeur PH qui sera comprise entre 0 et 14.

La communication entre Arduino et le Raspberry se fera grâce à une vitesse de communication de 9600 Bauds.

On enverra ensuite cette valeur grâce à un “Serial.println” pour pouvoir la récupérer dans Node-RED.

Voici le code à rentrer dans votre Arduino :

uint8_t pin_ph = A1;                  //Pin PH
float ph_sensor_value = 0.0; // Valeur lu en volt(0 et 5)
float ph_value_float = 0.0; // Valeur du Ph

void setup() {
Serial.begin(9600);
}

void loop() {
ph_sensor_value = analogRead(pin_ph)* 5000.0 / 1023.0 / 1000.0; // form 0.0 to 5.0 V
ph_value_float = (0.0178 * ph_sensor_value * 200.0) -1.889; // Calcule du pH

if (ph_value_float < 0){ // On fixe le Ph entre 0 et 14
ph_value_float = 0;
}
if (ph_value_float > 14){
ph_value_float = 14;
}
Serial.println(ph_value_float);
delay(1000); // On attend 1 seconde avant la prochaine mesure
}

 

5. Schéma et câblages :

Voici le câblage à effectuer sur votre Arduino. Il vous faudra aussi brancher un câble USB de liaison entre votre Arduino et Raspy pour la communication.

Il servira aussi d’alimentation de l’Arduino pour les tests (il sera préférable de passer sur une vraie alimentation par la suite pour obtenir une stabilité du 5V important dans la mesure).

 

6. Programmation de la partie Node-Red sur le Raspberry :

Pour commencer dans Node-Red, nous allons ajouter un bloc “serial in” disponible dans network.

 

Double cliquez dessus et allez sur le petit stylo pour le paramétrer.

 

Une fois dans les paramètres, dans Serial Port,  appuyez sur la loupe et sélectionnez le port USB ou est branché votre Arduino.

 

Dans settings, sélectionnez la vitesse de communication à 9600 bauds.

Une fois fini, cliquez sur “ADD” puis sur “Done

 

Nous allons ensuite ajouter un bloc “json” disponible dans parser.

 

Puis un bloc “gauge” disponible dans dashboard.

 

Double cliquez dessus, nous allons le renommer dans Label “PH” et lui modifier son Range qui sera de “0” pour le min et “14” pour le max.

Une fois tous les paramètres rentrés, cliquez sur “Done”

 

Maintenant il va falloir créer une liaison entre les blocs en cliquant sur les carrés gris et en faisant glisser votre souris.

Cela permet de les faire communiquer ensemble.

Puis cliquez sur “Deploy” en haut à droite.

 

Maintenant nous allons configurer la partie Dashboard pour pouvoir afficher notre gauge sur l’interface Web.

Pour cela, cliquez sur l’icone Dashboard pour accéder au menu et cliquez sur  “+tab”

 

 

Cliquez ensuite sur “+group”

 

Maintenant nous allons retourner sur le bloc “gauge” : double-cliquez dessus et dans “Group”, sélectionnez [Tab1] Group 1.

 

Il ne vous reste plus qu’à “Deploy” votre projet et à aller voir le résultat en cliquant sur l’icône 2.

 

Vous devriez voir apparaître ceci :

 

7. Conclusion :

Si tout s’est bien passé, votre gauge vous permet maintenant de voir la valeur de votre sonde PH.

Si cela ne fonctionne pas, vérifiez bien que vous avez bien sélectionné le bon port USB dans le bloc serial, car il peut afficher connected mais il n’est peut être pas forcement sur le port ou se situe l’Arduino.

 

Voici le code complet Node-Red que vous pouvez importer :

[{"id":"2b93a1b2.7d280e","type":"tab","label":"Flow 1","disabled":false,"info":""},{"id":"97942f37.cdf5e","type":"serial in","z":"2b93a1b2.7d280e","name":"","serial":"56fa402e.bb07a","x":110,"y":40,"wires":[["913c03bd.66b2e"]]},{"id":"913c03bd.66b2e","type":"json","z":"2b93a1b2.7d280e","name":"","property":"payload","action":"","pretty":false,"x":280,"y":40,"wires":[["2353acaa.2f9264"]]},{"id":"2353acaa.2f9264","type":"ui_gauge","z":"2b93a1b2.7d280e","name":"","group":"69984d9b.0d5274","order":0,"width":0,"height":0,"gtype":"gage","title":"PH","label":"","format":"{{value}}","min":0,"max":"14","colors":["#00b500","#e6e600","#ca3838"],"seg1":"","seg2":"","x":420,"y":40,"wires":[]},{"id":"56fa402e.bb07a","type":"serial-port","z":"","serialport":"/dev/ttyUSB0","serialbaud":"9600","databits":"8","parity":"none","stopbits":"1","waitfor":"","dtr":"none","rts":"none","cts":"none","dsr":"none","newline":"\\n","bin":"false","out":"char","addchar":"","responsetimeout":"10000"},{"id":"69984d9b.0d5274","type":"ui_group","name":"Group 1","tab":"52768935.180c88","order":1,"disp":true,"width":6},{"id":"52768935.180c88","type":"ui_tab","name":"Tab 1","icon":"dashboard","order":1}]

 

 


 

Cette publication a un commentaire

  1. laurent

    bonjour,
    Tout d’abord je tiens à vous remercier pour votre partage.
    J’ai également acheté ces petit adaptateur pour la lecture du PH et ORP et je galère un peu pour calibrer un ph7.0 avec la BNC en court circuit.
    A quoi correspond le multiplication par 200 dans votre calcul du PH?
    Elle figure pas dans la notice de l’adaptateur et je sens qu’il y a une astuce que je n’ai pas encore comprise.
    Bien cordialement
    Laurent

Répondre à laurent Annuler la réponse