Pas de remontée d'info entre Arduino Mega 2560 et Jeedom pourinstallation de plusieurs détecteurs de pluie

Bonjour à tous,

J’ai installé un bain nordique à la maison que je vais habillé pour une question d’esthétique.
J’aimerais installer 5 détecteurs de pluie afin de détecter d’éventuelles fuites qui ne se verront plus quand l’habillage sera installé.

Je suis nul en programmation…J’ai cherché sur plusieurs sites des programmes afin de faire fonctionner ces capteurs (connecteurs A0, D0, GND et VCC). Ils sont raccordés sur un Arduino Mega avec shield ethernet.

Je suis arrivé tant bien que mal à les faire fonctionner sur l’arduino.
En revanche, je ne parviens pas faire communiquer l’arduino avec Jeedom.
J’ai essayé de créer un virtuel ainsi qu’un scénario mais il ne se passe rien :sob:

Jeedouino a été correctement installé:

Pour essayer de programmer, je suis parti de ça:
int sortie1=31;
int capteur1=A8;
int detection1;

int sortie2=32;
int capteur2=A9;
int detection2;

int sortie3=33;
int capteur3=A10;
int detection3;

void setup() {
  pinMode(sortie1,OUTPUT); // broche "sortie1" (31) en SORTIE
  pinMode(capteur1,INPUT); // broche "capteur1" (A8) en ENTREE

  pinMode(sortie2,OUTPUT); // broche "sortie2" (32) en SORTIE
  pinMode(capteur2,INPUT); // broche "capteur2" (A9) en ENTREE

  pinMode(sortie3,OUTPUT); // broche "sortie2" (33) en SORTIE
  pinMode(capteur3,INPUT); // broche "capteur2" (A10) en ENTREE
  
}
 
void loop() {
  Capteur1();
  Capteur2();
  Capteur3();
}

void Capteur1() {
  detection1=digitalRead(capteur1); // on lit la broche capteur1
  // la sortie OUT du capteur est active sur niveau bas
  while (detection1==0) { // objet détecté = niveau 0 sur OUT capteur1
    detection1=digitalRead(capteur1);
    digitalWrite(sortie1,1); // on commande la sortie 1 (diode L sur la carte)
  }
  digitalWrite(sortie1,0); // on éteint L dès qu'il n'y a plus detection
  
}

   
void Capteur2() {
  detection2=digitalRead(capteur2); // on lit la broche capteur2
  // la sortie OUT du capteur est active sur niveau bas
  while (detection2==0) { // objet détecté = niveau 0 sur OUT capteur2
    detection2=digitalRead(capteur2);
    digitalWrite(sortie2,1); // on commande la sortie 2(diode L sur la carte)
  }
  digitalWrite(sortie2,0); // on éteint L dès qu'il n'y a plus detection
}

   
void Capteur3() {
  detection3=digitalRead(capteur3); // on lit la broche capteur3
  // la sortie OUT du capteur est active sur niveau bas
  while (detection3==0) { // objet détecté = niveau 0 sur OUT capteur3
    detection3=digitalRead(capteur3);
    digitalWrite(sortie3,1); // on commande la sortie 3 (diode L sur la carte)
  }
  digitalWrite(sortie3,0); // on éteint L dès qu'il n'y a plus detection
}

Quand un détecteur est mouillé, cela fonctionne.

J’ai ensuite essayé d’intégrer ce programme dans le sketch produit par jeedouino:
Voir fichier joint
Sketch Arduino pour le Plugin JEEDOUINO v097.txt (60,7 Ko)

Merci beaucoup pour l’aide que vous pourrez m’apporter.

Bonjour fred.
je ne suis pas un pro de la programmation, toutefois tes boucle de détection « WHILE » me choc
Cela veux dire que temps que ton capteur est mouillé le programme boucle et ne fait rien d’autre même pas vérifier les autre capteurs Boucle while — Wikipédia
il me parait plus efficace de passer par un test avec « IF »

Bonjour,

Ah oui effectivement vous avez raison, je vais modifier cette partie.
J’avais copier ce programme qui à l’origine était fait pour un seul détecteur donc cela n’était pas gênant.
Je vais attendre d’autres réponses concernant le problème de communication entre l’arduino et jeedom.

Bonne journée

Bonjour,

Finalement, j’ai trouvé une autre solution avec un Shelly Input 4 Plus.
Pas de programmation à faire et beaucoup plus simple.