Aide pour alarme tmpérature

Bonjour,
Je débute sur Arduino et j'aimerais créé une alarme en cas de montée de température ou baisse sur une durée de 2 secondes.
Je suis sur un capteur DHT11 mais apparement l'humiditée ne fonctionne pas, 85% même en changeant de capteur.
J'ai donc décidé de créé mon alarme autour de la température mais sur un temps très bref.
Imaginons qu'il fasse 20 degré continu, j'aimerais faire déclanché mes leds et buzzer si hausse ou baisse de température sur une période de 2 sec maximum.

Voici une partie du code mais je ne sais pas comment le terminer.
Si vous pouviez m'aidez ça serait sympa.

#include <SimpleDHT.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2);
int pinDHT11 = 9;
SimpleDHT11 dht11;
const int buzzerPin = 13;

void setup() {

pinMode (buzzerPin, OUTPUT);
Serial.begin(9600);
lcd.begin(16, 2);
lcd.init(); // initialize the lcd
lcd.backlight();

}
void loop() {
byte temperature = 0;
byte humidity = 0;
lcd.setCursor(0, 0);
int err = SimpleDHTErrSuccess;
if ((err = dht11.read(pinDHT11, &temperature, &humidity, NULL)) != SimpleDHTErrSuccess)
{
Serial.print("Read DHT11 failed, err="); Serial.println(err);delay(1000);
return;
}
Serial.print("Lecture OK: ");
Serial.print(" TEMPERATURE "); Serial.print((int)temperature); Serial.print(" °C, ");
Serial.print(" HUMIDITE "); Serial.print((int)humidity); Serial.println(" %");
if ( temperature >21)
tone(buzzerPin, 800);
{
analogWrite(6, 255);
analogWrite(7, LOW);
}
else
{
analogWrite(6, LOW);
analogWrite(7, 255);
noTone (buzzerPin);
}
lcd.setCursor(2,0);
lcd.print("- G.F.E.P °" );
lcd.setCursor(0,1);
lcd.print((int)temperature);
lcd.print(" deg.");
lcd.setCursor(8,6);
lcd.print((int)humidity);
lcd.print("% HUMID");
delay(3000);
}

etc

Est il possible après le if, d'inclure un code disant +1 degré ou - 1degré sur 2 seconde = tone ?

if (abs (temperature - 21) < 2)

Premier partie...

ok, merci, je ressoude le buzzer et je rajoute les code

Mais si la température est aléatoire est-ce faisable ?

Merci je viens de teste et celà fonctionne, mais comment faire si je souhaite avoir le même résultat sur une plage de 0 à 40 degré ?
en négatif ou positif , car ici le programme est sur 21 degré fixe !
Merci à vous

Merci mais 21 est une valeur fixe , imaginons qu'il fasse 10 degré mon alarme ne se déclenchera pas si sur 3seconde la température chute de 1 degré ou augmente de 1 degré comprener vous ce que je veux dire ?