ESP8266 - Capteur à ultrasons
Ce tutoriel vous explique comment utiliser l'ESP8266 et un capteur ultrasonique pour mesurer la distance avec des obstacles ou des objets. En détail, nous apprendrons :
- Comment fonctionne le capteur ultrasonique
- Comment connecter le capteur ultrasonique à l'ESP8266
- Comment programmer l'ESP8266 pour mesurer la distance à l'aide du capteur ultrasonique
- Comment filtrer le bruit des mesures de distance du capteur ultrasonique dans le code ESP8266
Préparation du matériel
1 | × | ESP8266 NodeMCU | |
1 | × | Micro USB Cable | |
1 | × | Ultrasonic Sensor | |
1 | × | Jumper Wires | |
1 | × | (Optional) 5V Power Adapter for ESP8266 | |
1 | × | (Optional) ESP8266 Screw Terminal Adapter |
Or you can buy the following sensor kits:
1 | × | DIYables Sensor Kit (30 sensors/displays) | |
1 | × | DIYables Sensor Kit (18 sensors/displays) |
À propos du capteur ultrasonique
Le capteur ultrasonique HC-SR04 est utilisé pour déterminer la distance à un objet via l'utilisation d'ondes ultrasonores.
Le brochage du capteur ultrasonique
Le capteur ultrasonique HC-SR04 possède quatre broches :
- Broche VCC : doit être connectée à VCC (5V)
- Broche GND : doit être connectée à GND (0V)
- Broche TRIG : cette broche reçoit le signal de commande (impulsion) de l'ESP8266.
- Broche ECHO : cette broche envoie un signal (impulsion) à l'ESP8266. L'ESP8266 mesure la longueur de l'impulsion pour calculer la distance.
Comment ça marche
i. Le microcontrôleur génère une impulsion de 10 microsecondes sur la broche TRIG, ce qui déclenche l'émission d'ondes ultrasoniques par le capteur ultrasonique.
i. L'onde ultrasonique est réfléchie après avoir frappé un obstacle.
i. Le capteur ultrasonique détecte ensuite l'onde ultrasonique réfléchie et mesure son temps de parcours.
i. Le capteur ultrasonique génère une impulsion vers la broche ECHO, la durée de l'impulsion étant égale au temps de parcours de l'onde ultrasonique.
i. Le microcontrôleur mesure la durée de l'impulsion sur la broche ECHO et calcule la distance entre le capteur et l'obstacle.
Comment obtenir la distance à partir d'un capteur à ultrasons
i. Pour calculer la distance depuis le capteur ultrasonique, deux étapes doivent être suivies (1 et 6 dans la section Comment ça marche) :
i. Générer une impulsion de 10 microsecondes sur la broche TRIG.
i. Mesurer la durée de l'impulsion sur la broche ECHO.
i. Calculer la distance entre le capteur et l'obstacle.
Calcul de la distance
Nous avons :
- Le temps de voyage de l'onde ultrasonore (µs) : travel_time = pulse_duration
- La vitesse de l'onde ultrasonore : speed = SPEED_OF_SOUND = 340 m/s = 0,034 cm/µs
Alors :
- Distance de parcours de l'onde ultrasonore (cm) : travel_distance = vitesse × temps_de_parcours = 0.034 × durée_d'impulsion
- Distance entre le capteur et l'obstacle (cm) : distance = distance_de_parcours / 2 = 0.034 × durée_d'impulsion / 2 = 0.017 × durée_d'impulsion
ESP8266 - Capteur ultrasonique
Nous pouvons utiliser deux broches d'un ESP8266 pour mesurer la distance à partir d'un capteur ultrasonique : une broche est connectée à la broche TRIG pour générer une impulsion de 10 µs, et l'autre broche est connectée à la broche ECHO pour mesurer l'impulsion provenant du capteur.
Diagramme de câblage
This image is created using Fritzing. Click to enlarge image
Voir plus dans l'agencement des broches de l'ESP8266 et comment alimenter l'ESP8266 et d'autres composants.
Comment programmer pour un capteur ultrasonique
- Générez une impulsion de 10 microsecondes sur la broche D5 de l'ESP8266 en utilisant les fonctions digitalWrite() et delayMicroseconds(). Par exemple :
- Définissez la broche sur HIGH avec digitalWrite(), puis attendez 10 microsecondes avec delayMicroseconds(), puis définissez la broche sur LOW avec digitalWrite().
- Mesurez la durée de l'impulsion (µs) sur la broche D6 de l'Arduino en utilisant la fonction pulseIn(). Par exemple :
- Calculez la distance (cm) :
Code ESP8266
Étapes rapides
Pour commencer avec ESP8266 sur Arduino IDE, suivez ces étapes :
- Consultez le tutoriel comment configurer l'environnement pour ESP8266 sur Arduino IDE si c'est votre première utilisation de l'ESP8266.
- Câblez les composants comme indiqué dans le schéma.
- Connectez la carte ESP8266 à votre ordinateur à l'aide d'un câble USB.
- Ouvrez Arduino IDE sur votre ordinateur.
- Choisissez la bonne carte ESP8266, telle que (par exemple NodeMCU 1.0 (Module ESP-12E)), et son port COM respectif.
- Copiez le code et ouvrez-le dans Arduino IDE.
- Cliquez sur le bouton Télécharger dans Arduino IDE pour compiler et télécharger le code sur ESP8266.
- Ouvrez le moniteur série
- Déplacez votre main à proximité du capteur ultrasonique
- Vérifiez la distance entre le capteur et votre main affichée sur le moniteur série
Explication du code
Découvrez l'explication ligne par ligne contenue dans les commentaires du code source !
Comment filtrer le bruit des mesures de distance du capteur ultrasonique
Le résultat de mesure d'un capteur ultrasonique peut inclure du bruit, ce qui peut entraîner des opérations non désirées dans certaines applications. Pour éliminer le bruit, l'algorithme suivant peut être utilisé :
- I. Prenez plusieurs mesures et stockez-les dans un tableau
- I. Triez le tableau dans l'ordre croissant
- I. Filtrez les bruits
- Certains des échantillons les plus petits sont considérés comme du bruit → ignorez-les
- Certains des échantillons les plus grands sont considérés comme du bruit → ignorez-les
- Calculez la moyenne des échantillons du milieu
- Les cinq plus petits échantillons doivent être ignorés.
- Les cinq plus grands échantillons doivent être ignorés.
- La moyenne des 10 échantillons du milieu (du 5ème au 14ème) doit être prise.
L'exemple de code ci-dessous prend 20 mesures :
Vidéo
Défiez-vous
Utilisez un capteur ultrasonique pour l'un des projets suivants :
- Construire un système d'évitement de collision pour une voiture télécommandée.
- Estimer le niveau de remplissage d'une poubelle.
- Surveiller le niveau d'une poubelle.
- Automatiser l'ouverture et la fermeture d'une poubelle. Indice : Voir ESP8266 - Moteur Servo.
Applications des capteurs à ultrasons
- Prévention des collisions
- Estimation de la capacité
- Estimation de la hauteur
- Identification des objets à proximité