Termostato!

Desculpem lá... mas não sabem ler...

marcosxp:
Bom dia, quando disse instável seria entre a variação de temperatura se ela esta definida entre armar em 30 Graus e a temperatura fica alternando entre 29,99 e 30 ele fica ligando e desligando o led.

Isto é assim porque o código está feito desta forma:

if (temperatura >= 30) digitalWrite(led, HIGH);
else digitalWrite(led, LOW);

Isto está errado e não deve nunca ser feito assim. Até controladores PID têm histerese.
Fazer uma média das temperaturas não resolve o problema. Pode minimizá-lo, mas não o resolve pois a temperatura pode passar de 29.99 para 30.0 e de volta abaixo de 30 com qualquer que seja o sensor.

Para resolver isto implementa-se uma histerese desta forma:

#define HISTERESE    1.0  // 1 grau de histerese. 
#define SETPOINT    30.0 //setpoint de 30 graus. 

if (temperatura <= SETPOINT) digitalWrite(led, HIGH);

if (temperatura < (SETPOINT + HISTERESE)) digitalWrite(led, LOW);

Depois dependendo da estabilidade do sensor poder-se-á ajustar a histerese para um valor menor ou maior.