MedocSkill : Distributeur de Médicaments Sécurisé par RFID
Ce qui nous a inspiré
L'idée nous est venue d'un constat simple : dans les hôpitaux et cliniques, les erreurs de médication représentent une part importante des incidents médicaux. Selon certaines études, les erreurs d'administration de médicaments peuvent représenter jusqu'à un tiers des erreurs médicales évitables. On s'est demandé : et si un système automatisé pouvait distribuer les médicaments uniquement à la bonne personne, au bon moment ?
C'est ainsi que MedocSkill est né, un distributeur automatique de médicaments sécurisé par carte RFID, où chaque patient possède sa propre carte d'accès unique liée à son compartiment de médicaments.
Ce que nous avons appris
Ce projet nous a permis de découvrir et maîtriser plusieurs concepts fondamentaux :
Électronique & Câblage
- La gestion des pins limitées sur un Arduino Uno R3, avec le RFID (SPI), le stepper, le buzzer et le LCD, chaque pin compte
- La différence entre buzzer passif et actif, seul le passif permet de
jouer des mélodies via
tone() - L'importance du 3.3V pour le RC522, le brancher en 5V peut l'endommager
Programmation
- Le protocole SPI pour la communication avec le module RFID
- La gestion d'un moteur pas-à-pas avec la bibliothèque
Stepper.h - L'utilisation du LCD en mode 4 bits avec
LiquidCrystal.h
Mathématiques du moteur
Le moteur 28BYJ-48 effectue 2048 pas pour un tour complet de 360 degrés. Pour diviser le plateau en 4 compartiments égaux, cela représente 512 pas par compartiment, soit 90 degrés. Le système calcule toujours le chemin le plus court entre la position actuelle et le compartiment cible.
Comment on a construit le projet
Matériel utilisé
- Arduino Uno R3 (Elegoo Starter Kit)
- Module RFID RC522 + 5 cartes RFID
- Moteur pas-à-pas 28BYJ-48 + driver ULN2003
- LCD 1602 (HD44780, mode parallèle)
- Buzzer passif
- Breadboard + fils dupont + résistances + potentiomètre
- Beaucoup de carton lol
Les défis rencontrés
1. Manque de pins
Notre plus grand défi. Avec le RFID, le stepper, le buzzer et le LCD, on a rapidement manqué de pins digitales, surtout qu'on voulait implémenter d'autres capteurs comme le capteur de température et humidité pour la conservation des médicaments. La solution : utiliser les pins analogiques A0-A3 comme pins digitales pour le LCD.
2. L'overshoot du moteur
Le moteur 28BYJ-48 a un jeu mécanique naturel qui causait un léger dépassement à chaque rotation, en plus du frottement avec la paroi de notre structure qui ralentissait le tout. On a résolu ça en réduisant la vitesse et en ajustant le nombre de pas à environ 505 à 510 au lieu de 512.
3. Le LCD qui n'affichait rien
Le rétroéclairage fonctionnait mais rien ne s'affichait. Cause : le potentiomètre de contraste mal configuré. La leçon : toujours tester le LCD avec un sketch minimal avant d'intégrer.
4. Orientation du LCD
On a monté le LCD à l'envers dans notre boîtier. Les lettres apparaissaient physiquement retournées. Solution : démonter et retourner le LCD, puis recâbler.
5. Gestion de la position du moteur
Il fallait que le système mémorise la position actuelle du plateau
pour calculer la rotation minimale nécessaire. On a utilisé une variable
currentCompartment qui se met à jour à chaque mouvement.
Résultat final
MedocSkill est un prototype fonctionnel de distributeur sécurisé qui :
- Reconnaît 4 patients par carte RFID unique
- Tourne automatiquement vers le bon compartiment
- Revient en position de sécurité après chaque accès
- Émet une alerte sonore à l'accès autorisé ou refusé
- Affiche les informations en temps réel sur le LCD
Log in or sign up for Devpost to join the conversation.