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’.

Sensor y OLED
// 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).

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 *