problema progetto apertura persiane con node mcu

Salve,
sto implementando un sistema di apertura persiane (8) con applicazione android utilizzando il webserver dell'esp8266.
Siccome le persiane hanno già un sistema di fine corsa, non è un problema il tempo relativo all'attivazione della salita o della discesa.

Il problema è che nel momento in cui premo 2 volte il tasto "apri", il secondo comando viene memorizzato ed eseguito al ciclo successivo, raddoppiando i tempi di apertura o chiusura.

il codice è questo

if (req.indexOf("/gpio/0") != -1)
{
digitalWrite(2, 0);
client.flush();
val = 1;
delay(5000);
digitalWrite(2, 1);
client.flush();
}

else if (req.indexOf("/gpio/1") != -1)
{
digitalWrite(4, 0);
client.flush();
val = 0;
delay(5000);
digitalWrite(4, 1);
client.flush();

}

Se durante l'esecuzione del dalay non memorizzasse i comandi, potrebbe andar bene.

Devo fare in modo che quando si sta a prendo o chiudendo la persiana, non vada nulla in esecuzione.
Potete aiutarmi?

  1. vai a presentarti sul fotum apposito e a leggere il regolamento. Se no qui nessuno potrà aiutarti. Rijrdati di spiegare le tue coniscienze di elettronica e programmazione.

  2. posta il vodice (preferibilmente tutto) con link a librerie "strane" eventualmente usate. Il codice va postato tra i tag code [ code ] senza spazi .... tuo codice [ /code ].

  3. puoi star certo che durante il delay Arduino aspetta, a meno di azioni svolte in interrupt (le quali CREDO vengano svolte regolarmente). Quello di cui NON HO IDEA é se c'é una memoria per il tipo di trasmissione dati che usi. Se così fosse allora temo che il dato "apri" o "chiudi" venga ricordato, fino a quando non viene letto ed eseguito al ciclo successivo. Per sviare ogni dubbio puoi:
    Inserire dopo la pausa una funzione che svuoti il buffer
    Tenere una flag sullo stato della tapparella e lavorare solo se lo stato desiderato ela flag non corrispondono
    Altri modi sono ben accetti

>misterbug76: Come ti è stato detto, essendo il tuo primo post, nel rispetto del regolamento della sezione Italiana del forum (… punto 13, primo capoverso), ti chiedo cortesemente di presentarti IN QUESTO THREAD (spiegando bene quali conoscenze hai di elettronica e di programmazione … possibilmente evitando di scrivere solo una riga di saluto) e di leggere con MOLTA attenzione il su citato REGOLAMENTO

… poi, in conformità al suddetto regolamento, punto 7, devi editare il tuo post (quindi NON scrivendo un nuovo post, ma utilizzando il bottone More → Modify che si trova in basso a destra del tuo post) e racchiudere il codice all’interno dei tag CODE (… sono quelli che in edit inserisce il bottone con icona fatta così: </>, tutto a sinistra).

In pratica, tutto il tuo codice dovrà trovarsi racchiuso tra due tag: [code] _il _tuo_ codice_ [/code] così da non venire interpretato e non dare adito alla formazione di caratteri indesiderati o cattiva formattazione del testo. Grazie.

Guglielmo