2021-ING2-Sup Galilée-MI: Masque Intelligent

Réalisation d'un masque intelligent (Anti-Covid) qui surveille la température corporelle de la personne et assure le respect des gestes barrières entre les gens

Slides & Videos

Members

NameContribution
Amir Ben SoltanaJe me suis occupé de la partie mécanique (implantation des composantes sur le masque de SKI ),il s’agit de la partie la plus délicate, j’ai commencé donc par souder tous les broches de l’Arduino Nano notamment les broches d’alimentation qui sera relier directement a deux batteries de 3.7v et 650 mAh) avec un interrupteur, ensuite j’ai implémenté les deux capteurs ( HC-SR04 et HC-SR501 ) au-dessus de la carte Arduino Après j’ai ajouté la partie qui va mesurer la température corporelle de la personne qui porte le masque , donc j’ai brancher l’écran OLED sur le côté gauche pour avoir une bonne vision et le capteur de température sans contact (Mlx90614) a l’intérieur pour qu’il soit proche de la peau.
Pour avertir du dépassement de distance de sécurité, j’ai fixé deux LEDs (bleu et rouge) sur le masque qui son relier à la broche 5 de la carte Arduino et au GND et j’ai ajouté aussi une résistance de 220 ohms.
Enfin j’ai rassemblé les codes pour les deux parties (température et distance) dans un seul code final et j’ai téléversé ce code vers la carte Arduino.
Afin de récupérer la température mesurer en utilisant un smartphone via Bluetooth, j’ai développé une petite application sur le site https://appinventor.mit.edu/ qui va aider l’utilisateur a visualisé sa température sur son téléphone en temps réel donc si ça température dépasse les 37° il doit s’isolé ou consulté le médecin au plus vite possible.
Pour cela j’ai utilisé un module Bluetooth hm-10 relier directement au broche Tx et Rx de la carte Arduino mais malheureusement ce module n’été pas compatible avec notre carte NANO et l’alimentation qu’on a utilisée donc on n’a pas réussi faire fonctionner cette partie.
Remarque : pour coller les composantes sur le masque j’ai utilisé un scotch chatterton noir qui m’a aidé notamment a caché les files pour rendre le masque plus attractif coté désigne.

Pour conclure, je peux dire, que ce projet m’a permis d’améliorer la gestion d’un travail en équipe, comme la confrontation de solutions techniques pour un même problème. De plus il m’a permis d’améliorer mes connaissances en en programmation (C et Arduino) et il m’a permis d’apprendre comment développer une application mobile d’une manière rapide et efficace, donc nous avons réalisé le principal objectif, qui était de réaliser un masque intelligent qui assure le respect des gestes barrières contre le virus qui a basculé le monde.
Yassine BESSAADPour ma partie je voulais afficher la température humain en ° C (+ température ambiante optionnelle ) sur un écran OLED a partir d'une carte Arduino nano.
Liste des matériaux :
*Arduino Nano × 1
*Écran OLED 0,96 ″ × 1
*Capteur de température GY-906
Le thermomètre infrarouge peut mesurer la température de surface d'un objet. Son avantage est la mesure de température sans contact, qui peut mesurer de manière pratique et précise la température d'un objet distant.
j'ai utilisé un capteur de température infrarouge sans contact MLX90614 (GY906) et j'ai mesuré la température en ° C.
Voici quelques informations sur le capteur MLX 90614 :
• Plage de température ambiante : -40 à 125 ˚C (-40 à 257 ° F)
• Plage de température de l'objet (sans contact) : -70 à 380 ˚C (-94 à 716 ° F)
• Résolution : 0,02 ° C
• Précision : 0,5 ° C pour (0-50 ° C) à la fois ambiant et objet
tout d'abord je fais la partie câblage afin de faire la partie programmation sur la carte Arduino nano pour ca il faut télécharger les bibliothèques suivantes :Adafruits SSD1306, Adafruits MLX90614 et Adafruit GFX.
Test :
D'abord, j'ai testé avec un moniteur série uniquement, j'ai placé ma main sur le capteur et je vois la différence .Ensuite j'ai testé avec écran OLED et mesure en Celsius.
*Tous les composants peuvent maintenant être assemblés pour ca j'ai installé tous les composants sur la maquette. Une fois que tout fonctionne normalement, on soude tous les composants sur la plaque à trous.
Problème :
• Le problème avec ce module est que les lectures de température changent beaucoup lorsque vous vous déplacez à seulement quelques centimètres de l’objet. Vous devriez donc être assez proche ou fixer une distance de vous voulez mesurer et calibrer le module ...


