CovDet
CovDet
La idea principal del proyecto es el desarrollo de un sistema de detección de posibles positivos de Covid-19 a través de un sensor que fuese capaz de medir la temperatura a distancia. El significado de su título, CovDet, hace referencia a las palabras en inglés de ‘Covid Detector’.
// Librerias
#include <MQUnifiedsensor.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#include <Wire.h>
#include <Adafruit_MLX90614.h>
#define SCREEN_WIDTH 128 // Anchura de la pantalla OLED, en pixeles
#define SCREEN_HEIGHT 64 // Altura de la pantalla OLED, en pixeles
#define OLED_RESET -1 // Pin de reset
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET); // Declaracion de pantalla OLED
Adafruit_MLX90614 mlx = Adafruit_MLX90614();
// pines LED
const int ledVerde = 13;
const int ledAmarillo = 12;
const int ledRojo = 8;
const int ledAzul = 7; // Led azul simulando el ventilador
// Float para recoger el valor del sensor MLX
float valorTemp = 0;
// Entero para recoger el valor del sensor de Co2
int airquality = 0;
// Inicializacion de variables y pines
void setup() {
pinMode(ledVerde, OUTPUT);
pinMode(ledAmarillo, OUTPUT);
pinMode(ledRojo, OUTPUT);
pinMode(ledAzul, OUTPUT);
mlx.begin();
display.begin(SSD1306_SWITCHCAPVCC, 0x3C); // Direccion de pantalla OLED
display.clearDisplay();
display.display();
}
// Bucle principal del sistema
void loop() {
display.clearDisplay();
// Comenzamos a escribir por la pantalla OLED
display.setTextSize(1);
display.setTextColor(WHITE);
display.setCursor(0,4);
display.println("Ambiente");
display.setTextSize(2);
display.setCursor(50,0);
display.println(mlx.readAmbientTempC(),1);
display.setCursor(100,0);
display.print((char)247);
display.println("C");
display.setTextSize(1);
display.setTextColor(WHITE);
display.setCursor(0,20);
display.println("Objetivo");
display.setTextSize(2);
display.setCursor(50,17);
display.println(mlx.readObjectTempC(),1);
display.setCursor(100,17);
display.print((char)247);
display.println("C");
// Escribir sensor Co2
display.setTextSize(1);
display.setTextColor(WHITE);
display.setCursor(0,35);
display.println("CO2: ");
// Medimos la calidad del aire
airquality = analogRead(A0);
display.setTextSize(2);
display.setCursor(40,35);
display.println(airquality);
display.setCursor(80,35);
display.print("*PPM");
// if led
// Leemos la temperatura de objeto
valorTemp = mlx.readObjectTempC();
// Encendeer o apagar LEDs dependiendo del valor leido
if(valorTemp <= 36.5){
digitalWrite(ledVerde, HIGH);
digitalWrite(ledAmarillo, LOW);
digitalWrite(ledRojo, LOW);
}
if(valorTemp > 36.5 && valorTemp <= 37.2){
digitalWrite(ledVerde, LOW);
digitalWrite(ledAmarillo, HIGH);
digitalWrite(ledRojo, LOW);
}
if(valorTemp > 37.2){
digitalWrite(ledVerde, LOW);
digitalWrite(ledAmarillo, LOW);
digitalWrite(ledRojo, HIGH);
}
// Encender led azul al alcanzar variables de ppm en el sensor Co2
if(airquality > 200){
digitalWrite(ledAzul, HIGH);
}
if(airquality < 200){
digitalWrite(ledAzul, LOW);
}
// Para que los cambios hagan efecto en la pantalla OLED
display.display();
delay(1000);
}
Componentes:
- Placa de Arduino.
- Protoplaca para el circuito.
- Sensor a distancia de temperatura.
- Sensor de temperatura general.
- Sensor de CO2.
- Ventilador (simulado por un LED ya que no nos llegó por problemas de entrega).
- LEDs, como mínimo 3 (rojo, amarillo y verde).