Welcome to Hackster!
Hackster is a community dedicated to learning hardware, from beginner to pro. Join us, it's free!
carlosvolt
Published © LGPL

Non-contact high temperature alarm using TS01 sensor

The TS01 non-contact sensor high temperature alarm is a system designed to detect and alert about dangerous temperature conditions

IntermediateProtip90
Non-contact high temperature alarm using TS01 sensor

Things used in this project

Hardware components

Arduino Nano
×1

Story

Read more

Code

Source code

C/C++
Source code
#include <U8g2lib.h>
U8G2_SH1106_128X64_NONAME_F_HW_I2C u8g2(U8G2_R0, /* reset=*/ U8X8_PIN_NONE);
float i;
int buzzer_pin4 = 4;//Pin 4 para el buzzer
int alarma = 50;//Seteo de alarma por alta temperatura
void setup() {
Serial.begin(9600);//Velocidad del monitor serie
 pinMode(buzzer_pin4, OUTPUT);//Pin 4 como salida
 u8g2.begin(); //Inicializamos el display
}
void loop() {
  // Leemos el promedio de la entrada analógica 3 
  unsigned int pinA3=pinA3_promedio(200);//Llamamos a la función para promediar 200 datos del pin analógico 3
 i=((double)pinA3*450/614.4-70);//Calculo para convertir los datos a grados centígrados
  Serial.print(i);//Imprimimos esos datos en el terminal serial
  Serial.println("\u2103");//Imprimimos el simbolo de grados
  delay(100);
//Comprobamos si la temperatura es mayor o igual a 50 grados haemos sonar el buzzer
  if(i >=alarma){
     digitalWrite(buzzer_pin4, HIGH);
     delay(40);
     digitalWrite(buzzer_pin4, LOW);
     delay(20);
    }
oled();//Función para mostrar los datos obtenidos en el display  
}
//Función para promediar los valares obtenidos en el pin analógico A3
 int pinA3_promedio(double n)
{
  long sumatoria=0;
  for(int i=0;i<n;i++)
  {
    sumatoria=sumatoria+analogRead(A3);
  }  
  return(sumatoria/n);
}
//Función para mostrar datos en el display oled
void oled(){
  u8g2.clearBuffer(); // Borra el contenido anterior del buffer de pantalla
  u8g2.setFont(u8g2_font_ncenB10_tr); // Selecciona una fuente grande
  u8g2.setCursor(0, 20); // Establece la posición de la posición del texto
  u8g2.print("Temp: ");//Se muestra Temp: en el display
  u8g2.print(i);//Se muestra el valor de temperatura obtenido
  u8g2.print("^C");//Se muestra ^C en el display
  u8g2.setCursor(0, 40); // Establece la posición de la posición del texto
  u8g2.print("Alar: ");//Se muestra Alart: en el display
  u8g2.print(alarma);//Se muestra el valor al cual el buzzer va a empezar a sonar
  u8g2.print("^C");//Se muestra ^C en el display
  //Si la tempetura es mayor o igual a 50 grados se muestra en el display Alerta!!!
  if(i >= alarma){
  u8g2.setCursor(0, 60); // Establece la posición de la posición del texto 
  u8g2.print("Alerta!!!");//Se muestra Alerta!!! en el display   
  }
  u8g2.sendBuffer(); // Envia el contenido del buffer a la pantalla   
  }

Credits

carlosvolt
34 projects • 3 followers
Contact

Comments

Please log in or sign up to comment.