COVID AuxiKit

Our kit is designed to minimize risk and exposure to coronavirus infections for both healthcare practitioners and ordinary citizens.

IntermediateFull instructions provided794
COVID AuxiKit

Things used in this project

Hardware components

Philips hue UVC light tube
×1
Rocker Switch, Non Illuminated
Rocker Switch, Non Illuminated
×1
Arduino UNO
Arduino UNO
×1
LCD display
×1
Relay 1-channel 250VAC 10A
×1
AC female port Power Connector
×1
Jumper wires (generic)
Jumper wires (generic)
×25
Power Cable - 3 pins , 1.5m long
×1
24 AWG Wire
×1

Story

Read more

Custom parts and enclosures

Enhanced & reusable face shield

Portable UV Light Sterilizer

The image below shows the proposed CAD model of the Ultraviolet-C lamp and its parts list

Final Product

Schematics

1. Sketch of face masks apt or self-sterilization

The enhanced face mask will have a more comfortable and breathable fit, while minimizing inward leakage of particles to protect the user while maximising their comfort levels while wearing the mask. It is made up of cotton as it is one of the most environmentally-friendly, biodegradable, comfortable, breathable and soft material. Its hypoallergenic qualities also make it ideal to be used with sensitive skin, allowing more people to be able to use the mask. The mask also keeps the users cool by using cooling technology in the material. Lastly, it comes with an adjustable strap to ensure comfortable fit and reduce the pain on the earlobes due to the pressure points present.

2. Sketch of reusable face shield

The face shield has a cap instead of a strap around the head to ensure that there is less pain on the earlobes. It also has an adjustable strap at the back of the cap for a more comfortable fit around the head of the user. The face shield is worn through the hole and has good coverage. To avoid possibility of hypoxia, the neck closure can be left open and adjusted by the strap to fit better around the neck if the situation requires the user to do so. Furthermore, there is cooling technology in the underside of the cap to ensure that it is not too hot for users and they are kept cool during their long working hours. Next, the transparent visor is waterproof & dustproof and allows for minimizing of fogging. Additionally, this face shield is reusable and environmentally-friendly as the parts can be separated and washed. Lastly, an idea that we could experiment on: the picture and details of patients who need immediate care will be shown at the side of the visor as it will be connected to the sensor at the patient's bed.

3. Sketch of portable UV Light Sterilizer

The concept of the UV lamp design is to create a structure that can sterilize a whole room. With previous designs, the operator of the lamp had to turn on the lamp and quickly leave the room as sterilization starts putting them at risk of exposure. Our design includes a delay circuit such as when the sterilizer is switched on, it gives the user 30 seconds to leave the room before it begins the sterilization cycle. It also includes a display and keypad for setting the duration of the sterilization cycle. A specific wavelength of UVC light – 222 nm – would be used as it is much less dangerous to humans, while still lethal for viruses and bacteria.

Designed Circuit for UV light sterilizer

This electrical circuit contains the following components:

Code

Timer

Arduino
#include <Keypad.h>
//#include <LiquidCrystal.h>
#include <Wire.h> 
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2);  //0x27 is the i2c address, while 16 = columns, and 2 = rows. 

#include<stdio.h>
const byte ROWS = 4; //four rows
const byte COLS = 3; //three columns
char keys[ROWS][COLS] = {
  {'1','2','3'},
  {'4','5','6'},
  {'7','8','9'},
  {'*','0','#'}
};
byte rowPins[ROWS] = {4, 5, 6, 7}; //connect to the row pinouts of the keypad
byte colPins[COLS] = {8, 9, 10}; //connect to the column pinouts of the keypad

Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );





int relay = 13;

int counter = 0; 
int attempts = 0; 
int max_attempts = 3; 

String mymints;
int minutes = 0; 

String mysecs; 
int seconds = 0; 
long int total_seconds = 0; 
int secflag = 0; 
int timer_started_flag = 0; 


// Tracks the time since last event fired
unsigned long previousMillis=0;
unsigned long int previoussecs = 0; 
unsigned long int currentsecs = 0; 
 unsigned long currentMillis = 0;
  int interval= 1 ; // updated every 1 second
