Ce guide montre comment utiliser le capteur de proximité radar à micro-ondes RCWL-0516 avec l’ESP32 et l’ESP8266 à l’aide de MicroPython pour détecter les mouvements. Vous apprendrez comment câbler le capteur aux cartes et comment les programmer à l’aide du micrologiciel MicroPython. Le RCWL-0516 est une excellente alternative au populaire capteur de mouvement PIR.

Nous avons des tutoriels similaires utilisant l’IDE Arduino :
Table des matières:
Tout au long de ce didacticiel, nous aborderons les contenus suivants :
Conditions préalables
Pour suivre ce tutoriel, vous devez installer le firmware MicroPython sur vos cartes ESP32 ou ESP8266. Vous avez également besoin d’un IDE pour écrire et télécharger le code sur votre tableau. Nous vous suggérons d’utiliser Thonny IDE ou uPyCraft IDE :
- ThonnyIDE :
- L’EDI uPyCraft :
En savoir plus sur MicroPython : Programmation MicroPython avec ESP32 et ESP8266
Présentation du capteur de proximité radar à micro-ondes RCWL-0516

Le RCWL-0516 est un petit capteur peu coûteux qui utilise un radar à micro-ondes pour détecter la présence d’objets en mouvement. Le capteur fonctionne en émettant un faisceau de micro-ondes, puis en détectant le décalage Doppler des ondes réfléchies lorsque les objets passent.
Habituellement, ces capteurs sont vendus par paquet de cinq et ne sont pas livrés avec des broches d’en-tête. Ainsi, vous devrez peut-être vous procurer des broches d’en-tête séparément, puis les souder vous-même.

Où acheter ?
Vous pouvez consulter le lien suivant sur Maker Advisor et comparer le prix dans différents magasins.
Vous pouvez utiliser les liens précédents ou vous rendre directement sur MakerAdvisor.com/tools pour trouver toutes les pièces pour vos projets au meilleur prix !

Comment ça marche ?
Le capteur RCWL-0516 dispose d’un oscillateur intégré qui génère un signal micro-onde à une fréquence de 3,18 GHz. Le capteur envoie ensuite ce signal selon un modèle à 360 degrés.
Lorsqu’un objet se déplace dans la portée du capteur, les ondes réfléchies sont captées par le récepteur du capteur. Le récepteur mesure ensuite la fréquence des ondes réfléchies et la compare à la fréquence du signal d’origine. Si la fréquence des ondes réfléchies a changé, le capteur sait qu’un objet a bougé.
Le capteur RCWL-0516 possède une seule broche de sortie qui passe au niveau HAUT lorsqu’il détecte un mouvement. Il émet LOW lorsqu’aucun mouvement n’est détecté.
Caractéristiques du capteur RCWL-0516
Le RCWL-0516 a une portée de détection allant jusqu’à 7 mètres et peut détecter des objets se déplaçant à des vitesses allant jusqu’à 2 mètres par seconde. Il dispose également d’un temps de retard réglable intégré, qui peut être utilisé pour empêcher le capteur de se déclencher à plusieurs reprises sur le même objet.

Remarque : même s’il mentionne une portée de détection allant jusqu’à 7 mètres, je n’ai pas pu obtenir ces résultats avec ma configuration. J’ai cependant eu de très bons retours de la part de certains de nos lecteurs à propos de ce capteur.
Voici un résumé de certaines des principales caractéristiques du capteur RCWL-0516 :
- Utilise un radar à micro-ondes pour détecter les objets en mouvement
- Portée de détection jusqu’à 7 mètres
- Peut détecter des objets se déplaçant à des vitesses allant jusqu’à 2 mètres par seconde
- Temps de retard réglable intégré
- Faible consommation d’énergie
- Peu coûteux
Spécifications du capteur RCWL-0516 :
- Tension d’alimentation : 4–28 VCC
- Fréquence de fonctionnement : 3,18 GHz
- Distance de détection : 5 à 7 m
- Niveau de sortie : 3,4 V haut <0,7 bas
- Entraînement de sortie : 100 mA
- Synchronisation de sortie : redéclenchement de 2 secondes avec mouvement
Vous pouvez obtenir plus d’informations sur le capteur sur la page GitHub suivante :
Capteur de résistance dépendante de la lumière (LDR) en option
Le capteur est livré avec la possibilité de souder une résistance dépendante de la lumière (capteur de lumière) si vous souhaitez que votre capteur fonctionne uniquement dans des conditions sombres, par exemple. Vous pouvez obtenir la sortie du capteur LDR sur la broche LDR. Alternativement, vous pouvez également connecter le LDR à la broche CDS.

