CoroFence : Détecteur Thermique Avancé PIR + Capteur Grid-EYE & IoT
Composants et fournitures
| Composant | Quantité |
|---|---|
| Panasonic Grid-EYE (AMG8833) | 1 |
| Capteur PIR (portée 7 m) | 1 |
| Buzzer | 1 |
| LED RGB | 1 |
| Arduino Nano 33 IoT | 1 |
| Batterie LiPo 3,7 V rechargeable | 1 |
| Boîtier plastique (boîte de dérivation) | 1 |
Applications et services en ligne
- Arduino IDE
- DasData Maker Data Storage Channel
À propos du projet
Contexte : Crise Pandémique Mondiale
L'OMS recommande : lavage des mains, port du masque, distanciation. Dans les aéroports, des caméras thermiques détectent les voyageurs fébriles.
Détecteur Thermique Maison
Pour travailler en sécurité depuis chez soi, voici un détecteur thermique déployable à l'entrée de votre domicile, bureau, labo... Vous restez dans votre zone sûre.
Capteurs d'entrée
Grid-EYE (Panasonic AMG8833)
Contrairement aux capteurs thermiques ponctuels, le Grid-EYE (technologie MEMS) mesure la température sur une zone complète sans contact : matrice 8×8 = 64 pixels, angle de vue 60°, plage -20°C à 100°C, interface I²C, 1 ou 10 images/seconde. Idéal pour détecter une présence humaine à 1,5-5 m.
Capteur PIR
Détecte le mouvement jusqu'à ~10 m (5-12 m réel). Déclenche l'activation de la caméra thermique seulement en cas de présence, économisant l'énergie.
Montage
Assemblage des capteurs dans le boîtier :
Sorties visuelles et sonores
- LED RGB : retour immédiat de température par code couleur.
- Buzzer : alarme sonore si température > 37°C.
Tests finaux
Température normale + présence détectée → LED verte
Échelle de couleurs :
if (tempC < 16) setColor(0, 0, 255); // Bleu
else if (tempC < 15) setColor(80, 0, 80); // Cyan
else if (tempC < 30) setColor(0, 255, 255); // Azur
else if (tempC < 36) setColor(0, 255, 0); // Vert
else if (tempC < 38) setColor(255, 255, 0); // Jaune
else if (tempC < 39) setColor(255, 20, 20); // Magenta
else setColor(255, 0, 0); // Rouge + buzzer
Test de l'alarme avec un fer à repasser (vapeur) :
Interface de visualisation
Visualisation temps réel via Node.js + liaison série. Prochaine étape : intégration plateforme DasData pour modélisation.
Suivi en direct : https://dasdata.co/camera/
Vivez longtemps et prospérez, où que vous soyez dans la Galaxie !
Code : CoroFence
#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;
int 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() {
// Commande série optionnelle (1 = activer LED)
if (Serial.available() > 0) {
char c = Serial.read();
ledState = (c == '1') ? 1 : 0;
}
val = digitalRead(inputPin);
if (val == HIGH) { // Mouvement détecté
if (pirState == LOW) {
meetime = millis();
Serial.println("Mouvement detecte !");
pirState = HIGH;
getHeatmap();
// Couleur selon température max détectée
if (tempC < 16) setColor(0, 0, 255);
else if (tempC < 16) setColor(80, 0, 80);
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 { // Fin de mouvement
if (pirState == HIGH) {
noTone(buzzPin);
Serial.println("Mouvement termine !");
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("Temperature elevee !");
setColor(255, 0, 0); // Rouge
tone(buzzPin, 1000); // 1 kHz
}
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);
}
Code complet (Arduino IDE, VS2019, NodeJS) : GitHub dasdata/coronafence
Schéma de câblage

Processus de fabrication
- Carte de Visite PCB Tic-Tac-Toe 4×4 Personnalisée – Guide de Conception, Fabrication et Programmation
- Système de Capteur de Température Multi-Position pour Intégration Domotique
- Contrôleur DIY pour fer à souder 862D+ — Précision et fiabilité
- MotionSense : Détection d'intrusion intelligente avec Arduino et ESP8266
- Prévention incendie imprimante 3D : Système de sécurité à capteur intelligent
- Créer une jauge IoT connectée au Web avec Arduino, Yaler et IFTTT
- Lévitation magnétique répulsive avec Arduino : circuit simple et guide DIY
- Robot préhenseur télécommandé avancé pour manipulation de précision
- Enregistreur de données Arduino haute performance pour ballon météo