// -------------------------------------------------------------------------- //
#include <DHT.h>
#define DHT22_PIN 15
const int ledVerde = 13;
const int ledAmarillo = 12;
const int ledRojo = 14;
const int buzzer = 27;
DHT dht22(DHT22_PIN, DHT22);
// -------------------------------------------------------------------------- //
void setup() {
Serial.begin(115200);
dht22.begin();
pinMode(ledVerde, OUTPUT);
pinMode(ledAmarillo, OUTPUT);
pinMode(ledRojo, OUTPUT);
pinMode(buzzer, OUTPUT);
digitalWrite(ledVerde, LOW);
digitalWrite(ledAmarillo, LOW);
digitalWrite(ledRojo, LOW);
digitalWrite(buzzer, LOW);
}
// -------------------------------------------------------------------------- //
void loop() {
float temperatureC = dht22.readTemperature();
Serial.print("Temperature: ");
Serial.print(temperatureC);
Serial.println(" C");
if (temperatureC < 20) {
digitalWrite(ledVerde, HIGH);
digitalWrite(ledAmarillo, LOW);
digitalWrite(ledRojo, LOW);
digitalWrite(buzzer, LOW);
} else if (temperatureC >= 20 && temperatureC <= 30) {
digitalWrite(ledVerde, LOW);
digitalWrite(ledAmarillo, HIGH);
digitalWrite(ledRojo, LOW);
digitalWrite(buzzer, LOW);
} else if (temperatureC > 30 && temperatureC <= 40) {
digitalWrite(ledVerde, LOW);
digitalWrite(ledAmarillo, LOW);
digitalWrite(ledRojo, HIGH);
digitalWrite(buzzer, HIGH);
} else if (temperatureC > 40) {
for (int i = 0; i < 5; i++) { // Parpadea 5 veces
digitalWrite(ledRojo, HIGH);
digitalWrite(ledAmarillo, HIGH);
digitalWrite(ledVerde, HIGH);
digitalWrite(buzzer, HIGH);
delay(500);
digitalWrite(ledRojo, LOW);
digitalWrite(ledVerde, LOW);
digitalWrite(ledAmarillo, LOW);
digitalWrite(buzzer, LOW);
delay(500);
}
}
delay(10); // this speeds up the simulation
}
// -------------------------------------------------------------------------- //