Estación COVID-19

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 | 1 | – |
| Cables | 4€ | |
| Portapilas | 1 | – |
| Pilas de 1,5V | 4 | – |
| Leds | 3 | – |
| Sensor de temperatura mlx 90614 | 1 | 16,99 € |
| Sensor de gas mq 135 | 2 | 8 € |
| Sensor de movimiento PIR AM312 | 3 | 8,79€ |
| Placas de conexiones | 2 | – |
| Potenciómetro 1K | 1 | 0,5€ |
| Pantalla lcd 16×2 | 1 | – |
| Resistencias de 1KΩ | 3 | – |
| Zumbador | 1 | – |
| Interruptor | 1 | – |
| Planchas de madera | 2 | 8 € |
| Plancha de metacrilato | 1 | 2,99 € |
| Pintura | 1 | 4,90 € |
| Spray | 1 | 2,99 € |
| Estaño | 1 | – |
| Lija | 1 | – |
| TOTAL | 57,16 € |
REPRESENTACION DEL CIRCUITO

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.