ESP32 - Capteur de mouvement
Ce tutoriel vous explique comment utiliser l'ESP32 avec le capteur de mouvement HC-SR501. En détail, nous allons apprendre :
- Comment fonctionne un capteur de mouvement HC-SR501
- Comment connecter un capteur de mouvement HC-SR501 à un ESP32
- Comment lire la valeur d'un capteur de mouvement HC-SR501 pour détecter l'humain
Préparation du matériel
1 | × | ESP-WROOM-32 Dev Module | |
1 | × | USB Cable Type-C | |
1 | × | HC-SR501 Motion Sensor | |
1 | × | Breadboard | |
1 | × | Jumper Wires | |
1 | × | (Optional) DC Power Jack | |
1 | × | (Recommended) ESP32 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 de mouvement HC-SR501
Le capteur HC-SR501 PIR est un capteur capable de détecter le mouvement des humains (ou des animaux). Il est largement utilisé pour détecter la présence humaine dans de nombreuses applications (allumage/extinction automatique de l'ampoule, activation/désactivation de l'escalier mécanique, détection d'un intrus, ouverture/fermeture de la porte...)
Brochage du capteur de mouvement HC-SR501
Le capteur de mouvement HC-SR501 possède 3 broches :
- Broche VCC : connectez cette broche à VCC (5V)
- Broche GND : connectez cette broche à GND (0V)
- Broche de SORTIE : connectez cette broche à la broche d'entrée de l'ESP32. Cette broche émet le signal correspondant à la détection de mouvement :
- BAS si aucun mouvement n'est détecté
- HAUT si un mouvement est détecté.
- L'objet émet de l'infrarouge.
- L'objet est en mouvement ou tremble.
- Si un objet émet un rayon infrarouge mais ne bouge pas (par exemple, une personne reste immobile sans bouger), il n'est pas détecté par le capteur.
- Si un objet bouge mais n'émet pas de rayon infrarouge (par exemple, un robot ou un véhicule), il n'est pas détecté par le capteur.
- Si un mouvement est détecté, les humains sont présents
- Si aucun mouvement n'est détecté, les humains ne sont pas présents
Il y a aussi deux potentiomètres et un cavalier sur le capteur de mouvement HC-SR501. Ces potentiomètres et ce cavalier sont utilisés pour ajuster les réglages du capteur. L'instruction détaillée est décrite dans les Usages Avancés.
Fonctionnement du capteur de mouvement HC-SR501
Le principe de fonctionnement du capteur HC-SR501 repose sur le changement du rayonnement infrarouge sur l'objet en mouvement. Pour être détecté par le capteur HC-SR501, l'objet doit répondre à deux exigences :
Alors :
Les animaux et les humains émettent naturellement des rayons infrarouges. Par conséquent, ils peuvent être détectés par le capteur HC-SR501 s'ils sont en mouvement.
La vidéo ci-dessus montre le principe de fonctionnement du capteur de mouvement. En pratique, le capteur de mouvement peut fonctionner différemment selon le réglage du capteur (décrit dans la section Usages Avancés).
Détection de la présence humaine
Le capteur lui-même NE détecte PAS directement la présence humaine, le capteur détecte simplement le mouvement. Et ensuite, la présence humaine est déduite sur la détection de mouvement :
Il y a un problème avec cette règle en pratique, les humains sont présents dans la portée des capteurs mais ne bougent PAS. Le mouvement n'est PAS détecté. L'ESP32 (ou MCU) déduit que l'humain n'est PAS présent.
Cependant, le capteur est largement utilisé pour détecter les personnes dans de nombreuses applications car ce problème n'est PAS grave et le prix du capteur est bon marché.
ESP32 et capteur de mouvement HC-SR501
Lorsqu'une broche d'ESP32 est configurée en entrée numérique, elle peut lire l'état (BAS ou HAUT) de tout ce à quoi elle est connectée.
En connectant la broche de l'ESP32 à la broche de SORTIE du capteur HC-SR501, nous pouvons utiliser le code de l'ESP32 pour lire la valeur de la broche de SORTIE, puis déduire le mouvement.
Schéma de câblage entre le capteur de mouvement HC-SR501 et l'ESP32
Le schéma de câblage avec alimentation par un câble USB
This image is created using Fritzing. Click to enlarge image
Si vous ne savez pas comment alimenter l'ESP32 et d'autres composants, vous pouvez trouver des conseils dans le tutoriel suivant : Comment alimenter l'ESP32.
Le schéma de câblage avec alimentation provenant d'un adaptateur 5v.
This image is created using Fritzing. Click to enlarge image
Configuration initiale
Detection Range Adjuster | Fully screw it in the clockwise direction. |
Time Delay Adjuster | Fully screw it in the anti-clockwise direction. |
Repeat Trigger Selector | Put jumper like the below image. |
Comment programmer un capteur de mouvement
- Configurez une broche d'ESP32 en mode entrée numérique en utilisant la fonction pinMode().
- Lisez l'état de la broche de SORTIE du capteur en utilisant la fonction digitalRead().
- Détecter le début de mouvement (changement d'état de la broche de BAS à HAUT)
- Détecter l'arrêt du mouvement (changement d'état de la broche de HAUT à BAS)
Code ESP32
Étapes rapides
- Si c'est la première fois que vous utilisez ESP32, consultez comment configurer l'environnement pour ESP32 sur Arduino IDE.
- Copiez le code ci-dessus et collez-le dans Arduino IDE.
- Compilez et téléchargez le code sur la carte ESP32 en cliquant sur le bouton Upload dans Arduino IDE
- Ouvrez le moniteur série sur Arduino IDE
- Déplacez votre main devant la portée du capteur
- Consultez le résultat sur le moniteur série