int tsecs = 0; 
 
void setup(){
  Serial.begin(9600);
  lcd.init();                 //Init the LCD
  lcd.backlight();            //Activate backlight 
  

  pinMode(relay, OUTPUT);
  digitalWrite(relay, LOW);
  
  Serial.println("enter password");
    lcd.print("Countdown Timer");

    delay(2000); 
    lcd.clear();
     lcd.print("Enter Minutes:");
}
  
void loop()
{
  
 keypadfunction();
 
}

void keypadfunction()
{ 
 char key = keypad.getKey();
  
  if (key){
    Serial.println(key);
    counter = counter + 1; 
    lcd.setCursor(counter, 1);
    lcd.print(key);
  }
  
  if (key == '1')
  {

    mymints = mymints + 1;   
  }
  
    if (key == '2')
  {

    mymints = mymints + 2;  
  }
  
  if (key == '3')
  {
 
    mymints = mymints + 3; 
  }
  
   if (key == '4')
  {
  
    mymints = mymints + 4;  
  }
  
  if (key == '5')
  {
  
    mymints = mymints + 5;
  }
  
   if (key == '6')
  {
   
    mymints = mymints + 6; 
  }
  
   if (key == '7')
  {

    mymints = mymints + 7; 
  }

   if (key == '8')
  {

    mymints = mymints + 8; 
  }
  
  if (key == '9')
  {

    mymints = mymints + 9;
  }
             
                 if (key == '0')
  {

    mymints = mymints + 0; 
  }

                    if (key == '#')
  {

    counter = 0;
    mymints = ""; 
    minutes = 0;  
    mysecs = ""; 
    seconds = 0; 
    secflag = 0;  

    lcd.clear(); 
    lcd.setCursor(0,0); 
    lcd.print("Enter Minutes:"); 
  }
  
  
        if (key == '*')
  {
lcd.clear();     
minutes = mymints.toInt();
Serial.println(minutes);
lcd.clear(); 
lcd.print("Minutes: "); 
lcd.setCursor(0,1); 
lcd.print(minutes); 
mymints = ""; // empty the string
delay(2000); 
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Enter Seconds:");
counter = 0; 
secflag = 1; 

delay(10000);
while(secflag == 1)
{
forSeconds(); 
}    
  }  
   
}