Lorsque la sortie du LDR est supérieure à 0,7 V, la broche OUT émet un signal ÉLEVÉ lorsqu’un mouvement est détecté. Si un mouvement est détecté mais que la sortie du LDR est inférieure à 0,7 V, la sortie sera FAIBLE. Cela signifie que lors de la fixation d’un LDR, le capteur ne détectera le mouvement que lorsqu’il fait sombre.

Vous pouvez régler la sensibilité du LDR, en connectant une résistance sur les pads R-CDS (voir la section suivante), ou en ajoutant une résistance pull-up en externe en parallèle avec la broche CDS.
Dans mon cas, j’ai ajouté une résistance pull-up de 22 KOhm à la broche LDR afin qu’elle puisse détecter un mouvement en cas de faible luminosité. Sans la résistance, même dans des conditions très sombres, j’avais une sortie positive. Vous devrez peut-être essayer avec différentes valeurs de résistance pour voir laquelle fonctionne le mieux pour votre scénario.
Composants de réglage

A l’arrière du capteur se trouvent trois plots pour des composants CMS supplémentaires (dimensions 0805) :
Les informations suivantes proviennent de cette page GitHub.
- C-TM : régule le temps de déclenchement de la répétition. La durée par défaut (non renseignée) est de 2 s. Un condensateur SMD pour prolonger le temps de déclenchement répété. La broche 3 du CI émet une fréquence (f), et le temps de déclenchement en secondes est donné par (1/f) * 32678.
- R-GN : La plage de détection par défaut est de 7 m, l’ajout d’une résistance de 1 M la réduit à 5 m.
- R-CDS : Résistance en parallèle avec le pullup 1M. Sans R-CDS, la résistance la plus basse du LDR (c’est-à-dire le niveau de lumière le plus élevé) où la sortie est activée est de ~269 kΩ (=0,7 V). L’ajout d’une résistance ici diminue la résistance LDR du seuil d’activation/désactivation. Si la résistance LDR au seuil de niveau de lumière souhaité est <269k, vous pouvez alors ajouter une résistance externe en série avec la LDR.
Brochage du capteur de proximité radar à micro-ondes RCWL-0516

Le capteur de proximité radar à micro-ondes RCWL-0516 comporte cinq broches :
- 3V3 : c’est la sortie du régulateur de tension (pas la broche d’alimentation)
- VIN : c’est la broche d’entrée d’alimentation. Le capteur peut être alimenté par une plage de tension de 4 à 28 V.
- GND : c’est la broche de masse.
- OUT : c’est la broche de sortie. La broche de sortie passe à HAUT lorsque le capteur détecte un mouvement et reste FAIBLE dans le cas contraire.
- CDS : Cette broche est utilisée pour connecter une résistance dépendant de la lumière (LDR). Le LDR peut être utilisé pour désactiver le capteur dans des conditions de lumière vive.
Le tableau suivant présente le brochage du capteur de proximité radar à micro-ondes RCWL-0516 :
| 3V3 | Puissance de sortie 3,3 V (ne pas alimenter le capteur) |
| GND | broche de masse |
| DEHORS | broche de sortie (passe à HAUT lorsqu’un mouvement est détecté) |
| NIV | tension d’entrée pour alimenter le capteur (4V à 28V) |
| CDS | Sortie de résistance dépendante de la lumière |
Capteur de proximité radar à micro-ondes vs capteur de mouvement PIR

