Arduino Nano ESP32 - Capteur de mouvement
Ce tutoriel fournit des instructions sur comment utiliser l'Arduino Nano ESP32 avec le capteur de mouvement HC-SR501. En détail, nous apprendrons :
- Fonctionnement d'un capteur de mouvement HC-SR501
- Comment connecter un capteur de mouvement HC-SR501 à un Arduino Nano ESP32
- Comment lire la valeur d'un capteur de mouvement HC-SR501 pour détecter un humain
Préparation du matériel
1 | × | Arduino Nano ESP32 | |
1 | × | USB Cable Type-C | |
1 | × | HC-SR501 Motion Sensor | |
1 | × | Breadboard | |
1 | × | Jumper Wires | |
1 | × | (Optional) DC Power Jack | |
1 | × | (Recommended) Screw Terminal Adapter for Arduino Nano |
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 qui peut détecter les mouvements des humains (ou des animaux). Il est largement utilisé pour détecter la présence humaine dans de nombreuses applications (allumage/extinction automatique d'une ampoule, activation/désactivation d'un escalier mécanique, détection d'un intrus, ouverture/fermeture de 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 en train de trembler.
- 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 est en mouvement 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é, des personnes sont présentes.
- Si aucun mouvement n'est détecté, aucune personne n'est présente.
Il y a également 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 paramètres du capteur. Les instructions détaillées sont décrites dans les Utilisations Avancées.
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, les animaux et les humains 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 Utilisations Avancées).
Détection de la présence humaine
Le capteur lui-même ne détecte PAS directement la présence humaine, il détecte simplement le mouvement. Ensuite, la présence humaine est déduite à partir de 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 du capteur mais ils ne bougent PAS. Ainsi, le mouvement n'est PAS détecté. L'Arduino Nano ESP32 (ou MCU) déduit que l'humain n'est PAS présent.
Cependant, le capteur est largement utilisé pour détecter les humains dans de nombreuses applications car ce problème n'est PAS grave et le prix du capteur est bon marché.
Arduino Nano ESP32 et capteur de mouvement HC-SR501
Lorsqu'une broche d'un ESP32 est configurée comme 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 Arduino Nano ESP32 pour lire la valeur de la broche de SORTIE, puis en déduire le mouvement.
Schéma de câblage entre le capteur de mouvement HC-SR501 et l'Arduino Nano ESP32
- Le schéma de câblage pour alimenter la carte Arduino Nano ESP32 via le port USB.
This image is created using Fritzing. Click to enlarge image
- Le schéma de câblage lors de l'alimentation de la carte Arduino Nano ESP32 via la broche Vin.
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 détecteur 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 de mouvement (changement d'état de la broche de HAUT à BAS)
Code Arduino Nano ESP32
Étapes rapides
- Si c'est la première fois que vous utilisez Arduino Nano ESP32, consultez comment configurer l'environnement pour Arduino Nano 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 Arduino Nano 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