Biswajit MishraNaomi Voglewede
Published © GPL3+

The Money Launderer: Automated COVID-19 Currency Disinfector

This product disinfects bills and coins, high-contact surfaces, to allow for cash dependent economies to survive in this pandemic.

IntermediateFull instructions provided1 hour3,880
The Money Launderer: Automated COVID-19 Currency Disinfector

Things used in this project

Hardware components

Arduino UNO
Arduino UNO
×1
1/2" Wood Particle Board
Dimensions: 200mm x 100 mm x 76.2 mm
×1
Metal Hinge
×2
5V Submerisble DC Pump
×1
7/16" Aquarium Tubing
×1
5V 5 pin DC Relay
×1
Jumper wires (generic)
Jumper wires (generic)
×1
Male/Female Jumper Wires
Male/Female Jumper Wires
×5
LED (generic)
LED (generic)
×2
9V battery (generic)
9V battery (generic)
×1
Bump/Limit Switch
×1
9V Battery Clip
9V Battery Clip
×1
AA Batteries
AA Batteries
×4
Through Hole Resistor, 300 ohm
Through Hole Resistor, 300 ohm
×1

Software apps and online services

Arduino IDE
Arduino IDE

Hand tools and fabrication machines

Soldering iron (generic)
Soldering iron (generic)
Solder Wire, Lead Free
Solder Wire, Lead Free
Tape, Electrical
Tape, Electrical
Wire Stripper & Cutter, 18-10 AWG / 0.75-4mm² Capacity Wires
Wire Stripper & Cutter, 18-10 AWG / 0.75-4mm² Capacity Wires
Sewing Pin (generic)
Hot glue gun (generic)
Hot glue gun (generic)
Wood Files
Hammer
Polyurethane Spray

Story

Read more

Schematics

Circuit

The wiring of the circuit allows us to execute the code as we want it to. That is why a relay is included.

A Basic Schematic

We didn't use any CAD software this time around. Instead, we opted for a simple schematic to give us as much room to adjust as possible.

Code

Arduino Code

C/C++
This is the code that can be directly uploaded to Arduino.
const int buttonPin = 10;
const int pumpPin =  8;
const int progPin = 11;
const int clearPin = 12;

int buttonState = 0;

void setup() {
  
  pinMode(pumpPin, OUTPUT);
  pinMode(buttonPin, INPUT);
  pinMode(progPin, OUTPUT);
  pinMode(clearPin, OUTPUT);
  
}

void loop() {

  buttonState = digitalRead(buttonPin);

  if (buttonState == HIGH) {
    
    digitalWrite(pumpPin, HIGH);
    digitalWrite(progPin, HIGH);
    delay(8000);
    digitalWrite(pumpPin, LOW);
    digitalWrite(progPin, LOW);
    digitalWrite(clearPin, HIGH);
    delay(3000);
    digitalWrite(clearPin, LOW);
    
  } 
  else {
    
    digitalWrite(pumpPin, LOW);
    digitalWrite(progPin, LOW);
    digitalWrite(clearPin, LOW);
    
  }
}

Python Code with pyFirmata

Python
This is the code we used to test the Arduino as we had more experience with Python than with C. Note that it requires a pip installation of pyFirmata.
import pyfirmata
import time

from pyfirmata import Arduino, util

board = Arduino("COM5")

iterator = util.Iterator(board)

iterator.start()

board.digital[9].mode = pyfirmata.INPUT

pump = board.digital[8]
clearLED = board.digital[12]
progLED = board.digital[11]

class Exectution:

    def Sanitizer(self):
        pump.write(1)
        progLED.write(1)
        time.sleep(8)
        pump.write(0)
        progLED.write(0)
        clearLED.write(1)
        time.sleep(3)
        clearLED.write(0)

    def Stationary(self):
        pump.write(0)
        progLED.write(0)
        clearLED.write(0)

while True:

    switch = board.digital[9].read()

    if switch is True:

        Exectution.Sanitizer(True)

    else:

        Exectution.Stationary(True)


    time.sleep(.1)

Credits

Biswajit Mishra

Biswajit Mishra

3 projects • 1 follower
UW Madison Electrical Engineering Student
Naomi Voglewede

Naomi Voglewede

1 project • 1 follower
High School Student and Dedicated Member of FISRT Team 2506 Saber Robotics

Comments