CoroFence Detector Térmico: Sensor PIR Avançado & Integração IoT
Componentes e Materiais
| Componente | Quantidade |
|---|---|
| Panasonic GridEye (AMG8833/AMG885x) | 1 |
| Sensor PIR (alcance ~7 m) | 1 |
| Buzzer | 1 |
| LED RGB | 1 |
| Arduino Nano 33 IoT | 1 |
| Bateria Recarregável 3.7V (LiPo) | 1 |
| Caixa Plástica (Junction Box) | 1 |
Aplicativos e Serviços Online
- Arduino IDE
- DasData Maker Data Storage Channel
Sobre o Projeto
Crise Global de Pandemia
A OMS recomenda lavagem de mãos, etiqueta respiratória, cozinhar bem carnes/ovos, evitar contato próximo com sintomáticos. Em aeroportos, scanners térmicos detectam possíveis infectados.
Detector Térmico Caseiro
Para continuar trabalhando remotamente com segurança, construa um detector térmico implantável na entrada de casa/lab/escritório para proteger sua zona segura.
Sensores de Entrada
Grid Eye (Panasonic)
Diferente de sensores térmicos pontuais, o Grid-EYE (baseado em tecnologia MEMS da Panasonic) mede a temperatura de uma área inteira sem contato – um array termopilha de 64 pixels (8x8) com lente de silício (60° FoV). Interface I²C, 1 ou 10 frames/s, função de interrupção.
- Dimensões: 11.6 x 4.3 x 8.0 mm
- Tensão: 3.3V ou 5V
- Faixa: -20°C a 100°C
- Ideal para detecção humana a 1.5 m, alvo até 5-7 m.
PIR
Gatilho de movimento: detecta pessoa em movimento até ~10 m (5-12 m real). Baixo consumo, lente ampla, fácil interface.
Saídas Visual e Sonora
- LED RGB: Feedback instantâneo de temperatura (cores programadas).
- Buzzer: Alarme sonoro quando temperatura > 37°C.
Testes Finais
Temperatura normal + presença detectada → LED verde.
Mapeamento de cores (exemplo):
if (tempC < 16) setColor(0, 0, 255); // azul
else if (tempC < 20) setColor(0, 255, 255); // aqua
else if (tempC < 24) setColor(0, 255, 0); // verde
else if (tempC < 28) setColor(255, 255, 0); // amarelo
else if (tempC < 37) setColor(255, 20, 20); // magenta
else if (tempC < 38) setColor(255, 0, 0); // vermelho + buzzer
Teste do alarme: use ferro de passar a vapor (descoberto acidentalmente).
Integração IoT
Visualize temperatura em interface NodeJS via serial. Plano futuro: integração com plataforma DasData para modelagem.
Stream ao vivo: dasdata.co/camera
Código: coronafence
#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() {
char receiveVal;
if (Serial.available() > 0) {
receiveVal = Serial.read();
ledState = (receiveVal == '1') ? 1 : 0;
}
val = digitalRead(inputPin);
if (val == HIGH) {
if (pirState == LOW) {
meetime = millis();
Serial.println("Movimento detectado!");
pirState = HIGH;
getHeatmap();
// Mapeamento de cores (similar ao acima)
if (tempC < 16) setColor(0, 0, 255);
else if (tempC < 16) setColor(80, 0, 80); // duplicado no original
else if (tempC < 20) setColor(0, 255, 255);
else if (tempC < 24) setColor(0, 255, 0);
else if (tempC < 28) setColor(255, 255, 0);
else if (tempC < 37) setColor(255, 20, 20);
Serial.println(heatData);
delay(1500);
}
} else {
if (pirState == HIGH) {
noTone(buzzPin);
Serial.println("Movimento finalizado!");
setColor(0, 0, 0);
meetime = 0;
pirState = LOW;
}
}
}
void getHeatmap() {
heatData = "";
float previousVal = 0;
for (unsigned char i = 0; i < 64; i++) {
if (previousVal > 37) {
Serial.println("Temperatura alta!");
setColor(255, 0, 0);
tone(buzzPin, 1000);
}
tempC = grideye.getPixelTemperature(i);
heatData += String(tempC) + ",";
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);
}
Código também disponível para Arduino IDE, Visual Studio 2019, NodeJS: GitHub
Esquemático
Imagem da ligação (GridEye I²C, PIR, LED RGB, Buzzer, Arduino Nano 33 IoT, bateria).
Processo de manufatura
- Cartão de Visita PCB 4×4 Jogo da Velha Personalizado – Guia de Design, Montagem e Código
- Sistema Multi-Posição de Sensores de Temperatura para Integração em Casa Inteligente
- Controlador DIY para Ferro de Solda 862D+ — Precisão e Confiabilidade
- MotionSense: Detecção Inteligente de Intrusão com Arduino e ESP8266
- Prevenção de Incêndio em Impressoras 3D: Sistema de Segurança com Sensor Inteligente
- Crie um Medidor IoT Web com Arduino, Yaler e IFTTT
- Levitação Magnética Repulsiva com Arduino: Circuito Simples e Guia DIY
- Robô Garra Controlado Remotamente para Manipulação de Precisão
- Registrador de Dados de Balão Meteorológico Arduino de Alto Desempenho
- ArduFarmBot Parte 2: Construindo uma Estação de Controle IoT Remota