Arduino UNO Q - Automatische Lichtsteuerung mit Bewegungssensor und LED-Streifen

In diesem Leitfaden lernen Sie, wie Sie ein automatisches Lichtsteuerungssystem mit einem HC-SR501 Bewegungssensor und einem 12V LED-Streifen mit Arduino UNO Q aufbauen. Der LED-Streifen schaltet sich ein, wenn eine Bewegung erkannt wird, und aus, wenn die Bewegung stoppt. Ideal für:

Arduino UNO Q Automated Light Control Motion Sensor LED Strip

Erforderliche Hardware

1×Arduino UNO Q
1×USB Cable for Arduino Uno Q
1×HC-SR501 Bewegungssensor
1×Relais
1×12V LED-Streifen
1×12V Netzteil
1×DC-Stromanschluss
1×Verbindungskabel
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.

Über LED-Streifen und Bewegungssensor

Erfahren Sie mehr über den LED-Streifen und Bewegungssensor in den Tutorials unten:

Anfängliche Sensoreinstellung

Zeit-VerzögerungseinstellerSchraube vollständig gegen den Uhrzeigersinn (minimale Verzögerung).
ErfassungsbereicheinstellerSchraube vollständig im Uhrzeigersinn (maximaler Bereich).
Wiederholte Auslöser-AuswahlJumper im wiederholbaren Triggermodus platzieren.
Arduino motion sensor initial setting

Schaltschema

Arduino UNO Q Motion Sensor LED Strip Wiring Diagram

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

Das Relais fungiert als Schalter zwischen der 12V-Stromversorgung und dem LED-Streifen. Der Arduino UNO Q MCU steuert den IN-Pin des Relais.

MCU-Code

Der Arduino UNO Q hat zwei Prozessoren: den STM32 MCU (verwaltet die Echtzeitsteuerung der Hardware) und den Qualcomm MPU (läuft Debian Linux). In diesem Abschnitt wird nur der 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-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); } }

Schnellschritte

  • Erstes Mal mit Arduino UNO Q? Folgen Sie dem Einstieg in Arduino UNO Q Lernprogramm, um Ihre Entwicklungsumgebung vorzubereiten, bevor Sie fortfahren.
  • Verkabeln Sie die Komponenten: Verbinden Sie Sensor OUTPUT → Pin 7, Relais IN → Pin 9. Verbinden Sie den LED-Streifen über das Relais mit der 12V-Stromversorgung.
  • 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 es Ihren Arduino UNO Q erkennt.
  • Erstellen Sie eine neue App: Klicken Sie auf die Schaltfläche Create New App (Neue App erstellen).
Create New App in Arduino App Lab on Arduino UNO Q
  • Geben Sie der App einen Namen, z.B.: DIYables_AutoLight
  • Klicken Sie auf Create (Erstellen), um zu bestätigen.
  • Sie werden einen Satz von Ordnern und Dateien sehen, die in Ihrer neuen App generiert wurden.
