Projet irrigation ESP32 + relay 8 channels

Bonjour à tous,
Je débute tout juste en ESP32 et je souhaitais monter un petit projet de controle a distance de relais 5v par un ESP32.
Controller l’irrigation de mon jardin :
sur le relais il y aurait une electrovanne 12V et une pompe 12v (type acquarium)
Actuellement le système fonctionne en standalone avec batterie de 12V et programmateurs
Mais j’aurais souhaité améliorer cela avec le controle a distance de la vanne et pompe dans le cas par exemple ou je ne suis pas présent mais que la journée il fasse super chaud et que je doive arroser quelques minutes en plus, donc controller l’ouverture du relais 1 pour la vanne et ensuite du relais 2 pour la pompe. Inversement s’il pleuvait, arreter pendant un lapse de temps l’arrosage.
Pour m’aider à débuter dans ce projet je me suis servi de ce tuto que j’imagine nombre d’entres vous connaissent :

J’arrive a controller 4 relais comme je voulais.
Je simule cela pour le moment avec des LEDS

Etat 0 : relais R1 et R2 : en NC laissent passer le courant pour alimenter mon système standalone avec programmateurs
Je peux a distance passer le R1 et R2 en NO : pour le cas où il pleuvrait et qu’il serait inutile d’arroser

Mais imaginons qu’a distance je perde la main sur le WebServer ESP32, en theorie les relais R1 et R2 restent en position NO donc plus de retour possible en position NC.
Alors je me suis dit que je pouvais lui coller pour le test un delais comme suit : de 60s pour mon teste

void loop() {
// Set all relays to off when the program starts - if set to Normally Open (NO), the relay is off when you set the relay to HIGH
for(int i=1; i<=NUM_RELAYS; i++){
pinMode(relayGPIOs[i-1], OUTPUT);
if(RELAY_NO){
digitalWrite(relayGPIOs[i-1], HIGH);
}
else{
digitalWrite(relayGPIOs[i-1], LOW);
}
}

void loop() {
delay(60000);
}

Ensuite pour mon test : j’ai passé les relais R1 et R2 en NO et j’ai attendu comme si je n’avais plus d’acces à l’ESP32 en remote et effectivement les relais ont rebasculé en position NC au bout de x secondes
Cette sécurité fonctionne mais présente que des désavantages :

-on ne peut pas controller l’état du delay() : à combien il est ?!

-on ne peut a priori pas de facon dynamique appliquer une valeur ?!

Maintenant voilà ma question :
Cette petite rustine ne me convient pas car, si par hasard il pleuvait X jours, il serait logique de ne pas arroser pour economiser l’eau de la cuve…
Y a t il une façon de rajouter sur la page web la saisie d’une valeur numerique correspondant a un temps en secondes ou heures ou jours et que cette valeur serve ensuite à temporiser les relais R1 et R2 en NO et au delà de ce temps, par securité, repasser en NC les relais R1 et R2 ?

Une espece de Countdown ou timer avec cette valeur saisie par l’utilisateur

PS : Le fait d’avoir mis le R1 et R2 en NC permet au cas ou l’'ESP32 cramait, que le courant continu à passer pour l’arrosage

J’espère avoir été détaillé dans mes explicationns

Je sollicite donc l’expertise de chacun sur le sujet afin de m’aider et eventuellement si mon projet interesse certain il est à vous :slight_smile:

D’abord tu dois apprendre à poster un code sur le forum. Lis les messages épinglés en haut du forum français, ils sont importants.

Ensuite ton code contient deux loop, c’est anormal. Fusionne les en une seule.

Enfin, il est possible de faire ce que tu demandes, il faut créer un formulaire en html, le faire afficher sur la page Web de ton serveur sur ESP32 et analyser la réponse avec le code ESP32.

Je n’ai pas ça devant les yeux mais je sais que la bibliothèque Web serveur de l’ESP32 fait ça très facilement. Il y a des fonctions pour analyser les ordres envoyés par la page html (args, hasArg, etc)

Tu peux aussi regarder du côté de Opensprinkler qui fonctionne sur esp8266 et dont le firmware est sur github.

J'avais fait une version qui compile sur mon mais elle doit dater un peu. Et il y a une branche où j'ai changé le code pour communiquer avec l'arroseur existant (X-Core Hunter).

Pour m'aider à débuter dans ce projet je me suis servi de ce tuto que j'imagine nombre d'entres vous connaissent : https://randomnerdtutorials.com/esp32-relay-module-ac-web-server/

Bonjour, c'est qu'on a peut-être + simple pour juste activer des relais ...

MAIS au fait, quelqu'un connaît la librairie ESPAsyncWebServer, qui semble offrir des perspectives alléchantes ?

trimarco232: MAIS au fait, quelqu'un connaît la librairie ESPAsyncWebServer, qui semble offrir des perspectives alléchantes ?

Oui, je m'en sers pour mon simulateur de présence (voir projets terminés)

Seb82: Tu peux aussi regarder du côté de Opensprinkler qui fonctionne sur esp8266 et dont le firmware est sur github.

J'avais fait une version qui compile sur mon mais elle doit dater un peu. Et il y a une branche où j'ai changé le code pour communiquer avec l'arroseur existant (X-Core Hunter).

Merci Je vais de ce pas regarder cela... je vous tiens au courant