Project in progress
Connected Visor

Connected Visor

A connected protective visor which helps to respect preventive measures against COVID-19.

  • 7,200 views
  • 4 comments
  • 17 respects

Components and supplies

Necessary tools and machines

3drag
3D Printer (generic)
09507 01
Soldering iron (generic)

Apps and online services

About this project

Overview

In the fight against Covid 19 WHO recommends the following preventive measures:

  • Wash hands regularly for 20 seconds
  • Do not touch the face
  • Keep a social distance at least 1 meter...

Thanks to our open source connected visor, the user will be able to protect his face, keep a social distance of 1 meter, wash his hands properly for 20 seconds and monitor his body temperature.

Visor features

We have developed a tool that allows you to protect yourself and respect the preventive measures against Covid 19 composed of an ultrasonic sensor (HC-sr04) to measure the distance, an infrared thermometer (MLX90614) to monitor its temperature, a led and a piezoelectric speaker to alert and guide the user, a bluetooth module to connect the visor to its mobile application.

By placing your hand 10 cm from the visor for 10 seconds, the visor automatically activates a 20 second timer to help you wash your hand: this is the hand washing timer function.

The mobile application allows you to display the measured body temperature on the forehead of the person wearing the visor, to activate or deactivate the following functions:

  • Hand washing timer
  • Mute mode.

How it's work

The thermometer sensor (MLX90614) is placed 2 cm from the forehead and the distance sensor (HC - sr04) is placed in front of the visor.

Demonstration

Code

FirmwareArduino
#include <Wire.h>
#include <Adafruit_MLX90614.h> // adafruit library
#include <SoftwareSerial.h>

SoftwareSerial serieBT(10, 11); //RX TX define
Adafruit_MLX90614 mlx = Adafruit_MLX90614();

const int trigPin = 4;
const int echoPin = 3;
long duration;
int distance;
int a=0;

bool Handwash = true;
bool Sound = true;

char junk;
String inputString="";
char c;
String Data;
int i=0;

unsigned long intervall2 = millis(); 


void setup() 
{
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT); 
  pinMode(5, OUTPUT); 
  pinMode(6, OUTPUT); 
  Serial.begin(9600);
  mlx.begin();  
  serieBT.begin(9600); 
  }

void loop() {
  // the bluetooth is used to configure the visor throuth the mobile application
  if(serieBT.available()){
    while(serieBT.available())
    {
      char inChar = (char)serieBT.read(); //read the input 
      inputString += inChar;        //make a string of the characters coming on serial
      }
    while (serieBT.available() > 0)  
    {
      junk = serieBT.read();
      }

    // if message is 1a the visor desactive handwash function
    if(inputString == "1a\r\n"){
      Handwash = false;
      }
    // if message is 1b the visor active handwash function
    if(inputString == "1b\r\n"){
      Handwash = true;
      }
    // if message is a the visor active the piezo speaker in the social distance function
    if(inputString == "a\r\n"){
      Sound = true;
      }
    // if message is a the visor desactive the piezo speaker in the social distance function
    if(inputString == "b\r\n"){
      Sound = false;
      }
    inputString = "";
    }
 
   else{ 
    Serial.print("ok ");
    if(millis()>intervall2+10000){ 
        serieBT.print(mlx.readAmbientTempC()); //the temperature is send every 10 second to the application to displaying
        intervall2 = millis();
        }
    fdistance();
    delay(200);
    //the function who active handwash funtion if you placed 
    if(i >8){
        if (Handwash) hand();
        else i = 0; 
        }
       }
  }

// function distanciation social 1 meter
void fdistance(){
  digitalWrite(trigPin, LOW);delayMicroseconds(2);
  digitalWrite(trigPin, HIGH);delayMicroseconds(10);
  digitalWrite(trigPin, LOW);
  duration = pulseIn(echoPin, HIGH);
  distance= duration/58.2;
  Serial.println(distance);
  delay(100);
  if(distance<=100){
    digitalWrite(5, HIGH);
    if(Sound){
      digitalWrite(6, HIGH);
      }
    if (distance <10){
      i++;
      }
    }
  else if(distance> 100){
    digitalWrite(5, LOW);
    digitalWrite(6, LOW);
    }
}

//handwashing timer function (20 sec)
void hand (){
  unsigned long currentMillis = millis();
  unsigned long intervall = currentMillis + 20000; 
  i = 0;

  //the piezo speaker sound three time to warn user that he can start washing hand

  digitalWrite(6, LOW);
  delay(200);
  digitalWrite(6, HIGH);
  delay(200);
  digitalWrite(6, LOW);
  delay(200);
  digitalWrite(6, HIGH);
  delay(200);
  digitalWrite(6, LOW);
  delay(200);
  digitalWrite(6, HIGH);
  delay(200);
  digitalWrite(6, LOW);

  //20 second timer
  while(millis()<intervall)
  {
    Serial.print("hand");
    digitalWrite(5, HIGH);
    }
    
   //the piezo speaker sound three time to warn user that he can stop washing hand
  digitalWrite(6, HIGH);
  delay(200);
  digitalWrite(6, LOW);
  delay(200);
  digitalWrite(6, HIGH);
  delay(200);
  digitalWrite(6, LOW);
  delay(200);
  digitalWrite(6, HIGH);
  delay(200);
  digitalWrite(6, LOW);
  }
  

Custom parts and enclosures

Schematics

MIT inventor design application mobile
Capture decran 2020 05 16 a 21 28 22 ro14pwxl48
MIT inventor Blocks code for application mobile
Capture decran 2020 05 16 a 21 26 56 jeoebdtlsr
Project MIT inventor for application mobile (aia format)
visconnected_5kSbFRvju3.aia
Schematic
Visconnected mmblkjrhm3

Comments

Similar projects you might like

'Roger Bot' the Pet Rover

Project showcase by hannu_hell

  • 5,195 views
  • 0 comments
  • 15 respects

Connected Oximeter with SMS Alert for Covid-19

Project tutorial by Martin Cornu

  • 6,542 views
  • 0 comments
  • 10 respects

Fox Advisor

Project tutorial by Celia Garrido Hidalgo

  • 5,476 views
  • 2 comments
  • 13 respects

Automatic Hand Sanitizer

Project tutorial by Nikolaos Babetas

  • 31,733 views
  • 14 comments
  • 35 respects

Touchless Door Opener

Project in progress by Jaume and Bolito2

  • 7,701 views
  • 6 comments
  • 30 respects

COVID-19 Simple Friendly Social Distance Robot Watchzi

Project tutorial by draakje156

  • 6,778 views
  • 0 comments
  • 6 respects
Add projectSign up / Login