Arduino UNO: ponerle alarma de temperatura con un Buzzer

Hola,
Esta es mi primera publicacion en el foro y tambien son mis primeros pasos con ARDUINO.
Estoy tratando de programar un sistema para un acuario con las siguientes funciones:

*Medir caudal
*Medir temperatura del agua
*Mostrar todo en un display
*Mostrar la fecha en el display

Materiales:

1 Arduino UNO
1 LCD 2004
1 RTA DS1307
1 Caudalimetro yf-s201
1 sensor de temp. Ds18b20
Intension de utilizar un Buzzer Activo

Hasta el momento logre todo esto paseando por muchos foros, pero me gustaria agregarle un detalle mas, quisiera aprovechar un Buzzer activo que tengo y ponerle una alarma para temperaturas por debajo o por arriba de un rango que yo programe. No parece dificil pero ya me estoy haciendo un lio terrible.

les dejo mi codigo aca abajo:

// Importar librerías
  #include <OneWire.h>
  #include <DallasTemperature.h>
  #include <Wire.h> // Librería comunicación I2C
  #include <LiquidCrystal_I2C.h> // Librería LCD I2C 
  #include "RTClib.h" // Para la hora
  
  
  #define ONE_WIRE_BUS 7
  OneWire oneWire(ONE_WIRE_BUS);
  DallasTemperature sensors(&oneWire);
  float tempC = 0;
  RTC_DS1307 rtc; //Para la hora
  
  // Declaración del objeto para el LCD
  // Poner la dirección del LCD a 0x20 para display 20x4 (A0=0, A1=0, A2=0)
  // Terminales de conexión del LCD
  //                    addr, en,rw,rs,d4,d5,d6,d7,bl,blpol
  LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);
    
  const int sensor = 2; // Pin digital para el sensor de flujo YF-S201
  int litros_Hora; // Variable que almacena el caudal (L/hora)
  volatile int pulsos = 0; // Variable que almacena el número de pulsos
  unsigned long tiempoAnterior = 0; // Variable para calcular el tiempo transcurrido 
  unsigned long pulsos_Acumulados = 0; // Variable que almacena el número de pulsos acumulados
  float litros; // // Variable que almacena el número de litros acumulados
  
  // Rutina de servicio de la interrupción (ISR)
  void flujo() 
  {
    pulsos++; // Incrementa en una unidad el número de pulsos
  }
   
  void setup()
  {
    pinMode(sensor, INPUT_PULLUP); // Pin digital como entrada con conexión PULL-UP interna
    lcd.begin(20,4); // Inicializo el LCD 2004
    interrupts(); // Habilito las interrupciones
    // Interrupción INT0, llama a la ISR llamada "flujo" en cada flanco de subida en el pin digital 2
    attachInterrupt(digitalPinToInterrupt(sensor), flujo, RISING);  
    tiempoAnterior = millis(); // Guardo el tiempo que tarda el ejecutarse el setup
  }
   
  void loop ()
  {
         
    // Cada segundo calculamos e imprimimos el caudal y el número de litros consumidos
    if(millis() - tiempoAnterior > 1000)
    {
      // Realizo los cálculos
      tiempoAnterior = millis(); // Actualizo el nuevo tiempo
      pulsos_Acumulados += pulsos; // Número de pulsos acumulados
      litros_Hora = (pulsos * 60 / 7.11); // Q = frecuencia * 60/ 7.5 (L/Hora)
      litros = pulsos_Acumulados*1.0/450; // Cada 450 pulsos son un litro
      pulsos = 0; // Pongo nuevamente el número de pulsos a cero
      
      // Llamada a la función que muestra los resultados en el LCD 2004 
      LCD_2004();       
    }
    sensors.requestTemperatures();
    tempC = sensors.getTempCByIndex(0);
    delay(1000);
  }
  
  // Función que muestra los resultados en el LCD 2004 
  void LCD_2004()
  {
    DateTime now = rtc.now(); //para la hora
    // Imprimo la cabecera del sistema
    lcd.clear();
    lcd.setCursor(0,0);

    //mostramos fecha y hora
    
    lcd.print(now.day(), DEC);
    lcd.print('/');
    lcd.print(now.month(), DEC);
    lcd.print('/');
    lcd.print(now.year(), DEC);
    lcd.print("  ");
    lcd.print(now.hour(), DEC);
    lcd.print(':');
    lcd.print(now.minute(), DEC);
    lcd.print(':');
    lcd.print(now.second(), DEC);
    
    //fin fecha y hora
    
    lcd.setCursor(0,1);     
    //Temperatura
    lcd.print("-> Temp: ");
    lcd.print(tempC);
    lcd.print(" *C");  
    // Presento los valores a través del LCD 2004
    lcd.setCursor(0,2);
    // Imprimo el caudal en L/hora
    lcd.print("-> ");
    lcd.print(litros_Hora, DEC); 
    lcd.print(" L/Hora");
    lcd.setCursor(0,3);
    // Imprimo el número de litros acumulados
    lcd.print("-> ");
    lcd.print(litros);    
    lcd.print(" Litros");  
  }

Hola y bienvenido al foro.

Te invito a que te leas las NORMAS para que aprendas a postear correctamente código, imagenes, errores, enlaces, etc.

Así que, por favor, edita tu post inicial para que el código se vea correctamente.

En cuanto a tu problema me sorprende los bastante limpio que está el código y lo único que me sobra es un "delay(1000);" que no sé su significado, por lo demás no veo pegas.

¿Qué tipo de buzzer? ¿por frecuencia o por tensión?

Si es por frecuencia debes usar la función tone, si es solo por tensión habría que ver la tensión con que lo hace y usar digitalWrite.

Hola, muchisimas gracias, creo que ahi lo edite bien al post.

con respecto al Buzzer es por tension, lo del digitalwrite esta claro pero mi problema es que no se como hacer el codigo para que compare el valor de referencia MAX y MIN y disparar la alarma

saludos

if ( tempC < MIN || tempC > MAX ) 
  digitalWrite(pinBuzzer, HIGH);
else
  digitalWrite(pinBuzzer, LOW);

en español:

Si tempC es menor que MIN o tempC es mayor que MAX enciendo el buzzer sino lo apago.

Te paso un enlace a un tutorial sobre el uso de if-else y los operadores de comparación: programarfacil.com