Estación COVID-19

Imagen que contiene computadora

Descripción generada automáticamente

INTEGRANTES

Jesús Emilio Blanquer Carot

Aioub EL Ismaili Bouyeddou

Sergio Martín Hernández

INTRODUCCIÓN AL PROYECTO

El proyecto realizado, se basa en la construcción de una ‘Estación COVID-19’.  El funcionamiento de esta “Estación COVID-19’” consiste en leer la temperatura corporal de una persona a través de la temperatura de la palma de la mano, medir la concentración de CO2 en un habitáculo cerrado y la temperatura ambiental de este. 

Debido a la emergencia sanitaria actual, hemos decidido realizar este proyecto con la finalidad de mejorar la seguridad en sitios cerrados. 

PRESUPUESTO

Nombre Unidades Precio 
Placa de Arduino uno – 
Cables  4€ 
Portapilas – 
Pilas de 1,5V – 
Leds – 
Sensor de temperatura  mlx 90614 16,99 € 
Sensor de gas mq 135 8 € 
Sensor de movimiento PIR AM312 8,79€ 
Placas de conexiones – 
Potenciómetro 1K 0,5€ 
Pantalla lcd 16×2 – 
Resistencias de 1KΩ – 
Zumbador – 
Interruptor – 
Planchas de madera 8 € 
Plancha de metacrilato 2,99 € 
Pintura 4,90 € 
Spray 2,99 € 
Estaño – 
Lija – 
TOTAL  57,16 €

REPRESENTACION DEL CIRCUITO

*Algunos de los componentes representados en la imagen, pueden diferir en cuanto a modelo, pues se ha utilizado los elementos que proporciona Tinkercad

CÓDIGO FUENTE

// LIBRERIAS
#include <LiquidCrystal.h>
#include <Adafruit_MLX90614.h>

//DEFINICION DE VARIABLES
const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2;   // constantes para los pines de la pantalla lcd
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);                    // le damos los valores correspondientes a los pines de la pantalla

Adafruit_MLX90614 sensorMlx = Adafruit_MLX90614();   // creamos la variable sensorMlx para obtener los valores del sensor de temperatura
float valorTem = 0;                                  // Variable que almacena el valor del sensor de temperatura
float valorTem2 = 0;                                 // Variable que almacena el valor del sensor de temperatura (segunda medicion)

int sensorCo2 = 0;      // pin analogico A0
int valorCo2 = 0;       // Variable que almacena el valor del sensor de Co2

int ledRojo = 8;        // pin 8 digital
int ledAzul = 13;       // pin 13 digital
int ledVerde = 7;       // pin 7 digital
int zumbador = 9;       // pin 9 digital

int sensorPir = 10;     // pin 10 digital
int valorPir = 0;       // Variable que almacena el valor del sensor de movimiento


void setup() {
  lcd.begin(16, 2);   // Configuracion filas y columnas del pantalla lcd
  sensorMlx.begin();  // Inicializacion y puesta en marcha del sensor de temperatura
  
  //PINES DE SALIDA
  pinMode(ledRojo, OUTPUT);
  pinMode(ledAzul, OUTPUT);
  pinMode(ledVerde, OUTPUT);
  pinMode(zumbador, OUTPUT);
  
  //PINES DE ENTRADA
  pinMode(sensorPir, INPUT);  
}

void loop(){
  valorCo2 = analogRead(sensorCo2);   // lectura del sensor de Co2
  valorCo2 = valorCo2 + 250.0;        // AJUSTE: sumamos 250 unidades para contolar el desfase de nuestro sensor de gas
  valorPir = digitalRead(sensorPir);  // lectura del sensor de movimiento

  lcd.setCursor(0,0);  // Configuracion de columna y linea
  
  if (valorPir == HIGH){ // SE DETECTA MOVIMIENTO
    digitalWrite(ledAzul,HIGH);
    lcd.print("Temp: ");
    valorTem = sensorMlx.readObjectTempC()+8.7; // LECTURA sensor de temperatur y AJUSTE: sumamos 8.7 unidades para controlar el desfase de nuestro sensor de temperatura
    lcd.print(valorTem);
    lcd.print(" C");
    delay(1000);
    if (valorTem>37.7){ //CASO DE MEDIR UNA TEMPERATURA ANOMALA
        lcd.clear();
        lcd.setCursor(0,0);
        lcd.print("Temperatura alta ");
        delay(1000);
        lcd.clear();
        lcd.setCursor(0,0);
        lcd.print("Vuelva a meter");
        lcd.setCursor(0,1);
        lcd.print("la mano");
        delay(5000);
        lcd.clear();
        if (valorPir == HIGH){ //SEGUNDA MEDICION
          digitalWrite(ledAzul,HIGH);
          lcd.setCursor(0,0);
          lcd.print("Temp: ");
          valorTem2 = sensorMlx.readObjectTempC()+8.7;
          lcd.print(valorTem2);
          lcd.print(" C"); 
          if (valorTem2 > 37.7){ // CASO SEGUIR MIDIENDO TEMPERATURA ANOMALA
            tone(zumbador,2000,1000);
            lcd.clear();
            lcd.setCursor(0,0);
            lcd.print("ACCESO DENEGADO");
            delay(1500);
          }else{
            lcd.setCursor(0,0);
            lcd.print("ACCESO PERMITIDO");
            delay(1300);
         }
       }
   }
  }else{ // CASO DETECTAR NINGUN MOVIMIENTO
    digitalWrite(ledAzul,LOW);
    lcd.print("T.Ambt.: ");
    lcd.print(sensorMlx.readAmbientTempC());
    lcd.print(" C");
  }
  
  lcd.setCursor(0,1);
  
  if (valorCo2<700){
    digitalWrite(ledVerde,HIGH);
    lcd.print("CO2: ");
    lcd.print(valorCo2);
    lcd.print(" ppm (L)");
  }else if((valorCo2>=700) and (valorCo2<800)){
    digitalWrite(ledRojo,HIGH);
    lcd.print("CO2: ");
    lcd.print(valorCo2);
    lcd.print(" ppm (M)");
  }else{
    digitalWrite(ledRojo,HIGH);
    tone(zumbador,2000,1000);
    lcd.print("CO2: ");
    lcd.print(valorCo2);
    lcd.print(" ppm (H)");
    delay(1000);
    lcd.clear();
    lcd.setCursor(0,0);
    lcd.print("ABANDONEN LA");
    lcd.setCursor(0,1);
    lcd.print("SALA!!!");
  }
    
  delay(3000);
  lcd.clear();
  digitalWrite(ledRojo,LOW);
  digitalWrite(ledVerde,LOW);
  digitalWrite(zumbador,LOW); 
}

MEMORIA

VIDEO

POSIBLES MEJORAS

Una vez terminado el proyecto, consideramos que el mismo podría ampliarse:

  • Incluyendo luces led en el interior de la caja que permitan ver el interior con mayor nitidez a través del plástico transparente.
  • Conectándolo por Bluetooth a un dispositivo móvil con el que poder consultar los valores de los sensores.
  • Utilizando una pantalla OLED que permita hacer una mejor representación de texto.

También te podría gustar...

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *