vinay y.n
Published © GPL3+

Sandisp! Sanitizer Dispenser With Voice Notifications

Touchless hand sanitizer dispenser with voice notifications. voice notification available in 100+ languages.

IntermediateFull instructions provided4 hours328
Sandisp! Sanitizer Dispenser With Voice Notifications

Things used in this project

Hardware components

Arduino Nano R3
Arduino Nano R3
Main microcontroller for the system
×1
Texas Instruments LM 567
Using it for IR proximity detection.
×1
L298N Based Motor Driver Module
×1
TDA 2030A audio amplifier
×1
Micro SD Card Shield
×1
12 volt 1 Ah DC adapter
×1
Infrared emitter
×1
Photo diode
×1
Micro SD Card
8 GB IS ENOUGH FOR THE SYSTEM BUT I AM USING 16 GB WHICH IS BOUGHT RECENTLY
×1
Bi- Color Led
bi-color (red&green) LED
×1
dc power connector
×1
speaker
×1
Generic PCB
×1
db 107 bridge rectifier
×1
Capacitor 470 µF
Capacitor 470 µF
×1
10 uf tantalum capacitor
×1
1 uf tantalum capacitor
×1
Resistors SMD 1206 package
×7
bc847 transistor
N-P-N SMD Transistor
×1
bc857 tansistor
P-N-P Transistor
×1
DC DIAPHRAGM WATER PUMP
×1
Water pipe 12 mm
×1
water pipe 1/2 inch
×1

Software apps and online services

Arduino IDE
Arduino IDE
ARDUINO IDE IS FOR CODING
TEXT TO SPEECH APP(TTS)
TTS App For Generating Text To Audio Wav files Generating.
audio.online-convert.com
For Converting The Audio File Parameters.

Hand tools and fabrication machines

Soldering iron (generic)
Soldering iron (generic)
Solder Wire, Lead Free
Solder Wire, Lead Free
Wire Stripper & Cutter, 26-14 AWG Solid & Stranded Wires
Wire Stripper & Cutter, 26-14 AWG Solid & Stranded Wires
hacksaw

Story

Read more

Schematics

outer view

Code

SOURCE CODE

Arduino
TMRpcm Library needed to compile the code
#include "SD.h" //Lib to read SD card
#include "TMRpcm.h" //Lib to play auido
#include "SPI.h" //SPI lib for SD card
#define SD_ChipSelectPin 4 //Chip select is pin number 4
TMRpcm music; //Lib object is named "music"
const int IR_Pin = 2;
int LED = 7;
int IR_PinState = 0;
int song_number = 0;
int st = 0;
boolean play_pause;
int Dispenser = 6;
unsigned long startMillis = 0;
const long interval1 = 15000;//for gave instruction when hand proximity detected
const long interval2 = 2000;//sanitizer pump motor on period
const long interval3 = 5000;//delay time to initialize sd card after the power ON

void setup() {
  pinMode(IR_Pin, INPUT);
  pinMode(Dispenser, OUTPUT);
  pinMode(LED, OUTPUT);
  music.speakerPin = 9; //Auido out on pin 9
  Serial.begin(9600); //Serial Com for debugging
  music.setVolume(5);    //   0 to 7. Set volume level
  music.quality(1);        //  Set 1 for 2x oversampling Set 0 for normal
  startMillis = millis();
  while ((millis() - startMillis) <= interval3) {
  }
  if (!SD.begin(SD_ChipSelectPin)) {
    Serial.println("SD fail");
    return;
  }
}

void loop() {

  IR_PinState = digitalRead(IR_Pin);
  if (IR_PinState  == HIGH && st == 0)
  {
    digitalWrite(LED, HIGH);
    Serial.println("MOTION DETECTED");
    music.play("DISP.wav");
    startMillis = millis();
    while ((millis() - startMillis) <= interval1) {
    }
    digitalWrite(LED, LOW);
    analogWrite(Dispenser, 200);//pump ON
    st = 1;
    startMillis = millis();
    while ((millis() - startMillis) <= interval2) {
    }
    analogWrite(Dispenser, 0);//pump off
    st = 0;
  }
}

Credits

vinay y.n
27 projects • 51 followers
An electronic product engineer with 8 years of experience in the field. The passion for electronics began as a hobby 11 years ago.

Comments