Le capteur de proximité radar à micro-ondes est souvent utilisé comme alternative au capteur de mouvement PIR, selon l’application du projet. Le tableau suivant compare les deux capteurs :
| Radar à micro-ondes RCWL-0516 | Capteur de mouvement PIR | |
| Comment ça marche ? | Capteur actif (émet des signaux micro-ondes et détecte les réflexions). | Capteur passif (détecte le rayonnement infrarouge émis par les objets). |
| Plage de détection | Portée plus longue, généralement jusqu’à 7+ mètres. | Portée plus courte, généralement quelques mètres, selon le modèle. |
| Détecter à travers les obstacles | Peut détecter à travers des matériaux non métalliques. | Obstrué par certains matériaux (par exemple, le verre) |
| Sensibilité au mouvement | Très sensible, peut donner des faux positifs. | Pas si sensible, peut manquer des mouvements subtils. Détecte uniquement les êtres vivants qui émettent de la chaleur. |
| Zone de couverture | Large couverture avec un large diagramme radar. | Champ de vision étroit. |
Connexion du capteur de proximité radar à micro-ondes RCWL-0516 à l’ESP32 et à l’ESP8266
Suivez le tableau ou le diagramme schématique suivant pour câbler le capteur de proximité radar à micro-ondes RCWL-0516 à l’ESP32/ESP8266 (dans cet exemple, nous n’utiliserons pas le LDR) :
| Capteur RCWL-0516 | ESP32/ESP8266 |
| 3V3 | ne te connecte pas |
| GND | GND |
| DEHORS | GPIO12 (ou tout autre GPIO de votre choix) |
| NIV | VIN (ou une tension entre 4 et 28V) |
| CDS | ne te connecte pas |
ESP32 avec RCWL-0516 – Schéma

ESP8266 NodeMCU avec RCWL-0516 – Schéma

Script MicroPython – RCWL-0516
À l’aide de l’IDE MicroPython de votre choix, copiez le code suivant dans le fichier main.py. Ce script lit la sortie du capteur, allume une LED et s’imprime dans le MicroPython Shell lorsqu’un mouvement est détecté. Le capteur émet un signal ÉLEVÉ lorsqu’il détecte un mouvement et un signal FAIBLE lorsqu’il est inactif.
# Complete project details: https://Raspberryme.com/micropython-rcwl-0516-esp32-esp8266/
from machine import Pin
import time
# Pin numbers for LED and sensor
led_pin = 2
sensor_pin = 12
# Set the LED pin as an output and the sensor pin as an input
led = Pin(led_pin, Pin.OUT)
sensor = Pin(sensor_pin, Pin.IN)
# Initialize state variables
state = 0
val = 0
while True:
val = sensor.value() # read sensor value
if val == 1: # check if the sensor is HIGH
led.on() # turn LED ON
if state == 0:
print("Motion detected!")
state = 1 # update variable state to HIGH
else:
led.off() # turn LED OFF
if state == 1:
print("Motion stopped!")
state = 0 # update variable state to LOW
# Add a small delay to avoid constant checking of the sensor
time.sleep(0.1)
Afficher le code brut
Alternativement, vous pouvez également utiliser des interruptions pour détecter l’état du capteur. Vous pouvez utiliser le même code que celui que nous utilisons dans le didacticiel suivant (assurez-vous simplement d’ajuster les GPIO en conséquence) : MicroPython : interruptions avec ESP32 et ESP8266.
Comment fonctionne le code
Commencez par importer les modules requis : le module machine est utilisé pour interagir avec les composants matériels, et nous importons des broches à partir de celui-ci pour contrôler les broches GPIO. Le module de temps est utilisé pour introduire des retards et contrôler le timing du programme.
# Import required libraries
from machine import Pin
import time
Ensuite, définissez les broches de la LED et de la broche de sortie du capteur. Pour simplifier, nous utilisons les LED intégrées ESP32 et ESP8266 qui sont connectées au GPIO2 dans les deux cas (cela peut changer en fonction du modèle de carte que vous utilisez). Alternativement, vous pouvez connecter une LED physique à n’importe quel autre GPIO, modifiez simplement le code en conséquence.
# Pin numbers for LED and sensor
led_pin = 2
sensor_pin = 12
Ensuite, créez deux objets Pin, un pour faire référence à la LED (led) et un autre pour faire référence au capteur radar à micro-ondes (capteur). La LED est définie comme une sortie à l’aide de Pin.OUT et le capteur comme une entrée à l’aide de Pin.IN.
# Set the LED pin as an output and the sensor pin as an input
led = Pin(led_pin, Pin.OUT)
sensor = Pin(sensor_pin, Pin.IN)
Ensuite, créez quelques variables pour suivre l’état du capteur. Fondamentalement, val est utilisé pour stocker temporairement la valeur de sortie en temps réel du capteur, tandis que state est utilisé pour savoir si un mouvement a été détecté ou non au fil du temps.
# Initialize state variables
state = 0
val = 0
Le programme entre dans une boucle infinie (tout en étant vrai), ce qui signifie qu’il s’exécutera indéfiniment, vérifiant à plusieurs reprises le mouvement.
while True:
Nous commençons par lire la valeur du capteur de mouvement à l’aide de sensor.value(). La méthode renvoie 0 si aucun mouvement n’est détecté et 1 si un mouvement est détecté. Le résultat est stocké dans la variable val.
val = sensor.value() # read sensor value
Si la sortie du capteur est 1 (mouvement détecté), nous allumons la LED.
if val == 1: # check if the sensor is HIGH
led.on() # turn LED ON
Remarque : la LED intégrée de l’ESP8266 fonctionne avec une logique inversée, vous devez donc écrire .off() pour l’allumer et .on() pour l’éteindre. Si vous utilisez une LED ordinaire connectée à ce GPIO, elle fonctionne avec la logique « normale ».
Ensuite, on vérifie si l’état précédent était 0. Si c’est le cas, cela signifie que l’état a changé et qu’un mouvement a été détecté. Nous imprimons un message dans le shell et changeons la variable d’état en 1.
if state == 0:
print("Motion detected!")
state = 1 # update variable state to HIGH
Si la sortie du capteur est 0 (aucun mouvement détecté), nous éteignons la LED.
else:
led.off() # turn LED OFF
Si l’état précédent était 1 et si maintenant la valeur actuelle du capteur est 0, cela signifie que le mouvement s’est arrêté et nous pouvons définir la variable d’état sur 0.
if state == 1:
print("Motion stopped!")
state = 0 # update variable state to LOW
Le code continuera à boucler indéfiniment, vérifiant à plusieurs reprises le mouvement et mettant à jour l’état des LED et les messages sur le shell MicroPython en conséquence.
Démonstration
Enregistrez le code sur votre carte en utilisant Thonny IDE ou tout autre IDE MicroPython de votre choix. Nous utilisons Thonny IDE.
1) Copiez le code fourni dans un nouveau fichier sur Thonny IDE.
2) Téléchargez le code sur votre tableau. Si vous utilisez Thonny IDE, accédez à Fichier > Enregistrer sous… puis sélectionnez le périphérique MicroPython.

