Distributeur de gel hydroalcoolique automatique intelligent – Hygiène sans contact pilotée par Arduino
Composants et fournitures
| Composant | Quantité |
|---|---|
| Arduino Nano R3 | 1 |
| Driver DRV8825 pour moteurs pas à pas (Theremino) | 1 |
| Fils de connexion (jumper wires) | 1 |
| Plaque d'essai (breadboard) – 2 mini breadboards utilisées | 1 |
| Pile 9V | 1 |
| Connecteur pile 9V | 1 |
| Résistance 1 kΩ | 1 |
| Condensateur 100 µF | 1 |
| Moteur pas à pas 28BYJ-48 4 phases 5V DC | 1 |
| Vis M3 (longueur 8 à 20 mm) | 19 |
| Capteur infrarouge d'évitement d'obstacles pour Arduino | 1 |
| Fin de course KW12-3 – Micro levier à rouleau NO/NC | 1 |
| Coupleur rigide aluminium 5mm vers 8mm | 1 |
| Vis trapézoïdale T8-300mm avec écrou laiton, pas 2mm | 1 |
| Interrupteur On/Off | 1 |
| Gel hydroalcoolique (distributeur de votre choix) | 1 |
| Roulement à billes 688zz 8x16x5mm | 1 |
| Roulement linéaire polymère LM8UU 8x15x24mm | 1 |
| Attaches Velcro | 1 |
Outils et machines nécessaires
- Imprimante 3D (Creality Ender 3 V2 utilisée)
- Fer à souder (optionnel)
- Scie à métaux
Applications et services en ligne
- Arduino IDE
- Logiciel de conception 3D (Onshape utilisé – optionnel)
- Ultimaker Cura (trancheur pour impression 3D)
À propos du projet
Depuis des mois, la pandémie de COVID-19 sème le chaos mondial. Infections innombrables, hélas nombreux décès. L'OMS recommande le lavage fréquent des mains au savon ou au gel hydroalcoolique. Mais le problème majeur est la façon de le faire : en touchant physiquement le distributeur, ce qui annule l'intérêt de l'action et crée un risque de contamination. Moi, un garçon de 14 ans, j'ai décidé de créer avec une carte Arduino Nano une solution à ce problème, qui soit peu coûteuse et facilement adaptable à de nombreux distributeurs différents, rapidement et efficacement ! C'est exactement ce que j'ai réalisé : un accessoire qui se fixe sur la plupart des distributeurs de gel/savon et les rend entièrement automatiques et sans contact.
Étape 1 : Comprendre le mécanisme
Un moteur pas à pas est couplé à une vis via un coupleur. La pièce imprimée 3D (le « presseur ») est connectée d'un côté à la vis via un écrou, et de l'autre côté soutenue par une tige imprimée 3D. Cette tige empêche la force de rotation de la vis de faire tourner le presseur : celui-ci se déplace linéairement. Ainsi, on peut commander le moteur pas à pas dans les deux sens, à n'importe quelle vitesse et pour un nombre de pas précis.
Étape 2 : Comprendre le fonctionnement de l'appareil
Le concept : quand le capteur IR d'obstacle (fixé sur son support imprimé 3D) est activé en passant la main quelques centimètres dessous, le presseur descend d'une distance prédéfinie (appuie sur le distributeur), attend 2 secondes, puis remonte jusqu'à ce que le fin de course soit activé. De même, à la mise sous tension, le presseur monte jusqu'au fin de course et s'arrête là – une sorte d'auto-calibration pour être prêt à l'emploi.
Puis, avec les attaches Velcro, on enroule le distributeur de son choix et on serre au maximum. Le distributeur automatique est fonctionnel !
Étape 3 : Rassembler les composants nécessaires
Tous les liens sont dans la section « Composants ».
Étape 4 : Concevoir les pièces personnalisées
Toutes les pièces imprimées 3D ont été conçues sur Onshape. Pas de souci si vous ne savez pas modéliser : tous les fichiers .stl sont fournis dans la section « Pièces jointes ».
Étape 5 : Impression 3D des pièces plastiques
Imprimées sur Creality Ender 3 V2 en PLA gris et blanc, hauteur de couche 0,2 mm, remplissage 20 %. Sans imprimante 3D, on peut essayer carton ou bois.
Étape 6 : Modifier le moteur pas à pas (modding)
Le 28BYJ-48 est un petit moteur pas à pas unipolaire bon marché, couple ~300 g/cm. On peut augmenter le couple à 800+ g/cm en le convertissant en bipolaire avec une modification simple !
- Retirez le capuchon bleu avec un tournevis.
- Coupez complètement la piste centrale qui va vers le fil rouge (au cutter).
- Vérifiez qu'il n'y a plus aucune connexion.
- Coupez le fil rouge des deux côtés.
- Remettez le capuchon bleu (j'ai dû couper 2 de ses supports pour le remettre).
Maintenant vous avez un 28BYJ-48 bipolaire avec ~2,5 fois le couple initial. Il faut maintenant un driver bipolaire comme le DRV8825. La tension minimale du driver est 8,4V, le moteur est en 5V, mais la version bipolaire supporte sans problème cette tension !
Étape 7 : Fabriquer 2 attaches Velcro
Si vous avez déjà des attaches Velcro pour câbles, utilisez-les. Sinon :
- Coupez une partie à 30-40 cm, l'autre à 4-7 cm.
- Agrafez les deux parties ensemble (côtés rugueux ensemble ou côtés doux ensemble).
- Il en faut deux.
Étape 8 : Câblage électronique
- Alimentation : Masse de la pile 9V → Arduino GND avec condensateur 100µF entre les deux (ligne blanche = cathode/masse). 9V → interrupteur On/Off → Vin (anode du condensateur).
- Capteur IR : VCC → 5V, GND → GND, OUT → Broche numérique 9.
- Fin de course : Patte commune → 5V, Normalement ouvert → Broche numérique 8 et vers GND via résistance 1kΩ.
- Driver DRV8825 : Vmot → Vin Arduino, les deux GND → GND. Dir → D2, Step → D3, Enable → D4. Reset et Sleep reliés ensemble.
- Moteur 28BYJ-48 (bipolaire) : Bleu → A2, Jaune → A1, Orange → B1, Rose → B2.
L'électronique est enfin connectée !
Étape 9 : Programmation
Le code complet est dans la section « Code ». Voici les points clés :
dirPin = 2,stepPin = 3,enablePin = 4stepsPerRevolution = 6000(un tour complet = 2048 pas)endStop = 8,irSensor = 9- Setup : Auto-calibration – le moteur tourne anti-horaire jusqu'au fin de course, puis driver désactivé.
- Loop : Si capteur IR détecte une main (valeur 0) → active driver, tourne horaire 6000 pas, attend 2s, puis tourne anti-horaire jusqu'au fin de course, désactive driver.
Étape 10 : Assemblage final
Assemblage du couvercle : Placez l'attache Velcro dans l'encoche, ajoutez le support par-dessus, vissez ensemble (x2). Vissez la prise Velcro sur le couvercle.
Assemblage du presseur : Insérez le roulement linéaire dans le trou droit jusqu'au milieu. Vissez l'écrou T8 dans le trou gauche du presseur avec 4 vis.
Boîtier électronique : Placez le circuit dans le boîtier. Faites passer les câbles du moteur, de l'interrupteur et du capteur IR par le trou.
Support capteur IR : Vissez le capteur IR dans le trou, utilisez un écrou pour serrer et ajuster la position.
Assemblage final : Insérez le roulement. Ajoutez la vis T8 et l'assemblage presseur (vis T8 de 70 à 82 mm – sciez si plus long). Serrez le coupleur sur l'axe du moteur, puis sur la vis T8. Vissez le moteur sur la base (2 vis). Ajoutez le fin de course. Vissez le couvercle sur la base (5 vis). Vissez le support capteur IR sur l'avant de la base (2 vis). Vissez le boîtier électronique sur le couvercle (3 vis). Projet terminé !
Conclusion
Cet accessoire qui transforme la plupart des distributeurs de gel/savon en dispositifs entièrement automatiques et sans contact est enfin fini !! Merci pour votre temps !!
Code
Automatic_Hand_Sanitizer_Transformer.code (Arduino)
// Connexions des broches et pas par tour du moteur
const int dirPin = 2;
const int stepPin = 3;
const int enablePin = 4;
const int stepsPerRevolution = 6000; // un tour complet (360°) = 2048 pas
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); // Active le driver
// Auto-calibration au démarrage
while (digitalRead(endStop) == LOW) {
digitalWrite(dirPin, HIGH); // Sens anti-horaire
for (int x = 0; x < 1; x++) {
digitalWrite(stepPin, HIGH);
delayMicroseconds(2000);
digitalWrite(stepPin, LOW);
delayMicroseconds(2000);
}
}
digitalWrite(enablePin, HIGH); // Désactive le driver pour économiser le courant
}
void loop() {
if (digitalRead(irSensor) == 0) { // Main détectée
digitalWrite(enablePin, LOW);
digitalWrite(dirPin, LOW); // Sens horaire
for (int x = 0; x < stepsPerRevolution; x++) {
digitalWrite(stepPin, HIGH);
delayMicroseconds(2000);
digitalWrite(stepPin, LOW);
delayMicroseconds(2000);
}
delay(2000); // Attend 2 secondes
// Retour à la position initiale
while (digitalRead(endStop) == LOW) {
digitalWrite(dirPin, HIGH); // Sens anti-horaire
for (int x = 0; x < 1; x++) {
digitalWrite(stepPin, HIGH);
delayMicroseconds(2000);
digitalWrite(stepPin, LOW);
delayMicroseconds(2000);
}
}
digitalWrite(enablePin, HIGH); // Désactive le driver
}
}
Pièces imprimées 3D
- Base principale de l'appareil
- Pièce qui presse le distributeur (le « presseur »)
- Couvercle de l'appareil (boîtier électronique)
- Mécanisme d'attache Velcro (x2)
- Support pour la pièce presseur
- Support connecté à la base, supporte le capteur IR
- Fixations Velcro sur le couvercle (x2)
Schéma de câblage
Disponible dans la section « Schémas ».
Processus de fabrication
- Jeu UFO Attack DIY avec Arduino UNO et Afficheur MAX7219
- Contrôle Automatique de Train Miniature Arduino – Simple, Fiable et Personnalisable
- Horloge 3D RGB Arduclock – Montre LED Bluetooth avec horloge temps réel
- Surveillance de la Qualité de l'Eau : Système Arduino MKR1000 pour Rivières et Lacs
- Construire un Iron Man animé avec Arduino : capteurs, sons et relais
- Jeu interactif joystick + LEDs avec Arduino
- Find Me : Localisateur d'objets intelligent avec Arduino et Bluetooth
- Contrôleur d'humidificateur DIY avec Arduino et relais – Installation haute tension sécurisée
- Petit Rover Arduino : Construisez Votre Propre Robot Autonome