Bonjour à tous, je suis toujours sur mon projet de clôture qui avance doucement ( je n'ai pas trop de temps en ce moment)
Cependant, j'ai un petit soucis dans une boucle while.
J'aimerai que, si la cloture est éteinte plus d'un certain temps, une notif est envoyé pour me prévenir.
J'y arrive déjà, mais le problème est que ça ne s'arrête pas, je reçois un nombre très important de notification, alors que j'aimerai n'en avoir qu'une.
J'ai pourtant bien essayé de mettre en place un compteur : for (i = 0; i<1; I++)
mais ça ne s'arrete pas.
Voici mon code :
// si la cloture est éteinte depuis plus de 30 mn, on prévient tout le monde
while ( cloture1Allume == false ) {
if (millis()-tempscloturearret >= 60000) {
{
sendToPushingBox(DEVID5);
}}
// si la cloture est éteinte depuis plus de 30 mn, on prévient tout le monde
while ( cloture1Allume == false ) && (flag_envoi == false;)
{
if (millis() - tempscloturearret >= 60000) {
{
sendToPushingBox(DEVID5);
flag_envoi = true;
}
}
il suffisait de rajouter un variable de type booleen .
Juste un point pour éviter des soucis à quelqun d'autre, ton code ne compilera pas ( je sais que tu le sais) mais ça peut aider un débutant .
// si la cloture est éteinte depuis plus de 30 mn, on prévient tout le monde
while (( cloture1Allume == false ) && (flag_envoi == false))
if (millis() - tempscloturearret >= 60000) {
{
sendToPushingBox(DEVID5);
flag_envoi = true;
}
}
[code]
ca compile chez moi, il manquait juste les déclarations et la neutralisation de la ligne d'envoi
c'était juste le principe que je voulais te montrer
unsigned long tempscloturearret;
boolean flag_envoi=false;
boolean cloture1Allume=false;
void setup() {
// si la cloture est éteinte depuis plus de 30 mn, on prévient tout le monde
while (( cloture1Allume == false ) && (flag_envoi == false))
if (millis() - tempscloturearret >= 60000) {
{
// sendToPushingBox(DEVID5);
flag_envoi = true;
}
}
}
void loop() {
// put your main code here, to run repeatedly:
}