Ce projet a pour objectif de concevoir et de réaliser une poubelle intelligente capable de s'ouvrir automatiquement lorsqu'une main ou un objet est détecté à proximité. Il met en œuvre une carte ESP8266 NodeMCU, un capteur à ultrasons HC-SR04 et un servomoteur SG90 afin d'offrir une solution pratique, hygiénique et automatisée.
Ce projet permet également de découvrir les principes de la programmation embarquée, de l'acquisition de données par capteur et de la commande d'un actionneur dans le cadre des systèmes intelligents.
Fonctionnement du système
Le capteur à ultrasons HC-SR04 mesure en permanence la distance entre la poubelle et un objet situé devant elle. Lorsque cette distance devient inférieure à un seuil prédéfini (par exemple 15 cm), l'ESP8266 NodeMCU interprète cette information comme une demande d'ouverture.
La carte envoie alors un signal de commande au servomoteur SG90, qui fait pivoter le couvercle de la poubelle jusqu'à la position ouverte. Après un court délai permettant à l'utilisateur de jeter ses déchets, le servomoteur ramène automatiquement le couvercle à sa position initiale.
Le système fonctionne de manière autonome et continue, assurant une ouverture et une fermeture automatiques sans aucun contact physique avec la poubelle.
1- Carte ESP8266 NodeMCU

L'ESP8266 NodeMCU est une carte de développement basée sur le microcontrôleur ESP8266. Elle assure le contrôle et la coordination de tous les composants du système. Elle exécute le programme qui lit les données du capteur HC-SR04 et commande le servomoteur SG90 en fonction de la distance détectée.
2. Capteur ultrasonique HC-SR04

Le HC-SR04 est un capteur de distance qui fonctionne grâce à l'émission et à la réception d'ondes ultrasonores. Il permet de détecter la présence d'une main ou d'un objet devant la poubelle et de mesurer sa distance.
3. Servomoteur

Le servomoteur SG90 est un moteur compact permettant de contrôler précisément la position angulaire du couvercle de la poubelle. Il reçoit les ordres de l'ESP8266 et effectue les mouvements d'ouverture et de fermeture.
4. Câbles de Connexion (Jumper Wires)

Les fils de connexion permettent de relier électriquement les différents composants entre eux. Ils assurent la transmission de l'alimentation et des signaux de commande entre l'ESP8266, le capteur HC-SR04 et le servomoteur SG90.
5. Plaque d'essai

La plaque d’essai (breadboard) facilite le montage du circuit sans soudure. Elle permet de réaliser rapidement les connexions, de tester le fonctionnement du système et de modifier le câblage si nécessaire avant une intégration définitive.


1- Connexion du capteur HC-SR04 à la carte ESP8266 NodeMCU
| Capteur HC-SR04 | ESP8266 NodeMCU |
|---|---|
| VCC | 3V3 |
| GND | GND |
| Trig | D0 |
| Echo | D1 |
2- Connexion du servomoteur à la carte ESP8266 NodeMCU
| Servomoteur | ESP8266 NodeMCU |
|---|---|
| Fil rouge (+) | 5V |
| Fil marron (-) | GND |
| Fil jaune (S) | D2 |
Ce programme Micropython réalise un système d’ouverture automatique de couvercle à l’aide d’un capteur à ultrasons HC-SR04 et d’un servomoteur.
Vous devez importer cette bibliothèque hc-sr04 pour utiliser la capteur HC-SR04.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
import machine from machine import Pin, SoftI2C from hcsr04 import HCSR04 import time from servo import Servo # ========================================================== # Initialisation du capteur ultrason HC-SR04 # ========================================================== # trigger_pin : envoie l'impulsion ultrasonique # echo_pin : reçoit l'écho pour calculer la distance # echo_timeout_us : temps maximum d'attente de l'écho sensor = HCSR04(trigger_pin=16, echo_pin=5, echo_timeout_us=1000000) # ========================================================== # Initialisation du servomoteur # ========================================================== # Servo connecté à la broche GPIO 4 # Position initiale : 0° (fermé ou position de repos) servo_motor = Servo(pin=4) servo_motor.move(0) # ========================================================== # Boucle principale du programme # ========================================================== while True: # Mesure de la distance entre le capteur et un objet en cm distance = sensor.distance_cm() # Affichage de la distance (optionnel pour debug) # print('distance =', distance, 'cm') # ====================================================== # Condition de détection d’un objet proche # ====================================================== # Si un objet est détecté à moins de 5 cm : # le servomoteur s'active (ouvre la poubelle / porte) if distance < 5: servo_motor.move(90) # ouverture à 90° time.sleep_ms(3000) # maintien ouvert pendant 3 secondes else: servo_motor.move(0) # retour à la position fermée # Pause pour éviter les mesures trop rapides time.sleep_ms(500) |
Explication du programme :
Ce programme MicroPython permet de réaliser un système automatique de détection et d’action basé sur un capteur ultrason et un servomoteur. Il est conçu pour fonctionner sur une carte microcontrôleur comme l’ESP32 ou l’ESP8266.
Tout d’abord, le programme importe les bibliothèques nécessaires. Il utilise machine pour la gestion du matériel, HCSR04 pour le capteur ultrason, time pour les temporisations, et une bibliothèque Servo pour contrôler le servomoteur. Ces éléments permettent de connecter et piloter les composants électroniques.
Ensuite, le capteur HC-SR04 est initialisé en définissant ses broches : une broche d’émission (trigger) et une broche de réception (echo). Le servomoteur est également initialisé sur une broche GPIO et placé au départ à la position 0°, ce qui correspond à l’état fermé ou repos.
Après l’initialisation, le programme entre dans une boucle infinie. Dans cette boucle, le capteur mesure en continu la distance entre lui et un objet placé devant lui. Cette valeur est stockée dans une variable.
Puis, le programme analyse cette distance. Si elle est inférieure à 5 cm, cela signifie qu’un objet ou une main est proche du capteur. Dans ce cas, le servomoteur tourne à 90° pour déclencher une action, comme ouvrir un mécanisme.
Si la distance est supérieure à 5 cm, le servomoteur revient automatiquement à sa position initiale (0°). Cela permet de refermer le système lorsque aucun objet n’est détecté.
Enfin, une petite pause de 500 millisecondes est ajoutée dans la boucle pour éviter des mesures trop rapides et stabiliser le fonctionnement du système.
En résumé, ce programme permet de créer un système intelligent qui détecte la présence d’un objet et réagit automatiquement en ouvrant ou fermant un mécanisme.
La robotique éducative joue un rôle important dans l'éducation des enfants et des jeunes en les aidant à acquérir des compétences en science et technologie.
Dans ce cadre notre site web représente une excellente ressource pour les parents, les enseignants et les enfants qui souhaitent découvrir la robotique.
Zaouiet Kontech-Jemmel-Monastir-Tunisie
Site robotique réalisé par Mohamed Ali Haj Salah - Prof Info