ESP32 - Capteur de mouvement

Ce tutoriel explique comment détecter la présence humaine à l'aide d'un capteur de mouvement HC-SR501 et d'un ESP32 avec MicroPython. En détail, nous allons apprendre :

Capteur de mouvement MicroPython sur ESP32

Préparation du matériel

1×Module de développement ESP32 ESP-WROOM-32
1×Câble USB Type-A vers Type-C (pour PC USB-A)
1×Câble USB Type-C vers Type-C (pour PC USB-C)
1×Capteur de mouvement HC-SR501
1×Fils de connexion
1×Recommandé: Carte d'extension à bornier à vis pour ESP32
1×Recommandé: Breakout Expansion Board for ESP32
1×Recommandé: Répartiteur d'alimentation pour ESP32

Ou vous pouvez acheter les kits suivants:

1×Kit de Démarrage DIYables ESP32 (ESP32 inclus)
1×Kit de Capteurs DIYables (30 capteurs/écrans)
1×Kit de Capteurs DIYables (18 capteurs/écrans)
Divulgation : Certains des liens fournis dans cette section sont des liens affiliés Amazon. Nous pouvons recevoir une commission pour tout achat effectué via ces liens, sans coût supplémentaire pour vous. Nous vous remercions de votre soutien.

À propos du capteur de mouvement HC-SR501

Capteur de mouvement HC-SR501

Le capteur PIR HC-SR501 est un détecteur de mouvement capable de détecter le déplacement d’êtres humains ou d’animaux. Il est couramment utilisé dans diverses applications, telles que :

  • Éclairage automatique : Allumer et éteindre les lumières en réponse au mouvement.
  • Contrôle des portes : Ouverture et fermeture automatiques des portes.

**Contrôle des escaliers mécaniques : Activation ou désactivation des escaliers mécaniques.

  • Systèmes de sécurité : Détection d'intrusions.

Schéma des broches

Le capteur de mouvement HC-SR501 comprend trois broches.

  • Broche GND : Connecter à la masse (0 V).
  • Broche VCC : Connecter à l'alimentation (5 V).
  • Broche de sortie : Émet un signal bas lorsque aucun mouvement n'est détecté et un signal haut lorsque le mouvement est détecté. Connectez cette broche à une broche d'entrée sur l'ESP32.

Le capteur HC-SR501 dispose d'un cavalier et de deux potentiomètres qui vous permettent d'ajuster ses réglages. Pour plus de détails, consultez Utilisations avancées du capteur de mouvement.

Pinout du capteur de mouvement HC-SR501

Comment ça fonctionne

Le capteur HC-SR501 détecte les mouvements en détectant les variations du rayonnement infrarouge. Pour que le capteur puisse détecter un objet, deux conditions doivent être réunies :

  • L'objet doit être en mouvement.
  • L'objet doit émettre un rayonnement infrarouge.

Par conséquent :

  • Des objets qui bougent mais n'émettent pas de rayons infrarouges (comme certains jouets) ne seront pas détectés.
  • Des objets qui émettent des rayons infrarouges mais ne bougent pas (comme une personne immobile) ne seront pas détectés.

Puisque les humains et les animaux émettent du rayonnement infrarouge, le capteur peut détecter leurs mouvements.

Comportement de la broche de sortie:

  • Pas de mouvement : Lorsqu'aucune personne ou aucun animal n'est dans la plage de détection du capteur, la broche de sortie reste BAS.
  • Mouvement détecté : Lorsqu'une personne ou un animal entre dans la plage de détection, la broche de sortie passe de BAS à HAUT.
  • Mouvement terminé : Lorsqu'une personne ou un animal sort de la plage de détection, la broche de sortie passe de HAUT à BAS.

La vidéo montre comment le capteur de mouvement fonctionne généralement. Dans des situations réelles, son fonctionnement peut légèrement varier en fonction de ses réglages, comme expliqué dans la section Utilisations avancées.

ESP32 - Capteur de mouvement HC-SR501

Lorsque vous configurez une broche de l'ESP32 en entrée numérique, elle peut détecter si l'objet connecté est dans un état bas ou haut.

Connectez la broche de l'ESP32 à la broche de sortie du capteur HC-SR501. Ensuite, programmez l'ESP32 pour surveiller la valeur de la broche de sortie et détecter le mouvement.

Diagramme de câblage

  • Comment connecter l'ESP32 et le capteur de mouvement en utilisant breadboard (alimenté via un câble USB)