Faical OTHMANJe me suis occupé de la partie de détection de mouvement avec un capteur HC-SR501 ,ensuite calculer la distance qui sépare le porteur de masque et la personne en face avec un capteur HC-SR04, par la suite on fait un teste pour veiller à respecter les gestes barrières, c'est à dire en cas où la personne en face s'approche du porteur de masque moins d'un mètre les deux LEDs fixé sur le masque en haut commence à clignoter pour avertir du dépassement de distance de sécurité.
Au débit, j'ai commencé par programmer séparément les deux partie, la première partie nécessite:
-une carte Arduino NANO
-un capteur HC-SR04
-une LED rouge et une bleu
-une résistance 220 ohm
-une maquette
Au débit j'ai fait un programme pour calculer la distance puis j'ai rajouter une boucle pour déclencher en cas où la distance inférieur de 100 cm les deux LEDs que j'ai soudé en série.
La deuxième partie nécessite :
-une carte Arduino NANO
-un capteur HC-SR501
pour la partie programmation , j'ai fait un programme qui détecte la présence d'une personne et qui affiche "mouvement détecté" en cas de présence sinon "aucun mouvement détecté" .
Au final, j'ai mixé les deux programme pour faire clignoter les deux LEDs en cas de rapprochement d'une personne à moins d'un mètre.

State of the Art

Business Aspect

Smart Mask

Popularisés malgré eux depuis le début de l’épidémie de Covid-19, les masques font aujourd’hui partie de notre quotidien. Problème, avec la prolifération soudaine de masques chirurgicaux jetables sur le marché, ces derniers représentent désormais une préoccupation environnementale majeure. Heureusement, pour remédier à cela, de plus en plus de marques se distinguent en proposant des versions plus durables du simple masque facial. C’est notamment le cas de notre masque connecté, un masque intelligent qui a non seulement le mérite d’être plus durable que ses itérations classiques, mais qui permet aussi d’alerter son utilisateur lorsqu’il une personne s’approche de lui à moins d’un 1 mètre (les gestes barrières recommandés en France) en faisant clignoter deux LEDs fixer sur le haut du masque, au même temps c’est un masque qui veillent sur la sécurité de son porteur en surveillant toujours sa température corporelle et lui envoyer ses données à travers d’une application mobile.

Technical Aspect

Mesure de la température en utilisant un capteur de température infrarouge

Chaque thermomètre infrarouge présente un rapport de distance au point de mesure (D:S) qui fournit le diamètre de la surface mesurée par rapport à la distance de la cible. Par exemple, si le rapport de distance au point de mesure est de 12:1, le thermomètre mesure un point d’environ 2,5 centimètres de diamètre lorsqu’il est à 30 cm de la cible. Ce thermomètre n’est donc pas par exemple adapté pour mesurer une surface de 5 cm à 1 m de distance car le thermomètre mesurera également la température hors de la zone ciblée.

Project Description

Problem Definition
On s’était habitué à les porter dans les transports en commun : les masques sont désormais obligatoires dans les espaces publics clos. Pour quel modèle opter ? Les options se sont multipliées depuis le début de la pandémie. Après les masques biodégradables, durables, fashion ou fait-main, c’est au tour des masques intelligents et connectés de faire leur apparition.
Challenges & Motivation
Popularisés malgré eux depuis le début de l’épidémie de Covid-19, les masques font aujourd’hui partie de notre quotidien. Problème, avec la prolifération soudaine de masques chirurgicaux jetables sur le marché, ces derniers représentent désormais une préoccupation environnementale majeure. Heureusement, pour remédier à cela, de plus en plus de marques se distinguent en proposant des versions plus durables du simple masque facial. C’est notamment le cas de notre masque connecté, un masque intelligent qui a non seulement le mérite d’être plus durable que ses itérations classiques, mais qui permet aussi d’alerter son utilisateur lorsqu’il une personne s'approche de lui à moins d'un 1 mètre (les gestes barrières recommandés en France) en faisant clignoter deux LEDs fixer sur le haut du masque, au même temps c'est un masque qui veillent sur la sécurité de son porteur en surveillant toujours sa température corporelle et lui envoyer ses données à travers d'une application mobile.
Real and Complete Usecases

