Arduino UNO Q - Bewegungsmelder steuert LED

In dieser Anleitung erfahren Sie, wie Sie einen HC-SR501-Bewegungsmelder verwenden, um eine LED automatisch einzuschalten, wenn eine Bewegung erkannt wird, und auszuschalten, wenn die Bewegung stoppt, unter Verwendung von Arduino UNO Q.

Arduino UNO Q Motion Sensor LED

Erforderliche Hardware

1×Arduino UNO Q
1×USB-Kabel für Arduino UNO Q
1×HC-SR501 Bewegungsmelder
1×LED Kit
1×LED (red)
1×LED Module
1×220-Ohm-Widerstand
1×Steckplatine
1×Jumper-Drähte
1×(Empfohlen) Schraubklemmenblock-Shield für Arduino Uno
1×(Empfohlen) Sensors/Servo Expansion Shield for Arduino Uno
1×(Empfohlen) Breadboard-Shield für Arduino Uno
1×(Empfohlen) Gehäuse für Arduino Uno
1×(Empfohlen) Prototyping-Grundplatte & Breadboard-Kit für Arduino Uno

Oder Sie können die folgenden Kits kaufen:

1×DIYables Sensor-Kit (18 Sensoren/Displays)
Offenlegung: Einige der in diesem Abschnitt bereitgestellten Links sind Amazon-Affiliate-Links. Wir können eine Provision für Käufe erhalten, die über diese Links getätigt werden, ohne zusätzliche Kosten für Sie. Wir schätzen Ihre Unterstützung.

Kaufhinweis: Um den Verdrahtungsprozess zu vereinfachen, empfehlen wir die Verwendung des LED Module, das mit einem eingebauten Widerstand geliefert wird.

Über Bewegungsmelder und LED

Erfahren Sie mehr über den Bewegungsmelder und die LED in den folgenden Tutorials:

Schaltplan

Arduino UNO Q Motion Sensor LED Wiring Diagram

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.

MCU-Code

Der Arduino UNO Q hat zwei Prozessoren: die STM32 MCU (verwaltet die Echtzeitkontrolle der Hardware) und die Qualcomm MPU (führt Debian Linux aus). In diesem Abschnitt wird nur die STM32 MCU programmiert – die Linux-Seite bleibt inaktiv. Ein späterer Abschnitt zeigt, wie beide Prozessoren zusammenarbeiten.

/* * Dieser Arduino UNO Q Code wurde von newbiely.de entwickelt * Dieser Arduino UNO Q Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt. * Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte: * https://newbiely.de/tutorials/arduino-uno-q/arduino-uno-q-motion-sensor-led */ #define MOTION_SENSOR_PIN 7 // The Arduino UNO Q pin connected to the OUTPUT pin of the motion sensor #define LED_PIN 3 // The Arduino UNO Q pin connected to the LED int motion_state = LOW; int motion_state_prev = LOW; void setup() { pinMode(MOTION_SENSOR_PIN, INPUT); pinMode(LED_PIN, OUTPUT); } void loop() { motion_state_prev = motion_state; motion_state = digitalRead(MOTION_SENSOR_PIN); if (motion_state_prev == LOW && motion_state == HIGH) { // Motion detected digitalWrite(LED_PIN, HIGH); // turn LED on } else if (motion_state_prev == HIGH && motion_state == LOW) { // Motion stopped digitalWrite(LED_PIN, LOW); // turn LED off } }

Schnelle Schritte

  • Neu mit Arduino UNO Q? Folgen Sie der Anleitung Erste Schritte mit Arduino UNO Q, um Ihre Entwicklungsumgebung vorzubereiten.
  • Verdrahtung der Komponenten: Verbinden Sie den Sensorausgang → Pin 7, LED (mit 220Ω-Widerstand) → Pin 3.
  • Verbinden: Schließen Sie den Arduino UNO Q mit einem USB-C-Kabel an Ihren Computer an.
  • Öffnen Sie Arduino App Lab: Starten Sie Arduino App Lab und warten Sie, bis Ihr Arduino UNO Q erkannt wird.
  • Erstellen Sie eine neue App: Klicken Sie auf die Schaltfläche Neue App erstellen.
Create New App in Arduino App Lab on Arduino UNO Q
  • Geben Sie der App einen Namen, z. B.: DIYables_MotionLED
  • Klicken Sie auf Erstellen zur Bestätigung.
  • Sie sehen einen Satz von Ordnern und Dateien, die in Ihrer neuen App erstellt wurden.
