ce serait bien d'être cohérent sur les types:
unsigned long tempo;
unsigned long valeur_tempo = 30000ul;
bool status = false;
et de donner des petits noms aux pins (const byte ....)
il faut éviter de faire
if (tempo + valeur_tempo < millis()) {
à cause du rollover de millis() dans 50 jours. On écrit
if (millis() - tempo < valeur_tempo ) {
ensuite j'ai pas regardé si ça correspond au cahier des charges initial. Moi je ferai une petite machine à état (cf mon tuto éventuellement)