void forSeconds()
{ 
 char key = keypad.getKey();
  
  if (key){
    Serial.println(key);
    counter = counter + 1; 
    lcd.setCursor(counter, 1);
    lcd.print(key);
  }
  
  if (key == '1')
  {

   mysecs = mysecs + 1;   
  }
  
    if (key == '2')
  {

   mysecs = mysecs + 2;  
  }
  
  if (key == '3')
  {
 
    mysecs = mysecs + 3; 
  }
  
   if (key == '4')
  {
  
    mysecs = mysecs + 4;  
  }
  
  if (key == '5')
  {
  
    mysecs = mysecs + 5;
  }
  
   if (key == '6')
  {
   
    mysecs = mysecs + 6; 
  }
  
   if (key == '7')
  {

    mysecs = mysecs + 7; 
  }

   if (key == '8')
  {

    mysecs = mysecs + 8; 
  }
  
  if (key == '9')
  {

    mysecs = mysecs + 9;
  }
             
                 if (key == '0')
  {

    mysecs = mysecs + 0; 
  }

                   if (key == '#')
  {

    counter = 0;
    mymints = ""; 
    minutes = 0;  
    mysecs = ""; 
    seconds = 0; 
    secflag = 0;  

    lcd.clear(); 
    lcd.setCursor(0,0); 
    lcd.print("Enter Minutes:"); 
  }
  
  
  
        if (key == '*')
  {

lcd.clear();     
seconds = mysecs.toInt();
Serial.println(seconds);
lcd.clear();
lcd.setCursor(0,0); 
lcd.print("Seconds: "); 
lcd.setCursor(0,1); 
lcd.print(seconds); 
mysecs = ""; // empty the string
delay(2000); 
lcd.clear();
lcd.setCursor(0,0);
 
lcd.print("Mins      Secs"); 
lcd.setCursor(1,1); 
lcd.print(minutes); 
lcd.setCursor(10,1); 
lcd.print(seconds); 
total_seconds = (minutes * 60) + seconds ;
counter = 0;
secflag = 0; 
timer_started_flag = 1;

lcd.clear();
lcd.print("T Seconds:");
lcd.setCursor(11,0);
lcd.print( total_seconds );
delay(3000); 
while( timer_started_flag == 1)
{
   char key = keypad.getKey();
  
  if (key){
    Serial.println(key);
    counter = counter + 1; 
    lcd.setCursor(counter, 1);

  }

   if (key == '#')
  {

    counter = 0;
    mymints = ""; 
    minutes = 0;  
    mysecs = ""; 
    seconds = 0; 
    secflag = 0;  
    total_seconds = 0; 
     timer_started_flag = 0;
    lcd.clear(); 
    lcd.setCursor(0,0); 
    lcd.print("Enter Minutes:"); 
  }

         //  lcd.clear(); 
  lcd.setCursor(0,0); 
  lcd.print("T Seconds:");
  lcd.setCursor(11,0); 
  lcd.print( total_seconds );
  lcd.setCursor(0,1);
  if( total_seconds > 0)
  {
    digitalWrite(relay, HIGH); 
  lcd.print("load ON "); 
  }

    if( total_seconds <= 0)
  {
    total_seconds = 0; 
    digitalWrite(relay, LOW); 
  lcd.print("load OFF"); 
  }

     currentMillis = millis();
   currentsecs = currentMillis / 1000; 
    if ((unsigned long)(currentsecs - previoussecs) >= interval) {
      total_seconds = total_seconds - 1;
      lcd.clear(); 
      previoussecs = currentsecs;
    }
}
 
  }  
  
  
}

UV sterilization

Arduino
/*
  LiquidCrystal Library - Hello World

 Demonstrates the use a 16x2 LCD display.  The LiquidCrystal
 library works with all LCD displays that are compatible with the
 Hitachi HD44780 driver. There are many of them out there, and you
 can usually tell them by the 16-pin interface.

 This sketch prints "Hello World!" to the LCD
 and shows the time.

  The circuit:
 * LCD RS pin to digital pin 12
 * LCD Enable pin to digital pin 11
 * LCD D4 pin to digital pin 5
 * LCD D5 pin to digital pin 4
 * LCD D6 pin to digital pin 3
 * LCD D7 pin to digital pin 2
 * LCD R/W pin to ground
 * LCD VSS pin to ground
 * LCD VCC pin to 5V
 * 10K resistor:
 * ends to +5V and ground
 * wiper to LCD VO pin (pin 3)

 Library originally added 18 Apr 2008
 by David A. Mellis
 library modified 5 Jul 2009
 by Limor Fried (http://www.ladyada.net)
 example added 9 Jul 2009
 by Tom Igoe
 modified 22 Nov 2010
 by Tom Igoe

 This example code is in the public domain.

 http://www.arduino.cc/en/Tutorial/LiquidCrystal
 */

// include the library code:
#include <LiquidCrystal.h>

// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

void setup() {
  // set up the LCD's number of columns and rows:
  lcd.begin(16, 2);
  // Print a message to the LCD.
  lcd.print("COVID AUXIKIT");
}

void loop() {
  // set the cursor to column 0, line 1
  // (note: line 1 is the second row, since counting begins with 0):
  lcd.setCursor(0, 1);
  // print the number of seconds since reset:
  lcd.print(millis() / 1000);
}

Credits

Alaa Mohammed

Alaa Mohammed

1 project • 3 followers
Stacy Kifworo

Stacy Kifworo

1 project • 2 followers
Brian Watai

Brian Watai

0 projects • 3 followers
Alex Inoma

Alex Inoma

0 projects • 4 followers
Stella Chelagat

Stella Chelagat

0 projects • 3 followers
M Farhana

M Farhana

0 projects • 3 followers

Comments