Arduino App Lab App folders and files on Arduino UNO Q
  • Suchen Sie die Datei sketch/sketch.ino – hier werden Sie die MCU-Skizze einfügen.
  • Einfügen der Skizze: Kopieren Sie den MCU-Code oben und fügen Sie ihn in die Skizzendatei ein. Behalten Sie andere Dateien als Standard.
    • 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
    • Hochladen: Klicken Sie in Arduino App Lab auf die Run-Schaltfläche, um zu kompilieren und zum STM32 hochzuladen.
    Click Run button in Arduino App Lab on Arduino UNO Q
    • Test: Gehen Sie vor den Sensor – die LED sollte sich einschalten, wenn eine Bewegung erkannt wird, und ausschalten, wenn die Bewegung stoppt.

    Linux + MCU Bridge-Programmierung

    Der Arduino UNO Q hat zwei Prozessoren, die zusammenarbeiten: die MPU (Qualcomm, führt Debian Linux aus) und die MCU (STM32, führt Zephyr OS mit Ihrer Arduino-Skizze aus). Sie kommunizieren über RPC über die Arduino_RouterBridge-Bibliothek – nie über Raw Serial Ports.

    • Der Bewegungsmelder und die LED sind beide an die MCU (STM32) angeschlossen – Sensor auf Pin 7, LED auf Pin 3.
    • Die MPU kann sie nicht direkt steuern – sie ruft Bridge.call("check_motion") auf der MCU auf, die den Sensor liest und die LED entsprechend aktualisiert.
    • Die MPU hat Wi-Fi – da die MPU vollständiges Debian Linux mit Wi-Fi ausführt, kann sie Bewegungsereignisse an Telegram weiterleiten.
    • Kommunikation: Bridge.call() auf der Linux-Seite ruft Bridge.provide_safe() auf der MCU-Seite auf (da digitalWrite() zur Steuerung der LED verwendet wird)
    • ⚠️ Reserviert: /dev/ttyHS1 (Linux) und Serial1 (MCU) werden vom Arduino Router verwendet – öffnen Sie sie nie direkt

    Kurz gesagt: MPU fragt Sensor ab → MCU liest Pin, aktualisiert LED und meldet an Monitor.

    MCU-Skizze – Bewegungsmelder steuert LED mit Bridge:

    /* * Dieser Arduino UNO Q Code wurde von newbiely.de entwickelt * Dieser Arduino UNO Q Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt. * Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte: * https://newbiely.de/tutorials/arduino-uno-q/arduino-uno-q-motion-sensor-led */ #include "Arduino_RouterBridge.h" #define MOTION_SENSOR_PIN 7 #define LED_PIN 3 int motion_state = LOW; int motion_state_prev = LOW; void check_motion() { motion_state_prev = motion_state; motion_state = digitalRead(MOTION_SENSOR_PIN); if (motion_state_prev == LOW && motion_state == HIGH) { digitalWrite(LED_PIN, HIGH); Monitor.println("Motion detected! LED ON"); } else if (motion_state_prev == HIGH && motion_state == LOW) { digitalWrite(LED_PIN, LOW); Monitor.println("Motion stopped! LED OFF"); } else { Monitor.println(motion_state == HIGH ? "Motion: ACTIVE | LED: ON" : "Motion: none | LED: OFF"); } } void setup() { Bridge.begin(); Monitor.begin(); pinMode(MOTION_SENSOR_PIN, INPUT); pinMode(LED_PIN, OUTPUT); Bridge.provide_safe("check_motion", check_motion); Monitor.println("Motion Sensor LED Bridge ready"); } void loop() {}

    Python-Skript (Arduino App Lab) – Frage Bewegungsstatus alle 0,5 Sekunden ab:

    /* * Dieser Arduino UNO Q Code wurde von newbiely.de entwickelt * Dieser Arduino UNO Q Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt. * Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte: * https://newbiely.de/tutorials/arduino-uno-q/arduino-uno-q-motion-sensor-led */ from arduino.app_utils import * import time def loop(): Bridge.call("check_motion") time.sleep(0.5) App.run(user_loop=loop)
    • Hinweis: Stellen Sie sicher, dass Bridge.begin() in der MCU-Skizze aufgerufen wird und die Skizze hochgeladen wird, bevor Sie das Python-Skript auf der Linux-Seite ausführen.
    • ⚠️ Warnung: Öffnen Sie /dev/ttyHS1 (auf Linux) oder verwenden Sie nie direkt Serial1 (auf MCU) in Ihrem Code – diese sind vom Arduino Router reserviert und der Zugriff darauf bricht die Bridge.

    Schnelle Schritte

    • MCU-Skizze hochladen: Öffnen Sie Arduino App Lab, erstellen Sie eine neue App, fügen Sie die Bridge-MCU-Skizze in sketch/sketch.ino ein, installieren Sie die Arduino_RouterBridge-Bibliothek und klicken Sie auf Run.
    • Python-Skript hinzufügen: Fügen Sie den Python-Code oben auf der Python-Registerkarte der gleichen App ein.
    • App ausführen: Klicken Sie auf Run – Python fragt alle 0,5 Sekunden die Bewegung ab; MCU aktualisiert die LED und Monitor.
    • Konsole überprüfen: Öffnen Sie die Registerkarte Konsole → Unterscheibe MCU Monitor und gehen Sie vor den Sensor.

    Ausgabe der App Lab-Konsole

    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
    Motion Sensor LED Bridge ready Motion detected! LED ON Motion stopped! LED OFF Motion detected! LED ON Motion stopped! LED OFF

    Telegram-Integration

    Steuern und überwachen Sie die bewegungsaktivierte LED remote über Telegram.

    Wenn Sie noch keinen Telegram-Bot haben, finden Sie unter So erstellen Sie einen Telegram-Bot Ihren Bot-Token, bevor Sie fortfahren.

    MCU-Skizze: Behalten Sie die gleiche MCU-Skizze aus dem vorherigen Bridge-Abschnitt – keine Änderungen erforderlich. Stellen Sie sicher, dass sie bereits hochgeladen und auf dem STM32 ausgeführt wird, bevor Sie fortfahren.

    Python-Skript (Arduino App Lab) – Telegram-Bot für bewegungsaktivierte LED:

    /* * Dieser Arduino UNO Q Code wurde von newbiely.de entwickelt * Dieser Arduino UNO Q Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt. * Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte: * https://newbiely.de/tutorials/arduino-uno-q/arduino-uno-q-motion-sensor-led */ 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") time.sleep(0.5) App.run(user_loop=loop)
    • Hinweis: Ersetzen Sie YOUR_BOT_TOKEN durch das Token, das Sie von @BotFather auf Telegram erhalten haben.
    • Senden Sie /status, um den Bewegungsmelder manuell zu überprüfen und die LED zu aktualisieren.

    Schnelle Schritte

    • MCU-Skizze hochladen: Verwenden Sie die Bridge-MCU-Skizze aus dem vorherigen Abschnitt (laden Sie sie zuerst hoch, falls noch nicht geschehen).
    • Telegram-Skript einfügen: Kopieren Sie den Python-Code oben auf der Python-Registerkarte Ihrer App in Arduino App Lab.
    • Token einstellen: Ersetzen Sie YOUR_BOT_TOKEN im Skript durch Ihren tatsächlichen Bot-Token.
    • App ausführen: Klicken Sie auf Run – der Bot beginnt, auf Telegram-Nachrichten zu hören.
    • Test: Senden Sie /status – der Bot antwortet mit dem Bewegungszustand und dem LED-Zustand.

    Ausgabe der App Lab-Konsole

    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: OFF [2026-04-29 12:01:30] Telegram: /status [2026-04-29 12:01:30] Motion detected! LED 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: OFF
    10:16 AM
    /status
    10:17 AM ✓✓
    Motion detected! LED ON
    10:18 AM

    OpenClaw-Integration

    Sie können die OpenClaw an dieses Tutorial anpassen, indem Sie sich auf die Anleitung zu Arduino UNO Q - OpenClaw beziehen

    Ideen für Anwendungen/Projekte

    • Automatische Raumlicht: Schalten Sie die Raumbeleuchtung ein, wenn jemand eintritt, und aus, wenn jemand geht
    • Treppenbeleuchtung: Beleuchtung der Treppe, wenn sich jemand nähert
    • Nachtmodus-Licht: Aktivieren Sie die LED nur, wenn es dunkel IST und eine Bewegung erkannt wird (mit LDR kombinieren)
    • Sicherheitsanzeige: Lassen Sie die LED schnell blinken, wenn nachts eine Bewegung erkannt wird

    Herausfordern Sie sich selbst

    • Einfach: Fügen Sie eine zweite LED hinzu, die während der Bewegung blinkt
    • Mittel: Halten Sie die LED 10 Sekunden nach Ende der Bewegung an, bevor Sie sie ausschalten
    • Fortgeschritten: Senden Sie automatisch eine Telegram-Benachrichtigung, wenn eine Bewegung erkannt wird (kein /status erforderlich)

    ※ UNSERE NACHRICHTEN

    • Sie können gerne den Link zu diesem Tutorial teilen. Bitte verwenden Sie jedoch unsere Inhalte nicht auf anderen Websites. Wir haben viel Mühe und Zeit in die Erstellung der Inhalte investiert, bitte respektieren Sie unsere Arbeit!