le rôle de ce masque consiste  a contrôler le respect des gestes barrière et il va surveillé la santé de celui qui porte le masque en mesurant sa température. ce produit va être désigner globalement pour les gens qui travaillent  dans les premiers lignes contre le covid-19 ( comme les infermières, les médecins , les agents de sécurité …)

Technical Description

Ce projet consiste a réaliser un masque intelligent et connecté qui protège à la fois son porteur et les autres personnes en assurant les gestes barrières contre le Covid 19. Si une personne s’approche moins d’un mètre deux LEDs vont clignoter et averti cet individu pour qu’il garde la distance minimale (1 mètre). Le masque va mesurer aussi la température corporelle de son porteur en permanent et il va afficher cette température sur un écran OLED coller sur le masque et sur une application mobile en temps réelle via Bluetooth.

Hardware

Materials
ImageNamePart NumberPriceCountLink
Masque de Motocross à Lunettes de Protection détachables015,99 €1🛒
Carte Arduino Nano04 €1🛒
Module capteur de température sans contactMlx90614Esf 15,10 €1🛒
écran OLEDAZDelivery7,29 € 1🛒
Module de Capteur Humain Motion PIR HC-SR5012 €1🛒
Détecteur de Mouvement à ultrasons HC-SR042€1🛒
Câbles07,99 €50🛒
LEDsbleu et rouge0.1 €2🛒
BatterieCrazepony-UK 2PCS 1S Lipo 3.7V 650mAh 4 €2🛒
résistance220 ohm0.1 1🛒
Ruban isolant02 € 1🛒
Schematic

Software

Arduino Code

//Masque Chirurgical Intelligent 
//Amir BEN SOLTANA
//Faical OTHMAN
//Yassine BESSAAD
#define PIN_TRIG  9
#define PIN_ECHO  8
#define LED  5
#include 
#include 
#include 
#include 
#include 
#include 
 
#define OLED_RESET 4
 
Adafruit_SSD1306 display(OLED_RESET); // ecran Oled
Adafruit_MLX90614 mlx = Adafruit_MLX90614();// capteur de température
 
#if (SSD1306_LCDHEIGHT != 32)
#error("Height incorrect, please fix Adafruit_SSD1306.h!");
#endif
long duration_hc, distance_hc;
void setup() {
  // put your setup code here, to run once:
  Serial.begin(57600);
  Serial.println("Adafruit MLX90614 test");  
  mlx.begin();  
  display.begin(SSD1306_SWITCHCAPVCC, 0x3C);  // initialize with the I2C addr 0x3C (for the 128x32)
  Serial.begin (9600);
  pinMode(2, INPUT);// Input from sensor
  pinMode(PIN_TRIG, OUTPUT);
  pinMode(PIN_ECHO, INPUT);
  pinMode(LED, OUTPUT);
}

void loop() {
   // Clear the buffer.
  display.clearDisplay();
 
  // text display tests
  display.setTextSize(1);
  display.setTextColor(WHITE);
  display.setCursor(0,0);
  display.print("garder la distance ");
  //display.print(mlx.readAmbientTempC()); 
//  display.print(" c");*/
  display.setCursor(0,10);
  display.print("temperature: ");
  display.print(mlx.readObjectTempC()); 
  display.print(" c");
  display.display();
  delay(100);
//  put your main code here, to run repeatedly:
  int motion =digitalRead(2);
 if(motion){
  int i;
    //Serial.println("Motion detected");
    mesureDistance();
    Serial.print("Distance ");
    Serial.print(distance_hc);
    Serial.println(" Cm ");
    if (distance_hc <= 100){
     
    digitalWrite(LED, HIGH);   // turn the LED on (HIGH is the voltage level)
    delay(20);
    digitalWrite(LED, LOW); 
    delay(20);
     // turn the LED off by making the voltage LOW      
    }
    
  }
  delay(500);
}

 void mesureDistance(){
  digitalWrite(PIN_TRIG, LOW);  
  delayMicroseconds(10); 
  digitalWrite(PIN_TRIG, HIGH);
  delayMicroseconds(10); 
  digitalWrite(PIN_TRIG, LOW);
  duration_hc = pulseIn(PIN_ECHO, HIGH);
  Serial.println(duration_hc);
  distance_hc = duration_hc / 58;
  }