#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
}
$abcdeabcde151015202530354045505560fghijfghij