3) Enregistrez votre fichier sous main.py afin qu’il s’exécute automatiquement lorsque l’ESP32/ESP8266 démarre/se réinitialise. Il devrait y avoir un fichier appelé boot.py. Ce fichier est créé par défaut lorsque vous gravez le micrologiciel MicroPython.

4) Enfin, cliquez sur OK pour continuer.
5) Maintenant, appuyez sur le bouton RST/EN intégré pour que la carte redémarre et commence à exécuter le code ou appuyez sur le bouton vert Exécuter de l’IDE.

Passez votre main devant le capteur de mouvement. Vous devriez obtenir un message « Mouvement détecté ! » message suivi d’un message « Mouvement arrêté ! » message après deux secondes. De plus, la LED intégrée s’allumera lorsqu’un mouvement est détecté.

Si vous avez un LDR connecté, vous devrez diminuer la luminosité pour obtenir des résultats positifs.

Conclusion
Dans ce didacticiel, vous avez appris à utiliser le capteur de proximité radar à micro-ondes RCWL-0516 pour détecter les mouvements dans votre environnement avec l’ESP32 et l’ESP8266 programmés avec MicroPython. Le RCWL-0516 pourrait être une bonne alternative au capteur de mouvement PIR en fonction des exigences de votre projet.
Nous espérons que vous avez trouvé ce tutoriel utile. Si vous souhaitez plutôt essayer un capteur de mouvement PIR, lisez ce tutoriel : ESP32 et ESP8266 avec capteur de mouvement PIR utilisant MicroPython.
Nous proposons des tutoriels pour plus de 20 capteurs et modules différents avec l’ESP32 et l’ESP8266. Consultez le lien suivant :
Voulez-vous en savoir plus sur MicroPython avec l’ESP32 et l’ESP8266 ? Consultez nos ressources :
Merci d’avoir lu.
Plongez dans l’histoire de Raspberry Pi avec cette vidéo :

-
ieron Lot de 5 détecteurs de Mouvement RCWL-0516, Module de capteur Radar à Micro-Ondes, Module de Commutation pour détecteur de Carte à Induction Humaine, Distance de détection 3-5 m
-
VKLSVAN RCWL-0516 Lot de 6 modules d'induction radar pour micro-ondes Module de commutation intelligent Capteur de détection humaine Capteur corporel
