Arduino UNO Q - Éclairage Automatique avec Détecteur de Mouvement et Ruban LED

Dans ce guide, vous apprendrez à construire un système d'éclairage automatique à l'aide d'un capteur de mouvement HC-SR501 et d'un ruban LED 12V avec Arduino UNO Q. Le ruban LED s'allume lorsqu'un mouvement est détecté et s'éteint lorsque le mouvement s'arrête. Idéal pour :

Arduino UNO Q Éclairage Automatique Capteur de Mouvement Ruban LED

Matériel Requis

1×Arduino UNO Q
1×USB Cable for Arduino Uno Q
1×Capteur de mouvement HC-SR501
1×Relais
1×12V Bande LED
1×Adaptateur secteur 12V
1×Connecteur d'alimentation DC
1×Fils de connexion
1×Recommandé: Shield à bornier à vis pour Arduino Uno
1×Recommandé: Sensors/Servo Expansion Shield for Arduino Uno
1×Recommandé: Shield plaque d'essai pour Arduino Uno
1×Recommandé: Boîtier pour Arduino Uno
1×Recommandé: Kit plaque de base prototypage et plaque d'essai pour Arduino Uno

Ou vous pouvez acheter les kits suivants:

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 Ruban LED et du Capteur de Mouvement

Apprenez-en plus sur le ruban LED et le capteur de mouvement dans les tutoriels ci-dessous :

Réglage Initial du Capteur

Réglage du délaiTournez complètement dans le sens antihoraire (délai minimum).
Réglage de la portée de détectionTournez complètement dans le sens horaire (portée maximale).
Sélecteur de déclenchement répétéPlacez le cavalier en mode déclenchement répété.
Réglage initial du capteur de mouvement Arduino

Schéma de Câblage

Schéma de câblage Arduino UNO Q Capteur de Mouvement Ruban LED

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

Le relais agit comme un interrupteur entre l'alimentation 12V et le ruban LED. Le MCU de l'Arduino UNO Q contrôle la broche IN du relais.

Code MCU

L'Arduino UNO Q dispose de deux processeurs : le MCU STM32 (gère le contrôle matériel en temps réel) et le MPU Qualcomm (exécute Debian Linux). Dans cette section, seul le MCU STM32 est programmé — le côté Linux reste inactif. Une section ultérieure montrera comment les deux processeurs fonctionnent ensemble.

/* * Ce code Arduino UNO Q a été développé par newbiely.fr * Ce code Arduino UNO Q 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/arduino-uno-q/arduino-uno-q-automated-light-control-with-motion-sensor-and-led-strip */ #define MOTION_SENSOR_PIN 7 // The Arduino UNO Q pin connected to the OUTPUT pin of the motion sensor #define RELAY_PIN 9 // The Arduino UNO Q pin connected to the IN pin of the relay (controls LED strip) int motion_state = LOW; int prev_motion_state = LOW; void setup() { pinMode(MOTION_SENSOR_PIN, INPUT); pinMode(RELAY_PIN, OUTPUT); digitalWrite(RELAY_PIN, LOW); // LED strip off initially } void loop() { prev_motion_state = motion_state; motion_state = digitalRead(MOTION_SENSOR_PIN); if (prev_motion_state == LOW && motion_state == HIGH) { // Motion detected — turn LED strip on digitalWrite(RELAY_PIN, HIGH); } else if (prev_motion_state == HIGH && motion_state == LOW) { // Motion stopped — turn LED strip off digitalWrite(RELAY_PIN, LOW); } }

Étapes Rapides

  • Première utilisation de l'Arduino UNO Q ? Suivez le tutoriel Démarrer avec Arduino UNO Q pour préparer votre environnement de développement avant de continuer.
  • Câbler les composants : Connectez la sortie OUTPUT du capteur → broche 7, relais IN → broche 9. Connectez le ruban LED via le relais à l'alimentation 12V.
  • Connecter : Branchez l'Arduino UNO Q sur votre ordinateur avec un câble USB-C.
  • Ouvrir Arduino App Lab : Lancez Arduino App Lab et attendez qu'il détecte votre Arduino UNO Q.
  • Créer une nouvelle application : Cliquez sur le bouton Créer une nouvelle application.
Créer une nouvelle application dans Arduino App Lab sur Arduino UNO Q
  • Donnez un nom à l'application, par exemple : DIYables_AutoLight
  • Cliquez sur Créer pour confirmer.
  • Un ensemble de dossiers et de fichiers sera généré dans votre nouvelle application.
