Ciao, ziopippo.
Prima di tutto, come ho già scritto a Funesto, ti consiglio di usare un
//t è unsigned long
if(millis()-t>999) // Una volta al secondo:
{
t=millis();
Serial.print ... ... ...
display.print ... ... ...
}
per fare solo una volta al secondo tutto ciò che non deve essere veramente continuo, per velocizzare il ciclo. Leggere la temperatura, ad esempio, è un'operazione che può essere fatta anche ogni 5 secondi.
Per il problema, poi, scrivi qualcosa del tipo:
void suona()
{if (!muto) tone(buzzer, 1000); else noTone(buzzer);}
quando silenzi l'allarme, muto va a 1 e l'allarme smetterà e non potrà più suonare finché muto non verrà rimesso a 0.