Hackster is hosting Hackster Holidays, Ep. 6: Livestream & Giveaway Drawing. Watch previous episodes or stream live on Monday!Stream Hackster Holidays, Ep. 6 on Monday!
Ederson Amgarten
Published © MIT

UVC decontamination chamber for community use

An easy and practical way for collective use, to avoid covid-19 contamination by supermarket purchases.

IntermediateFull instructions provided8 hours918
UVC decontamination chamber for community use

Things used in this project

Hardware components

STMicroelectronics Blue Pill (STM32F103C8T6) board
×1
SparkFun RGB LED Breakout - WS2812B
SparkFun RGB LED Breakout - WS2812B
×1
Grove - Relay
Seeed Studio Grove - Relay
×1
Switch Actuator, APEM A01 series Illuminated Push-Button Switches
Switch Actuator, APEM A01 series Illuminated Push-Button Switches
×1
Reed Switch, Flange Mount
Reed Switch, Flange Mount
×1
UVC Lamp
×1
ballast for UVC lamp
×1
Plastic Enclosure
×1

Software apps and online services

Mbed Studio
Arm Mbed Studio

Hand tools and fabrication machines

STMicroelectronics STLINK

Story

Read more

Schematics

UV Box simple schematic

Code

Code UV Box

C/C++
#include "mbed.h"
#include "platform/mbed_thread.h"
#include <InterruptIn.h>


#define ESPERA_DESINF_MS                                                    100
// main() runs in its own thread in the OS
InterruptIn E_switch(PB_12, PullUp);
DigitalIn botao1(PB_11, PullDown);
DigitalOut test_led(PC_13);
DigitalOut UV_lamp(PB_9);
DigitalOut redled(PA_5);
DigitalOut greenled(PA_6);
DigitalOut blueled(PA_7);

void outputs(int state){
        switch(state){
            case 0:
            { // pronto para ligar
                test_led = true; // test led  OFF
                UV_lamp = true; //  UV  lamp OFF
                redled = false; // red led OFF
                blueled = false; //  blue led OFF
                greenled = true; // gren led ON
                break;
                
            }
            case 1: // turn ON UV
            {
                test_led = false; // test led  ON
                UV_lamp = false; //  UV  lamp ON
                greenled = false; // gren led OFF
                blueled = true; //  blue led ON
                redled = false; // red led OFF
                ThisThread::sleep_for(703s);
                break;
            }
            case 2: // emergency stop
            {
                test_led = true; // test led  OFF
                UV_lamp = true; //  UV  lamp OFF
                greenled = false; // gren led OFF
                blueled = false; //  blue led OFF
                redled = true; // red led ON
                break;
            }
            break;
        }
    
}

void emergency(){
    outputs(2);
}
int main()
{
    test_led = true; // false liga o led
    UV_lamp = true; // false liga a saida
    E_switch.rise(&emergency);
 
    while (true) {
        
        if (E_switch) {(outputs(2));}
        if (!E_switch) { outputs(0);
            if (botao1) { outputs(1);
            }
        }
    }

}

Credits

Ederson Amgarten

Ederson Amgarten

2 projects • 15 followers

Comments