top of page

AUTO MASK

Comfortable. Safe. Efficient.

HOW IT WORKS

Features

FEATURES

IMG_9589.JPG
EYE
SHIELD

Blocks infected saliva from entering eyes.

IMG_9658.JPG
TOUCHLESS
CONTROL

Minimizes viral transfer from hands.

IMG_9740.JPG
MUSCLE
SENSOR

Covers just in time to catch a cough or sneeze.

IMG_9787.JPG
COMFORT
TO WEAR

Wear it just like a pair of glasses!

IMG_9808_edited.jpg
AIR
SENSOR

Protects you when there is bad air quality.

IMG_9807.PNG
COMPACT
PORTABILITY

Slide Auto Mask in your bag to take everywhere!

about

Hey there! I'm Taliyah, the creator of Auto Mask. In the year 2020, due to the coronavirus pandemic and California forest fires, I realized NO ONE is comfortable wearing a mask.

 

There are many problems:

1. Difficulty breathing

2. Wearing incorrectly

3. Non-hygienic mask practice

4. Injuries due to prolonged mask wearing

5. Mask off at critical moments

6. Not wearing at all!

​

Auto Mask is here to show that creativity and innovation can still go on! Read on to learn what's behind the creation of Auto Mask!

ezgif.com-video-to-gif (4).gif
About

Auto Mask Creation

March

Quarantine lockdown begins in California.

April

Taliyah thinks of the idea for Auto Mask.

January

The coronavirus pandemic starts in Wuhan, China.

May

Taliyah works on the first prototype for Auto Mask.

June

Auto Mask is tested in public.

July

Taliyah works on the second prototype for Auto Mask.

May 30

Auto Mask wins best hardware hack at TeenHacksHTX.

August

Forest fires spark all over California, causing hazardous smoke to fill the air.

September

The second version of Auto Mask is complete!

IMG_9443.JPG

Version 1.0

+ Eye Protection

+ Touchless control

+ On/off switch

+ Muscle Sensor

Version 2.0

+ Eye Protection

+ Touchless control

+ On/off switch

+ Detachable Muscle Sensor

+ Increased Comfort

+ Air Quality Sensor

+ Foldable

+ Snap on masks

Auto Mask CAD Files

It took months of 3D designing using Onshape to create the most refined components for Auto Mask. Take a look at the parts that come together to form Auto Mask 2.0!

Screen Shot 2020-09-12 at 12.08.56 PM.pn
Screen Shot 2020-09-12 at 12.24.01 PM.pn
Screen Shot 2020-09-12 at 12.25.12 PM.pn
Arduino Nano V3.0 Twins Chip 1-425x425.j

Arduino Nano

A tiny microcontroller at only ~$5 connects the sensors and motors that operate Auto Mask.

13723-MyoWare_Muscle_Sensor-02.jpg

MyoWare Muscle Sensor

The sensor is attached to the abdomen with disposable electrodes.

Auto Mask BOM

Read about the few non-3D printed components that complete Auto Mask! These electronic parts were specially chosen based on their use, size, and price!

173032786_Adafruit_SGP30%20Air%20Quality

SGP30 Gas Sensor

This little sensor will know when in an area of hazardous air quality.

ad565f44-2f37-4234-9257-2335f840f41c.jpg

Micro Servo

A pair of micro servos activate the mask in one swift and simple motion.

download (3).jpeg

Proximity Sensor

An ultrasonic or proximity sensor uses echolocation to activate the mask.

512zxA-PMOL._AC_SX355_.jpg

CR2 Battery

Two of these small batteries power the entire Auto Mask mechanism.

Auto Mask Circuit

Look at the diagram below to see how all the electronic parts are connected! The battery and on/off switch are not shown.

Screen Shot 2020-09-12 at 12.30.21 PM.pn

Auto Mask Code

Scroll down to see the C++ code that is uploaded to the Arduino Nano so it can control Auto Mask!

#include <Servo.h>
Servo myservo1;
Servo myservo2;

 

#include <Wire.h>

#include "Adafruit_SGP30.h"

uint16_t VOC1 = 0;

uint16_t VOC2 = 0;

uint16_t VOC3 = 0;

uint16_t VOC4 = 0;

uint16_t VOC5 = 0;

uint16_t VOCAVE;

​

Adafruit_SGP30 sgp;

uint32_t getAbsoluteHumidity(float temperature, float humidity) {

    const float absoluteHumidity = 216.7f * ((humidity / 100.0f) * 6.112f * exp((17.62f * temperature) / (243.12f + temperature)) / (273.15f + temperature));

    const uint32_t absoluteHumidityScaled = static_cast<uint32_t>(1000.0f * absoluteHumidity);

return absoluteHumidityScaled;

}

​

bool onoff = 0;

uint8_t counter = 0;

​

//For Muscle
uint16_t sensorValue = 0;  
uint16_t outputValue = 0;

const int musPin = A3;

​

//For Ultrasonic
int time;
uint16_t distance;
const int trigPin = 7;
const int echoPin = 8;

​

void setup() {
    myservo1.
attach(9);
    myservo2.
attach(10);
   
 pinMode(musPin, INPUT);
    
pinMode (trigPin, OUTPUT);
 
  pinMode (echoPin, INPUT);
    
Serial.begin(9600);

    myservo1.write(180);

    myservo2.write(90);

    if (! sgp.begin()) {

        while (1);

    }
}

​

void loop() {
    
  //Muscle Sensor
   
delay(50);
    sensorValue =
analogRead(musPin);
    outputValue =
map(sensorValue, 0, 1023, 0, 255);
 
  Serial.println(sensorValue);

  if (sensorValue > 400) {
      
if (onoff == 1) {

          myservo1.write(180);

          myservo2.write(90);

          onoff = 0;

          delay(1000);

      }
  }

  ​

  //Ultrasonic
   
 digitalWrite (trigPin, HIGH);
   
 delayMicroseconds (10);
   
 digitalWrite (trigPin, LOW);
    
time = pulseIn (echoPin, HIGH);
    distance = (
time * 0.034) / 2;

  if (distance < 7 && distance > 4) {
      
delay(500);
   
  if (distance < 7 && distance > 4) {
          
if (onoff == 0) {
              myservo1.
write(90);
              myservo2.
write(180);
              onoff = 1;
              
delay(500);
      }
else {
              myservo1.
write(180);
              myservo2.
write(90);
              onoff = 0;
              
delay(500); 
      }
    }
  }

    if (! sgp.IAQmeasure()) {

        return;

    }

    counter++

    if {counter == 5){

        counter = 0;

        VOC5 = VOC4;

        VOC4 = VOC3;

        VOC3 = VOC2;

        VOC2 = VOC1;

        VOC1 = sgp.TVOC;

        VOCAVE = (VOC1 + VOC2 + VOC3 + VOC4 + VOC5) / 5;

    }

    if (VOCAVE > 50) {

        if (onoff == 1) {

            myservo1.write(180);

            myservo2.write(90);

            onoff = 0;

        }

    }

    delay(500);
}

Get in Touch

Your details were sent successfully!

Contact
bottom of page