Slimme Automatische Handdesinfectie – Hygiëne Zonder Inspanning met Arduino-systeem
Onderdelen en Benodigdheden
| Onderdeel | Aantal |
|---|---|
| Arduino Nano R3 | 1 |
| Theremino Driver DRV8825 voor Stappenmotoren | 1 |
| Draadjes (algemeen) | 1 |
| Breadboard (algemeen) - 2 mini breadboards gebruikt | 1 |
| 9V Batterij (algemeen) | 1 |
| 9V Batterijclip | 1 |
| Weerstand 1k ohm | 1 |
| Condensator 100 µF | 1 |
| 28BYJ-48 4-fasen Stappenmotor DC 5V voor Arduino | 1 |
| M3 Schroeven (8-20mm lengte) | 19 |
| Infrarood Obstakelvermijdingssensor Module voor Arduino | 1 |
| Eindschakelaar KW12-3 - Micro Roller Hefboomarm Normaal Open/Dicht | 1 |
| Aluminium Stijve Koppeling 5mm naar 8mm | 1 |
| Trapezgewinde Spindelt T8-300mm met Messing Moer, Steek 2mm | 1 |
| Aan/uit-schakelaar (algemeen) | 1 |
| Handdesinfectie | 1 |
| 688zz Bal Lager 8x16x5mm | 1 |
| LM8UU 8x15x24mm Massief Polymer Lineair Lager | 1 |
| Klettbandjes | 1 |
Benodigde Tools en Machines
- 3D-printer (algemeen) - Creality3D Ender 3 V2 gebruikt
- Solderbout (algemeen) - optioneel
- Metalezager (algemeen)
Apps en Online Services
- Arduino IDE
- 3D-ontwerpprogramma - Onshape gebruikt (optioneel)
- Ultimaker Cura - Slicer voor 3D-printen
Over dit Project
De afgelopen maanden heeft de COVID-19 pandemie wereldwijde chaos gezaaid. Er zijn ongelooflijk veel besmettingen en helaas veel slachtoffers. Een van de belangrijkste maatregelen die de Wereldgezondheidsorganisatie adviseert is constant handwassen met zeep of handdesinfectie. Maar een van de grootste problemen is de manier waarop we dit doen: fysiek de dispenser aanraken, wat het hele doel van de actie teniet doet en zelfs een groot infectierisico creëert.
Daarom besloot ik, een 14-jarige jongen, iets te maken met een Arduino Nano bord dat dit probleem kon bestrijden. Ik wilde dat het goedkoop was en makkelijk aan veel verschillende dispensers bevestigd kon worden. En dat is precies wat ik maakte: een accessoire dat aan de meeste handdesinfectie/zeep dispensers bevestigd kan worden en ze volledig handvrij en automatisch maakt.
Stap 1: Begrijp het Mechanisme
Een stappenmotor is via een koppeling verbonden met een spindel. De 3D-geprinte druker is aan één kant met de spindel verbonden via een moer en aan de andere kant ondersteund door een 3D-geprinte staaf. De staaf voorkomt dat de draaiende kracht van de spindel de druker doet draaien; in plaats daarvan beweegt de druker lineair. Zo kunnen we de stappenmotor in elke richting (heen en weer), op elke snelheid en voor zoveel stappen als we willen laten bewegen.
Stap 2: Begrijp Hoe het Apparaat Werkt
Wanneer de IR-obstakelsensor, bevestigd aan de 3D-geprinte IR-houder, geactiveerd wordt door je hand enkele centimeters eronder te houden, gaat de druker een vaste afstand naar beneden (drukt de dispenser in), wacht 2 seconden en keert dan terug naar de beginpositie door naar boven te gaan tot de eindschakelaar geactiveerd wordt. Bij de eerste inschakeling gaat de druker ook eerst naar boven tot de schakelaar triggerd, als een soort zelfkalibratie.
Met de klettbandjes wikkel je de handdesinfectiefless van je keuze om het apparaat en trek je het zo strak mogelijk. Nu is de Automatische Handdesinfectie Dispenser functioneel!
Stap 3: Verzamel Benodigde Componenten
Alle links naar de benodigde componenten staan in de sectie "Things".
Stap 4: Ontwerp Aangepaste Onderdelen
Alle 3D-geprinte onderdelen zijn door mij ontworpen in Onshape. Je hoeft je geen zorgen te maken over 3D-ontwerp omdat ik alle .stl-bestanden in de sectie "Attachments" heb gegeven.
Stap 5: 3D-printen van Aangepaste Kunststofonderdelen
Ik heb de onderdelen geprint op mijn Creality3D Ender 3 V2 in grijs en wit PLA bij 0,2mm laaghogte en 20% infil. Als je geen toegang hebt tot een 3D-printer, kun je proberen karton of hout te gebruiken.
Stap 6: De Stappenmotor Modden
De 28BYJ-48 stappenmotor is klein en goedkoop. Het is een unipolaire stappenmotor met een koppel van ongeveer 300 g/cm, wat voor ons project werkt, maar ik wil het sterker voor betere resultaten. We kunnen het koppel naar 800+ g/cm verhogen door het om te zetten naar een bipolaire motor met een simpele mod!
Bipolaire stappenmotoren hebben grotere spoelen en dus veel meer koppel.
- Verwijder de blauwe afdekking met een schroevendraaier.
- Snij het midden spoor dat naar de rode draad gaat volledig door met een mes.
- Zorg dat het helemaal niet meer verbindt.
- Snij de rode draad aan beide kanten af.
- Bevestig de blauwe afdekking weer (misschien moeten 2 steuntjes afgezaagd worden).
Nu heb je je eigen bipolaire 28BYJ-48 stappenmotor met ongeveer 2,5x het oorspronkelijke koppel. Je hebt nu wel een bipolaire stappenmotordriver nodig zoals de DRV8825 die ik gebruik. De minimale voedingsspanning voor de driver is 8,4V en onze motor is 5V. Maar geen zorgen, de bipolaire versie van de motor kan die spanning prima aan!
Stap 7: DIY Klettbandjes x2
Het is tijd om de klettbandjes te maken die het accessoire aan de dispenser bevestigen. Als je al klettbandjes hebt, mag je die gebruiken.
Maak ze zo lang of kort als je wilt, maar ik raad aan: één deel 30-40cm en het andere 4-7cm. Stap de twee delen samen. Zorg dat de kanten die samengestaped worden beide ruw of beide zacht zijn. Je hebt er twee nodig.
Stap 8: Schakeling
- Verbind de 9V-batterij min met Arduino GND met een 100µF elektrolytcondensator ertussen (de kant met de witte streep is de min/kathode). Verbind de 9V-plus met een aan/uit-schakelaar en dan naar Vin aan de pluskant van de condensator.
- Sluit de IR-obstakelsensor aan: VCC op 5V, GND op GND, OUT op digitale pin 9.
- Sluit de eindschakelaar aan: gemeenschappelijke poot op 5V, normaal open op digitale pin 8 en naar GND via een 1kΩ weerstand.
- Plaats de DRV8825 bipolaire motordriver op het breadboard. Verbinden: Vmot met Vin van Arduino, beide GND's met GND, Dir-pin met digitale pin 2, Step-pin met digitale pin 3, Enable-pin met digitale pin 4. Verbind Reset en Sleep met elkaar.
- Sluit de 28BYJ-48 aan: blauwe kabel op A2, gele kabel op A1, oranje kabel op B1, roze kabel op B2.
De elektronica is nu verbonden!
Stap 9: Programmeren
const int dirPin = 2;
const int stepPin = 3;
const int enablePin = 4;
const int stepsPerRevolution = 6000; // één 360 graden draai is 2048 stappen
int endStop = 8;
int irSensor = 9;
void setup() {
pinMode(endStop, INPUT);
pinMode(irSensor, INPUT);
pinMode(stepPin, OUTPUT);
pinMode(dirPin, OUTPUT);
pinMode(enablePin, OUTPUT);
digitalWrite(enablePin, LOW); // Driver inschakelen
while(digitalRead(endStop) == LOW) {
digitalWrite(dirPin, HIGH); // Tegen de klok in
for(int x = 0; x < 1; x++) {
digitalWrite(stepPin, HIGH);
delayMicroseconds(2000);
digitalWrite(stepPin, LOW);
delayMicroseconds(2000);
}
}
digitalWrite(enablePin, HIGH); // Driver uitschakelen om stroom te besparen
}
void loop() {
if(digitalRead(irSensor) == 0) { // Hand gedetecteerd
digitalWrite(enablePin, LOW);
digitalWrite(dirPin, LOW); // Met de klok mee
for(int x = 0; x < stepsPerRevolution; x++) {
digitalWrite(stepPin, HIGH);
delayMicroseconds(2000);
digitalWrite(stepPin, LOW);
delayMicroseconds(2000);
}
delay(2000); // 2 seconden wachten
while(digitalRead(endStop) == LOW) {
digitalWrite(dirPin, HIGH); // Tegen de klok in terug
for(int x = 0; x < 1; x++) {
digitalWrite(stepPin, HIGH);
delayMicroseconds(2000);
digitalWrite(stepPin, LOW);
delayMicroseconds(2000);
}
}
digitalWrite(enablePin, HIGH);
}
}
Stap 10: Montage
Deksel Montage
Plaats het klettbandje in de opening, leg de houder erbovenop en schroef ze vast. x2. Schroef de klett-greep aan het deksel. Het deksel is compleet! x2
Druker Montage
Duw het lineaire lager in het rechter gat tot in het midden. Schroef de T8-moer in het linker gat van de druker met 4 schroeven.
Electronica Behuizing Montage
Plaats je schakeling in de electronica behuizing. Voer de kabels van de stappenmotor, de schakelaar en de IR-sensor door het gat.
IR-obstakelsensor Houder Montage
Schroef de IR-obstakelsensor in het gat en gebruik een moer om de pasvastheid te verzorgen en de positie af te stellen.
Eindmontage!
- Plaats het lager.
- Voeg de T8-spindel en de Druker-montage toe. (De T8-spindel moet 70mm tot 82mm lang zijn. Als je een langere spindel hebt, zaag hem tot de gewenste lengte met een metalen zaag. Anders kun je er een 3D-printen.)
- Draai de koppeling vast op de motoras. Daarna vast op de T8-spindel. Tot slot de motor met twee schroeven aan de basis schroeven.
- Plaats de eindschakelaar.
- Schroef het deksel met 5 schroeven aan de basis.
- Schroef de IR-obstakelsensor houder met 2 schroeven aan de voorkant van de basis.
- Schroef de electronica behuizing met 3 schroeven aan het deksel. Klaar! Het project is voltooid!
Conclusie
Dit project van een accessoire dat de meeste handdesinfectie/zeep dispensers volledig automatisch en handvrij maakt, is eindelijk af!
Bedankt voor je tijd!!
Code
Automatic_Hand_Sanitizer_Transformer.code (Arduino)
// Pin definities & motor stappen per omwenteling
const int dirPin = 2;
const int stepPin = 3;
const int enablePin = 4;
const int stepsPerRevolution = 6000;
int endStop = 8;
int irSensor = 9;
void setup() {
pinMode(endStop, INPUT);
pinMode(irSensor, INPUT);
pinMode(stepPin, OUTPUT);
pinMode(dirPin, OUTPUT);
pinMode(enablePin, OUTPUT);
digitalWrite(enablePin, LOW);
while(digitalRead(endStop) == LOW) {
digitalWrite(dirPin, HIGH);
for(int x = 0; x < 1; x++) {
digitalWrite(stepPin, HIGH);
delayMicroseconds(2000);
digitalWrite(stepPin, LOW);
delayMicroseconds(2000);
}
}
digitalWrite(enablePin, HIGH);
}
void loop() {
if(digitalRead(irSensor) == 0) {
digitalWrite(enablePin, LOW);
digitalWrite(dirPin, LOW);
for(int x = 0; x < stepsPerRevolution; x++) {
digitalWrite(stepPin, HIGH);
delayMicroseconds(2000);
digitalWrite(stepPin, LOW);
delayMicroseconds(2000);
}
delay(2000);
while(digitalRead(endStop) == LOW) {
digitalWrite(dirPin, HIGH);
for(int x = 0; x < 1; x++) {
digitalWrite(stepPin, HIGH);
delayMicroseconds(2000);
digitalWrite(stepPin, LOW);
delayMicroseconds(2000);
}
}
digitalWrite(enablePin, HIGH);
}
}
3D-geprinte Onderdelen
- Hoofd basis van het apparaat
- Druk onderdeel (drukt de dispenser in)
- Deksel van het apparaat (behuizing voor elektronica)
- Klettband mechanisme (2x nodig)
- Steun voor het druk onderdeel
- IR-sensor houder
- Klettband houder op deksel (2x nodig)
Schema
Zie het schakelschema voor de complete bedrading.
Productieproces
- Bouw je eigen UFO Attack Game met Arduino UNO & MAX7219 Display
- DIY Automatische Treinbesturing met Arduino – Eenvoudig, Betrouwbaar en Aanpasbaar
- 3D RGB Arduclock – Bluetooth LED Tijdstuk met Real-Time Clock
- Riviergezondheidsmonitor: Arduino-gebaseerd Waterkwaliteitssysteem
- Een Arduino Iron Man bouwen: onderdelen, sensoren en stapsgewijze handleiding
- Interactieve Joystick Game met Arduino en LED Feedback
- Find Me: Slimme Item Locator met Arduino en Bluetooth
- DIY Arduino Luchtbevochtiger Controller met Relais – Veilige Hoogspanningsopstelling
- Arduino-aangedreven mini-rover: Bouw je eigen autonome robot
- Bouw een Aangepaste Arduino Joystick Stuurwiel voor Gaming
- Arduino 101: Bouw een teller met DHT11 sensor & LCD display