Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Manufacturing Technology >> Proceso de manufactura

CoroFence: Detector Térmico Avanzado con Sensor PIR e Integración IoT

Componentes y suministros

ComponenteCantidad
Panasonic GridEye (AMG8833) - array térmico 8x81
Sensor PIR (alcance ~7 m)1
Buzzer1
LED RGB1
Arduino Nano 33 IoT1
Batería LiPo recargable 3.7V1
Caja estanca (junction box)1

Aplicaciones y servicios online

Sobre el proyecto

Contexto: Crisis pandémica global

La OMS recomienda lavado de manos, mascarillas, distancia social. En aeropuertos se usan escáneres térmicos para detectar posibles infectados.

Detector térmico casero

Idea: construir una cámara térmica desplegable fuera de casa/laboratorio/oficina para monitorizar temperatura de quienes se acercan, manteniéndote en zona segura.

Sensores de entrada

GridEye (Panasonic AMG8833)

Array termopila 8x8 (64 píxeles) sin contacto. Mide temperatura de área completa con lente de silicio 60°. Interfaz I²C, 1 o 10 fps. Rango -20°C a 100°C. Dimensiones 11.6×4.3×8.0 mm. Ideal para detección humana a 1.5-5 m.

Sensor PIR

Detecta movimiento humano ~10 m (rango real 5-12 m). Activa la cámara térmica solo cuando hay presencia, ahorrando energía.

Salidas visuales y sonoras

Pruebas finales

Temperatura normal + presencia → luz verde.

Test de alarma: usar plancha de vapor para simular fiebre → luz roja + buzzer.

Integración IoT

Datos enviados a plataforma DasData para visualización en tiempo real y modelado futuro. Ver stream en dasdata.co/camera/

Código principal (coronafence.ino)

#include <Wire.h>
#include <SparkFun_GridEYE_Arduino_Library.h>

GridEYE grideye;
String heatData;
int ledState;
unsigned long meetime;
uint16_t seconds = 3142;

int bluePin = 8, greenPin = 9, redPin = 10, buzzPin = 11;
int inputPin = 12;  // PIR
int pirState = LOW, val = 0;
float tempC;

void setup() {
  pinMode(redPin, OUTPUT);
  pinMode(greenPin, OUTPUT);
  pinMode(bluePin, OUTPUT);
  pinMode(buzzPin, OUTPUT);
  pinMode(inputPin, INPUT);
  
  Wire.begin();
  grideye.begin();
  Serial.begin(115200);
}

void loop() {
  // Control remoto opcional por serie
  if (Serial.available() > 0) {
    char c = Serial.read();
    ledState = (c == '1') ? 1 : 0;
  }
  
  val = digitalRead(inputPin);
  
  if (val == HIGH) {  // Movimiento detectado
    if (pirState == LOW) {
      meetime = millis();
      Serial.println("Movimiento detectado!");
      pirState = HIGH;
      getHeatmap();
      
      // LED RGB según temperatura máxima
      if (tempC < 16) setColor(0, 0, 255);        // Azul
      else if (tempC < 20) setColor(80, 0, 80);   // Cian
      else if (tempC < 24) setColor(0, 255, 255); // Agua
      else if (tempC < 28) setColor(0, 255, 0);   // Verde
      else if (tempC < 37) setColor(255, 255, 0); // Amarillo
      else if (tempC < 38) setColor(255, 20, 20); // Magenta
      else setColor(255, 0, 0);                   // Rojo + alarma
      
      Serial.println(heatData);
      delay(1500);
    }
  } else {  // Sin movimiento
    if (pirState == HIGH) {
      noTone(buzzPin);
      Serial.println("Movimiento finalizado!");
      setColor(0, 0, 0);
      meetime = 0;
      pirState = LOW;
    }
  }
}

void getHeatmap() {
  heatData = "";
  float previousVal = 0;
  for (unsigned char i = 0; i < 64; i++) {
    tempC = grideye.getPixelTemperature(i);
    heatData += String(tempC) + ",";
    if (previousVal > 37) {
      Serial.println("¡Temperatura alta!");
      setColor(255, 0, 0);
      tone(buzzPin, 1000);
    }
    previousVal = tempC;
  }
  Serial.println();
}

void setColor(int red, int green, int blue) {
  #ifdef COMMON_ANODE
    red = 255 - red; green = 255 - green; blue = 255 - blue;
  #endif
  analogWrite(redPin, red);
  analogWrite(greenPin, green);
  analogWrite(bluePin, blue);
}

Repositorio

Código para Arduino IDE, Visual Studio 2019, NodeJS: github.com/dasdata/coronafence

Esquemático

Ver imagen adjunta: conexiones I²C (A4/A5), PIR en D12, LED RGB en D8-D10 (PWM), buzzer en D11, alimentación LiPo a 3.3V/5V según placa.

Proceso de manufactura

  1. Tarjeta de visita PCB 4×4 Tic Tac Toe personalizada – Guía de diseño, construcción y código
  2. Sistema de Sensor de Temperatura Multiposición para Integración en Hogar Inteligente
  3. Controlador DIY para soldador 862D+ — Precisión y fiabilidad
  4. MotionSense: Detección inteligente de intrusos con Arduino y ESP8266
  5. Prevención de Incendios en Impresoras 3D: Sistema de Seguridad con Sensor Inteligente
  6. Crear un medidor IoT web con Arduino, Yaler e IFTTT
  7. Levitación magnética repulsiva con Arduino: Circuito simple y guía DIY
  8. Robot pinza controlado remotamente para manipulación de precisión
  9. Registrador de Datos de Alto Rendimiento para Globo Meteorológico con Arduino
  10. ArduFarmBot Parte 2: Estación de Control IoT Remota para Cultivos
  11. Reloj flip Arduino con matriz LED 8×8: proyecto DIY de reloj en tiempo real