Dossiers et fichiers de l'application Arduino App Lab sur Arduino UNO Q
  • Trouvez le fichier sketch/sketch.ino — c'est là que vous collerez le programme MCU.
  • Coller le programme : Copiez le code MCU ci-dessus et collez-le dans le fichier de programme. Laissez les autres fichiers par défaut.
    • Install the library: Click the Add sketch library button (the open book icon with a + sign) in the left sidebar.
    Add sketch library in Arduino App Lab on Arduino UNO Q
    • Search for Arduino_RouterBridge created by Arduino and click the Install button.
    My Apps / DIYables Apps
    Run
    Bricks
    No bricks added...
    Sketch Libraries
    No sketch libra...
    Files
    python
    sketch
    .gitignore
    README.md
    app.yaml
    sketch.ino
    Add sketch library
    Arduino_RouterBridge Arduino

    This library provides a simple RPC bridge for Arduino UNO Q boards, allowing communication between the board and other devices using MsgPack serialization.

    0.4.1
    Install
    More Info
    • Téléverser : Cliquez sur le bouton Exécuter dans Arduino App Lab pour compiler et téléverser sur le STM32.
    Cliquer sur le bouton Exécuter dans Arduino App Lab sur Arduino UNO Q
    • Tester : Passez devant le capteur — le ruban LED devrait s'allumer quand un mouvement est détecté et s'éteindre quand le mouvement s'arrête.

    Programmation Bridge Linux + MCU

    L'Arduino UNO Q dispose de deux processeurs fonctionnant ensemble : le MPU (Qualcomm, exécute Debian Linux) et le MCU (STM32, exécute Zephyr OS avec votre programme Arduino). Ils communiquent via RPC grâce à la bibliothèque Arduino_RouterBridge — jamais via des ports série bruts.

    • Le capteur de mouvement et le relais sont tous deux connectés au MCU (STM32) — capteur sur la broche 7, relais sur la broche 9.
    • Le MPU ne peut pas les contrôler directement — il appelle Bridge.call("check_motion") sur le MCU, qui lit le capteur et commute le relais (et le ruban LED) en conséquence.
    • Le MPU dispose du Wi-Fi — car le MPU exécute Debian Linux complet avec Wi-Fi, il peut signaler l'état de l'éclairage à Telegram.
    • Communication : Bridge.call() côté Linux invoque Bridge.provide_safe() côté MCU (car digitalWrite() est utilisé pour contrôler le relais)
    • ⚠️ Réservé : /dev/ttyHS1 (Linux) et Serial1 (MCU) sont utilisés par le routeur Arduino — ne les ouvrez jamais directement

    En résumé : Le MPU interroge le capteur → le MCU lit la broche, commute le relais (ruban LED) et rapporte au Moniteur.

    Programme MCU — éclairage automatique avec Bridge :

    /* * Ce code Arduino UNO Q a été développé par newbiely.fr * Ce code Arduino UNO Q 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/arduino-uno-q/arduino-uno-q-automated-light-control-with-motion-sensor-and-led-strip */ #include "Arduino_RouterBridge.h" #define MOTION_SENSOR_PIN 7 #define RELAY_PIN 9 int motion_state = LOW; int prev_motion_state = LOW; void check_motion() { prev_motion_state = motion_state; motion_state = digitalRead(MOTION_SENSOR_PIN); if (prev_motion_state == LOW && motion_state == HIGH) { digitalWrite(RELAY_PIN, HIGH); Monitor.println("Motion detected! LED strip ON"); } else if (prev_motion_state == HIGH && motion_state == LOW) { digitalWrite(RELAY_PIN, LOW); Monitor.println("Motion stopped! LED strip OFF"); } else { Monitor.println(motion_state == HIGH ? "Motion: ACTIVE | LED strip: ON" : "Motion: none | LED strip: OFF"); } } void setup() { Bridge.begin(); Monitor.begin(); pinMode(MOTION_SENSOR_PIN, INPUT); pinMode(RELAY_PIN, OUTPUT); digitalWrite(RELAY_PIN, LOW); Bridge.provide_safe("check_motion", check_motion); Monitor.println("Automated Lighting Bridge ready"); } void loop() {}

    Script Python (Arduino App Lab) — interrogation de l'état de mouvement toutes les 0,5 seconde :

    /* * Ce code Arduino UNO Q a été développé par newbiely.fr * Ce code Arduino UNO Q 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/arduino-uno-q/arduino-uno-q-automated-light-control-with-motion-sensor-and-led-strip */ from arduino.app_utils import * import time def loop(): Bridge.call("check_motion") time.sleep(0.5) App.run(user_loop=loop)
    • Remarque : Assurez-vous que Bridge.begin() est appelé dans le programme MCU et que le programme est téléversé avant d'exécuter le script Python côté Linux.
    • ⚠️ Avertissement : N'ouvrez jamais directement /dev/ttyHS1 (sous Linux) ou Serial1 (sur MCU) dans votre code — ces ports sont réservés par le routeur Arduino et y accéder brisera le Bridge.

    Étapes Rapides

    • Téléversez le programme MCU : Ouvrez Arduino App Lab, créez une nouvelle application, collez le programme MCU Bridge dans sketch/sketch.ino, installez la bibliothèque Arduino_RouterBridge, puis cliquez sur Exécuter.
    • Ajoutez le script Python : Collez le code Python ci-dessus dans l'onglet Python de la même application.
    • Exécutez l'application : Cliquez sur Exécuter — Python interroge le mouvement toutes les 0,5 secondes ; le MCU commute le ruban LED.
    • Vérifiez la console : Ouvrez l'onglet Console → sous-onglet Moniteur MCU et passez devant le capteur.

    Sortie de la Console App Lab

    DIYables_Apps
    Stop
    sketch.ino
    1#include "Arduino_RouterBridge.h"
    Serial Monitor
    Python
    Message (Enter to send a message to "Newbiely" on usb(2820070321))
    New Line
    9600 baud
    Automated Lighting Bridge ready Motion detected! LED strip ON Motion stopped! LED strip OFF Motion detected! LED strip ON Motion stopped! LED strip OFF

    Intégration Telegram

    Surveillez l'état de l'éclairage automatique à distance via Telegram.

    Si vous n'avez pas encore de bot Telegram, consultez Arduino UNO Q - Bot Telegram pour obtenir votre token de bot avant de continuer.

    Programme MCU : Conservez le même programme MCU de la section Bridge précédente — aucune modification nécessaire. Assurez-vous qu'il est déjà téléversé et en cours d'exécution sur le STM32 avant de continuer.

    Script Python (Arduino App Lab) — bot Telegram pour l'éclairage automatique :

    /* * Ce code Arduino UNO Q a été développé par newbiely.fr * Ce code Arduino UNO Q 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/arduino-uno-q/arduino-uno-q-automated-light-control-with-motion-sensor-and-led-strip */ from arduino.app_utils import * import requests import time BOT_TOKEN = "YOUR_BOT_TOKEN" API_URL = f"https://api.telegram.org/bot{BOT_TOKEN}" last_update_id = 0 def send_message(chat_id, text): requests.post(f"{API_URL}/sendMessage", json={"chat_id": chat_id, "text": text}) def get_updates(): global last_update_id resp = requests.get(f"{API_URL}/getUpdates", params={"offset": last_update_id + 1, "timeout": 5}) return resp.json().get("result", []) def loop(): global last_update_id updates = get_updates() for update in updates: last_update_id = update["update_id"] msg = update.get("message", {}) chat_id = msg.get("chat", {}).get("id") text = msg.get("text", "").strip() if text == "/status": status = Bridge.call("check_motion") send_message(chat_id, status if status else "No motion state change since last check.") else: send_message(chat_id, "Commands:\n/status — check motion state and update LED strip") time.sleep(0.5) App.run(user_loop=loop)
    • Remarque : Remplacez YOUR_BOT_TOKEN par le token obtenu depuis @BotFather sur Telegram.
    • Envoyez /status pour vérifier manuellement l'état du capteur de mouvement et mettre à jour le ruban LED.

    Étapes Rapides

    • Téléversez le programme MCU : Utilisez le programme MCU Bridge de la section précédente (téléversez-le d'abord s'il ne l'est pas déjà).
    • Collez le script Telegram : Copiez le code Python ci-dessus dans l'onglet Python de votre application dans Arduino App Lab.
    • Définissez votre token : Remplacez YOUR_BOT_TOKEN dans le script par votre vrai token de bot.
    • Exécutez l'application : Cliquez sur Exécuter — le bot commence à écouter les messages Telegram.
    • Testez : Envoyez /status — le bot répond avec l'état du mouvement et du ruban LED.

    Sortie de la Console App Lab

    DIYables_Apps
    Stop
    sketch.ino
    1#include "Arduino_RouterBridge.h"
    Serial Monitor
    Python
    [2026-04-29 12:00:01] Telegram: /status [2026-04-29 12:00:01] Motion: none | LED strip: OFF [2026-04-29 12:01:30] Telegram: /status [2026-04-29 12:01:30] Motion detected! LED strip ON
    Telegram
    Telegram 12:45
    Welcome to Telegram!
    ArduinoBot 10:19
    Chatting with Arduino...
    telegram-botfather
    BotFather Yesterday
    Your bot has been created.

    ArduinoBot

    bot
    Today
    /status
    10:15 AM ✓✓
    Motion: none | LED strip: OFF
    10:16 AM
    /status
    10:17 AM ✓✓
    Motion detected! LED strip ON
    10:18 AM

    Intégration d'OpenClaw

    Vous pouvez adapter OpenClaw à ce tutoriel en vous référant aux instructions du tutoriel Arduino UNO Q - OpenClaw.

    Idées d'Applications / Projets

    • Veilleuse de couloir : Allumez automatiquement le couloir quand quelqu'un passe la nuit
    • Éclairage d'escalier : Illuminez les escaliers quand quelqu'un s'approche pour plus de sécurité
    • Lumière sous le lit : Créez un effet dramatique qui s'allume quand vous sortez du lit
    • Éclairage de placard : Allumez le ruban LED à l'intérieur d'un placard quand vous l'ouvrez et qu'une personne est à proximité
    • Éclairage de chemin de jardin : Illuminez les chemins du jardin quand un mouvement est détecté la nuit

    Mettez-Vous au Défi

    • Facile : Ajustez le potentiomètre de délai du relais pour que la lumière reste allumée plus longtemps après l'arrêt du mouvement
    • Moyen : Combinez avec une LDR — activez le ruban LED uniquement lorsqu'il fait sombre ET qu'un mouvement est détecté
    • Avancé : Envoyez une notification Telegram automatique lorsque le ruban LED s'allume

    Références des Fonctions

    ※ 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 !