#include <OneWire.h>
#include <DallasTemperature.h>
// Pin de datos del sensor DS18B20
const int oneWireBus = A0; // Cambia el número de pin según tu configuración
// Crea un objeto OneWire para comunicarte con el sensor
OneWire oneWire(oneWireBus);
// Crea un objeto DallasTemperature para gestionar el sensor
DallasTemperature sensors(&oneWire);
// Define los pines para los LEDs
const int ledPin1 = 7; // Cambia a tu configuración
const int ledPin2 = 10; // Cambia a tu configuración
const int ledPin3 = 13; // Cambia a tu configuración
void setup() {
// Inicializa la comunicación con el sensor DS18B20
sensors.begin();
// Inicializa los pines de los LEDs como salidas
pinMode(ledPin1, OUTPUT);
pinMode(ledPin2, OUTPUT);
pinMode(ledPin3, OUTPUT);
// Configura la velocidad de transmisión serial a 9600 baudios
Serial.begin(9600);
}
void loop() {
// Realiza una lectura de temperatura
sensors.requestTemperatures();
float temperatureC = sensors.getTempCByIndex(0);
// Imprime la temperatura en el Monitor Serial
Serial.print("Temperatura: ");
Serial.print(temperatureC);
Serial.println(" °C");
// Comprueba si la temperatura supera los 30 grados Celsius
if (temperatureC > 35.0) {
// Si la temperatura es mayor que 30 grados, enciende todos los LEDs
digitalWrite(ledPin1, HIGH);
digitalWrite(ledPin2, HIGH);
digitalWrite(ledPin3, HIGH);
} else if (temperatureC >= 30.0 && temperatureC < 35.0 ) {
// Si la temperatura es menor o igual a 30 grados, apaga todos los LEDs
digitalWrite(ledPin1, HIGH);
digitalWrite(ledPin2, HIGH);
digitalWrite(ledPin3, LOW);
} else if (temperatureC >= 25.0 && temperatureC < 30.0 ) {
digitalWrite(ledPin1, HIGH);
digitalWrite(ledPin2, LOW);
digitalWrite(ledPin3, LOW);
} else {
digitalWrite(ledPin1, LOW);
digitalWrite(ledPin2, LOW);
digitalWrite(ledPin3, LOW);
}
// Espera un momento antes de tomar otra lectura
delay(1000); // Espera 1 segundo
}