Schéma de câblage du capteur de mouvement ESP32 MicroPython

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.

  • Comment connecter l'ESP32 et le capteur de mouvement en utilisant breadboard (alimenté via la broche Vin)
Schéma de câblage du capteur de mouvement ESP32 MicroPython

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.

Comment connecter l'ESP32 et un capteur de mouvement
Comment câbler l'ESP32 et le capteur de mouvement.

Réglage initial

Time Delay AdjusterScrew it in anti-clockwise direction fully.
Detection Range AdjusterScrew it in clockwise direction fully.
Repeat Trigger SelectorPut jumper as shown on the image.
réglage initial du capteur de mouvement

Comment programmer pour un capteur de mouvement

  • Configurer une broche ESP32 en entrée numérique.
HC_SR501 = Pin(SENSOR_PIN, Pin.IN)
  • Vérifiez l'état de la broche de sortie du capteur.
motion_state = HC_SR501.value()

Code MicroPython pour ESP32

/* * Ce code ESP32 MicroPython a été développé par newbiely.fr * Ce code ESP32 MicroPython est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/tutorials/esp32-micropython/esp32-micropython-motion-sensor */ from machine import Pin import utime # Constants for pin and state SENSOR_PIN = 19 # The ESP32 pin GPIO19 connected to the HC-SR501 motion sensor # Setup the motion sensor pin HC_SR501 = Pin(SENSOR_PIN, Pin.IN) # Initialize state variables motion_state = 0 prev_motion_state = 0 # Main loop while True: prev_motion_state = motion_state # Store the previous state motion_state = HC_SR501.value() # Read the current state from the motion sensor # Check for motion detection (transition from LOW to HIGH) if prev_motion_state == 0 and motion_state == 1: print("Motion detected!") # Optional: Additional actions when motion is detected # Check for motion cessation (transition from HIGH to LOW) elif prev_motion_state == 1 and motion_state == 0: print("Motion stopped!") # Optional: Additional actions when motion stops utime.sleep(0.1) # Sleep for 100 milliseconds

Étapes rapides

Voici des instructions sur la façon de configurer et d’exécuter votre code MicroPython sur l’ESP32 en utilisant l’IDE Thonny :

  • Assurez-vous que Thonny IDE est installé sur votre ordinateur.
  • Confirmez que le firmware MicroPython est chargé sur votre carte ESP32.
  • Si c'est votre première utilisation d'un ESP32 avec MicroPython, consultez le guide ESP32 MicroPython Getting Started pour des instructions étape par étape.
  • Connectez votre carte ESP32 au capteur de mouvement HC-SR501 comme indiqué dans le schéma.
  • Utilisez un câble USB pour connecter votre carte ESP32 à votre ordinateur.
  • Ouvrez Thonny IDE sur votre ordinateur.
  • Dans Thonny IDE, allez dans Outils Options.
  • Sous l'onglet Interpréteur, choisissez MicroPython (ESP32) dans le menu déroulant.
  • Assurez-vous que le port correct est sélectionné. Thonny IDE détecte généralement automatiquement, mais vous pourriez avoir besoin de le sélectionner manuellement (comme COM12 sur Windows ou /dev/ttyACM0 sur Linux).
  • Copiez le code MicroPython fourni et collez-le dans l'éditeur de Thonny.
  • Enregistrez le code sur votre ESP32 en:
    • En cliquant sur le bouton Enregistrer ou en appuyant sur Ctrl+S.
    • Dans la boîte de dialogue d'enregistrement, choisissez le périphérique MicroPython.
    • Nommez le fichier main.py.
  • Cliquez sur le bouton vert Exécuter (ou appuyez sur F5) pour exécuter le script.
  • Agitez votre main devant le capteur.
  • Consultez le message dans la Shell en bas de Thonny IDE pour voir la sortie.
Shell x
>>> %Run -c $EDITOR_CONTENT
MPY: soft reboot Motion detected! Motion stopped!
MicroPython (ESP32) • CP2102 USB To UART Bridge Controller @ COM12 ≡

Vidéo

Tutoriels connexes

※ NOS MESSAGES

  • N'hésitez pas à partager le lien de ce tutoriel. Cependant, veuillez ne pas utiliser notre contenu sur d'autres sites web. Nous avons investi beaucoup d'efforts et de temps pour créer ce contenu, veuillez respecter notre travail !