Arduino App Lab App folders and files on Arduino UNO Q
  • Suchen Sie die Datei sketch/sketch.ino – das ist der Ort, an dem Sie die MCU-Skizze einfügen.
  • Fügen Sie die Skizze ein: Kopieren Sie den MCU-Code oben und fügen Sie ihn in die Skizzendatei ein. Behalten Sie andere Dateien wie standardmäßig bei.
    • 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 auf die Schaltfläche Run (Ausführen) in Arduino App Lab, um zu kompilieren und auf den STM32 hochzuladen.
    Click Run button in Arduino App Lab on Arduino UNO Q
    • Test: Gehen Sie vor dem Sensor – der LED-Streifen sollte sich einschalten, wenn eine Bewegung erkannt wird, und sich ausschalten, wenn die Bewegung stoppt.

    Linux + MCU Bridge-Programmierung

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

    • Der Bewegungssensor und das Relais sind beide mit dem MCU (STM32) verbunden – Sensor auf Pin 7, Relais auf Pin 9.
    • Der MPU kann sie nicht direkt steuern – er ruft Bridge.call("check_motion") auf dem MCU auf, der den Sensor liest und das Relais (und den LED-Streifen) entsprechend schaltet.
    • Der MPU hat WLAN – da der MPU vollständiges Debian Linux mit WLAN ausführt, kann er den Lichtstatus an Telegram melden.
    • Kommunikation: Bridge.call() auf der Linux-Seite ruft Bridge.provide_safe() auf der MCU-Seite auf (da digitalWrite() verwendet wird, um das Relais zu steuern)
    • ⚠️ Reserviert: /dev/ttyHS1 (Linux) und Serial1 (MCU) werden vom Arduino Router verwendet – öffnen Sie sie niemals direkt

    Kurz gesagt: MPU fragt Sensor ab → MCU liest Pin, schaltet Relais (LED-Streifen) und meldet an Monitor.

    MCU-Skizze – automatische Beleuchtung 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-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() {}

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

    /* * 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-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)
    • Hinweis: Stellen Sie sicher, dass Bridge.begin() in der MCU-Skizze aufgerufen wird und die Skizze hochgeladen ist, bevor Sie das Python-Skript auf der Linux-Seite ausführen.
    • ⚠️ Warnung: Öffnen Sie niemals direkt /dev/ttyHS1 (unter Linux) oder verwenden Sie Serial1 (auf MCU) in Ihrem Code – diese sind vom Arduino Router reserviert und der Zugriff darauf zerstört die Bridge.

    Schnellschritte

    • Laden Sie die MCU-Skizze hoch: Ö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 (Ausführen).
    • Fügen Sie das Python-Skript hinzu: Fügen Sie den Python-Code oben auf der Registerkarte Python derselben App ein.
    • Führen Sie die App aus: Klicken Sie auf Run (Ausführen) – Python fragt die Bewegung alle 0,5 Sekunden ab; MCU schaltet den LED-Streifen.
    • Überprüfen Sie die Konsole: Öffnen Sie die Registerkarte Console (Konsole) → Registerkarte MCU Monitor und gehen Sie vor dem Sensor vorbei.

    App Lab-Konsolenausgabe

    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

    Telegram-Integration

    Überwachen Sie den Status der automatischen Beleuchtung remote über Telegram.

    Wenn Sie noch keinen Telegram-Bot haben, lesen Sie Wie man einen Telegram-Bot erstellt, um Ihr Bot-Token zu erhalten, 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 automatische Beleuchtung:

    /* * 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-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)
    • Hinweis: Ersetzen Sie YOUR_BOT_TOKEN durch das Token, das Sie von @BotFather auf Telegram erhalten haben.
    • Senden Sie /status, um den Bewegungssensor manuell zu überprüfen und den LED-Streifen zu aktualisieren.

    Schnellschritte

    • Laden Sie die MCU-Skizze hoch: Verwenden Sie die Bridge MCU-Skizze aus dem vorherigen Abschnitt (laden Sie sie zuerst hoch, falls nicht bereits geschehen).
    • Fügen Sie das Telegram-Skript ein: Kopieren Sie den Python-Code oben auf die Registerkarte Python Ihrer App in Arduino App Lab.
    • Legen Sie Ihr Token fest: Ersetzen Sie YOUR_BOT_TOKEN im Skript durch Ihren tatsächlichen Bot-Token.
    • Führen Sie die App aus: Klicken Sie auf Run (Ausführen) – der Bot beginnt, auf Telegram-Nachrichten zu warten.
    • Testen Sie es: Senden Sie /status – der Bot antwortet mit dem Bewegungsstatus und LED-Streifenstatus.

    App Lab Python-Konsolenausgabe

    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

    OpenClaw-Integration

    Sie können den OpenClaw an dieses Lernprogramm anpassen, indem Sie auf die Anleitung auf der Seite Arduino Uno Q - OpenClaw verweisen.

    Ideen für Anwendung/Projekte

    • Flurnachtlicht: Beleuchten Sie automatisch den Flur, wenn jemand nachts hindurchgeht
    • Treppenbeleuchtung: Erhellen Sie die Treppen, wenn sich jemand nähert, um Sicherheit zu bieten
    • Unter-Bett-Licht: Erzeugen Sie einen dramatischen Effekt, der sich einschaltet, wenn Sie aus dem Bett aufstehen
    • Schrankbeleuchtung: Schalten Sie den LED-Streifen in einem Schrank ein, wenn Sie ihn öffnen und sich jemand in der Nähe befindet
    • Gartenweg-Beleuchtung: Beleuchten Sie Gartenwege, wenn nachts eine Bewegung erkannt wird

    Fordern Sie sich selbst heraus

    • Einfach: Passen Sie das Zeitverzögerungspotentiometer des Relais an, um das Licht länger nach dem Stoppen der Bewegung zu halten
    • Mittel: Kombinieren Sie mit einem LDR – aktivieren Sie den LED-Streifen nur, wenn es dunkel IST UND eine Bewegung erkannt wird
    • Fortgeschritten: Senden Sie eine automatische Telegram-Benachrichtigung, wenn sich der LED-Streifen einschaltet

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