Bonjour,
Après avoir découvert que la pompe de ma piscine devait tourner sans eau depuis plusieurs jours, désamorcée à cause à l'évaporation importante de l'eau pendant la canicule de l'été dernier, heureusement elle n'a pas grillé. ![]()
Pour éviter que ça ne se reproduise vu le prix de la pompe, il me fallait trouver un dispositif permettant de détecter son désamorçage pour la stopper.
Partant du principe que la pompe consomme un certain courant lorsqu'elle fonctionne habituellement (dans mon cas environs 4A), et qu'elle tourne "à vide" lorsqu'elle est désamorcée (soit 1.5A), il me suffisait de faire une mesure du courant et la comparer à un seuil, pour déclencher l'alimentation de la pompe.
Au final, après quelques galères pour comprendre comment mesurer de la tension alternative issue d'un capteur de courant, et grâce à une vidéo sur Yout...e qui aborde l'offset de tension alternative pour la rendre exploitable entre 0/5V= et l'exploitation de la librairie "Emonlib", j'ai fini par réaliser ce montage qui fonctionne à la perfection !
Composants utilisés et montage:
Le programme:
#include "EmonLib.h" // Integre bibliotheque Emon Library
EnergyMonitor emon1; // Creer une instance Emonlib
void setup()
{
// Declaration des entrées/sortie/LED intégrée (Pas de A1 car gestion pin 1 par Emonlib)
pinMode(LED_BUILTIN, OUTPUT);
pinMode(A0, INPUT);
pinMode(2, OUTPUT);
// Mesure Courant sur broche entrée A1, calibration TA12-100 (5, 4 en réalité)
emon1.current(1, 4);
// Temporisation de mise en service détection pour laisser le temps que la pompe démarre.
delay(2000); // Attendre 2000 millisecondes
}
void loop()
{
// Gestion clignotement LED intégrée pour signaler le fonctionnement du XIAO.
digitalWrite(LED_BUILTIN, HIGH);
delay(500); // Attendre 500 millisecondes
digitalWrite(LED_BUILTIN, LOW);
delay(500); // Attendre 500 millisecondes
// Calcul courant Irms pompe (1480 = nombre d'échantillonages)
double Irms = emon1.calcIrms(1480);
// Déclaration variable Valeur seuil A0 en bits pour lecture sur moniteur serie
int valA0 = analogRead (A0);
// Déclaration variable Courant converti en 1023 bits sur entrée 3.3V, pour calcul courant
int Courant = ((Irms * 1023) / 3.3);
// Comparaison en bits seuil A0 défini par potentiomètre / mesure courant pin1 par capteur TA12-100)
if (Courant <= analogRead(A0)) { // Si courant mesuré est inférieur à la valeur du potentiomètre...)
digitalWrite(2, HIGH); // alors active la sortie 2 => le contact NF du relais s'ouvre et coupe l'alimentation de la pompe)
} else { // sinon...
digitalWrite(2, LOW); // laisse la sortie 2 au repos => le contact NF du relais alimente la pompe
}
}
Principe de fonctionnement:
- Le dispositif est installé entre l'alimentation de la pompe et la pompe
- A la mise en service de la pompe, le montage alimente en parallèle la pompe et le circuit de mesure du courant vers le XIAO
- La mesure ne démarre que 2 secondes après la mise sous tension de l'ensemble, le temps que la pompe soit à sa puissance nominale
- Au bout de 2 secondes, le XIAO mesure le courant consommé par la pompe via le capteur TA12-100, et le compare au seuil préalablement réglé à l'aide du potentiomètre entre l'intensité à vide et l'intensité nominale du moteur
- Dés que l'intensité passe en dessous du seuil, la platine relais s'active et s'auto-maintient dans cette position, ce qui coupe l'alimentation de la pompe
- Pour remettre en service le système, il faut couper l'alimentation complète, et remettre en route la pompe
- Cependant, dans le cas où le dispositif tomberait en panne, ou que la pompe se désamorcerait, (afin de purger l'air dans les tuyaux, ce qui amène à une intensité proche de l'intensité à vide tant que l'eau n'est pas complètement revenue dans les tuyaux), un commutateur de "marche forcée" permet de by-passer le montage pour alimenter directement la pompe...
Bon bricolage ! ![]()
Vue interieure:
Platine électronique (XIAO + pont d'offset mesure courant)
Capteur TA12-100:
Modules d'alimentation 220V/5V et 5V/3.3V (les entrées/sorties du XIAO ne fonctionnent que sous 3.3V) :
Boitier en position "pompe désamorcée":











