Arduino UNO Q - Türsensor LED

Kombinieren Sie einen Türsensor mit einer LED auf Arduino UNO Q, damit sich die LED automatisch einschaltet, wenn die Tür öffnet, und ausschaltet, wenn sie geschlossen wird. Fügen Sie Bridge und Telegram hinzu, um die LED fernzusteuern und sofortige Türwarnungen zu erhalten.

In diesem Tutorial lernen Sie:

Arduino UNO Q Türsensor LED

Erforderliche Hardware

1×Arduino UNO Q
1×USB-Kabel für Arduino Uno Q
1×Türsensor
1×LED Kit
1×LED (red)
1×LED Module
1×220-Ohm-Widerstand
1×Steckbrett
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 LED und Türsensor

Wenn Sie mit der LED oder dem Türsensor nicht vertraut sind, lesen Sie zuerst diese Tutorials:

Verdrahtungsdiagramm

Arduino UNO Q Türsensor LED Verdrahtungsdiagramm

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

Türsensor:

Türsensor-Pin Arduino UNO Q MCU
Pin 1 GND
Pin 2 D9 (mit INPUT_PULLUP)

LED:

LED-Pin Arduino UNO Q MCU
Anode (+) D3 (über 220Ω Widerstand)
Kathode (-) GND

Programmierung für Türsensor + LED

  • Pins einrichten:
pinMode(DOOR_SENSOR_PIN, INPUT_PULLUP); pinMode(LED_PIN, OUTPUT);
  • LED-Zustand mit Türsensor synchronisieren:
int door_state = digitalRead(DOOR_SENSOR_PIN); if (door_state == HIGH) digitalWrite(LED_PIN, HIGH); // door open → LED ON else digitalWrite(LED_PIN, LOW); // door closed → LED OFF

Arduino UNO Q Code

Der Arduino UNO Q hat zwei Prozessoren, die zusammenarbeiten:

  • Der STM32 MCU liest den Türsensor und steuert die LED direkt – keine Verzögerungen erforderlich, die gesamte Logik läuft auf dem MCU
  • Die Qualcomm MPU führt Debian Linux aus und verwaltet Wi-Fi, Python und Cloud-Konnektivität
  • In diesem Abschnitt wird nur der MCU programmiert – die Linux-Seite bleibt untätig. Ein späterer Abschnitt zeigt, wie beide Prozessoren über Bridge zusammenarbeiten.

Die LED schaltet sich EIN, wenn die Tür öffnet, und AUS, wenn sie sich schließt. Der Zustand wird alle 500 ms auf dem Serial Monitor ausgegeben.

/* * 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-door-sensor-led */ #define DOOR_SENSOR_PIN 9 #define LED_PIN 3 int door_state; void setup() { Serial.begin(9600); pinMode(DOOR_SENSOR_PIN, INPUT_PULLUP); pinMode(LED_PIN, OUTPUT); Serial.println("Arduino UNO Q Door Sensor + LED ready"); } void loop() { door_state = digitalRead(DOOR_SENSOR_PIN); if (door_state == HIGH) { Serial.println("The door is open → LED ON"); digitalWrite(LED_PIN, HIGH); } else { Serial.println("The door is closed → LED OFF"); digitalWrite(LED_PIN, LOW); } delay(500); }

Schnelle Schritte

Erste Erfahrung mit Arduino UNO Q? Lesen Sie zuerst das Tutorial Erste Schritte mit Arduino UNO Q.

  • Installation: Befestigen Sie den Magneten an der Tür und den Reed-Schalter am Türrahmen.
  • Verbindung: Verdrahten Sie den Türsensor und die LED mit dem Arduino UNO Q MCU wie im Verdrahtungsdiagramm gezeigt.
  • Ö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.
Neue App in Arduino App Lab auf Arduino UNO Q erstellen
  • Geben Sie der App einen Namen, z. B.: DoorSensorLed
  • Klicken Sie auf Erstellen, um zu bestätigen.
Arduino App Lab App-Ordner und -Dateien auf Arduino UNO Q
  • Skizze einfügen: Kopieren Sie den obigen MCU-Code und fügen Sie ihn in sketch/sketch.ino ein. Behalten Sie andere Dateien als Standard.
  • Keine Bibliothek erforderlich – verwendet nur die eingebauten Funktionen digitalRead() und digitalWrite().
  • Hochladen: Klicken Sie auf die Schaltfläche Ausführen in Arduino App Lab.
Klicken Sie auf die Schaltfläche Ausführen in Arduino App Lab auf Arduino UNO Q
  • Öffnen und schließen Sie die Tür – beobachten Sie die LED und den Serial Monitor.

Arduino 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
[2026-04-29 09:00:01] Arduino UNO Q Door Sensor + LED ready [2026-04-29 09:00:02] The door is closed → LED OFF [2026-04-29 09:00:05] The door is open → LED ON [2026-04-29 09:00:08] The door is closed → LED OFF

Bridge: Linux + MCU

Dieser Abschnitt zeigt, wie Sie beide Prozessoren des Arduino UNO Q programmieren, damit die Linux-Seite den Türzustand überwachen, die LED steuern und Türereignisse über Bridge erkennen kann:

  • Der Türsensor und die LED sind mit dem MCU verbunden – der MCU überwacht Zustandsänderungen in loop() und setzt automatisch Ereignisflags
  • Die MPU kann den Türsensor nicht direkt lesen oder die LED steuern – sie ruft Bridge-Funktionen auf, um den Zustand abzufragen oder Befehle auszugeben
  • Die MPU hat Wi-Fi – mit vollständigem Debian Linux kann sie Telegram-Benachrichtigungen senden und Remote-LED-Steuerbefehle akzeptieren
  • Arduino_RouterBridge ermöglicht RPC-Kommunikation zwischen den beiden Prozessoren
  • ⚠️ /dev/ttyHS1 (Linux) und Serial1 (MCU) sind vom Router RESERVIERT – öffnen Sie sie niemals in Benutzercode

Kurz gesagt: MCU überwacht Türereignisse und steuert LED in loop() → MPU liest Zustand und sendet Befehle über Bridge → MPU-Benachrichtigungen und Fernsteuerung über Wi-Fi.

MCU-Code (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-door-sensor-led */ #include "Arduino_RouterBridge.h" #define DOOR_SENSOR_PIN 9 #define LED_PIN 3 int last_state = LOW; bool door_opened_event = false; bool door_closed_event = false; String get_door_state(String arg) { int state = digitalRead(DOOR_SENSOR_PIN); return (state == HIGH) ? "open" : "closed"; } String get_led_state(String arg) { return (digitalRead(LED_PIN) == HIGH) ? "on" : "off"; } String set_led(String arg) { if (arg == "on") { digitalWrite(LED_PIN, HIGH); Monitor.println("LED turned ON via Bridge"); return "on"; } else { digitalWrite(LED_PIN, LOW); Monitor.println("LED turned OFF via Bridge"); return "off"; } } String get_event(String arg) { if (door_opened_event) { door_opened_event = false; return "opened"; } if (door_closed_event) { door_closed_event = false; return "closed"; } return "none"; } void setup() { Bridge.begin(); Monitor.begin(); pinMode(DOOR_SENSOR_PIN, INPUT_PULLUP); pinMode(LED_PIN, OUTPUT); last_state = digitalRead(DOOR_SENSOR_PIN); digitalWrite(LED_PIN, (last_state == HIGH) ? HIGH : LOW); Bridge.provide("get_door_state", get_door_state); Bridge.provide("get_led_state", get_led_state); Bridge.provide_safe("set_led", set_led); Bridge.provide("get_event", get_event); Monitor.println("Arduino UNO Q Door Sensor + LED Bridge ready"); Monitor.println(last_state == HIGH ? "Door is open" : "Door is closed"); } void loop() { int state = digitalRead(DOOR_SENSOR_PIN); if (state != last_state) { last_state = state; if (state == HIGH) { door_opened_event = true; digitalWrite(LED_PIN, HIGH); Monitor.println("Door opened! LED ON"); } else { door_closed_event = true; digitalWrite(LED_PIN, LOW); Monitor.println("Door closed. LED OFF"); } } }

Python-Code (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-door-sensor-led */ from arduino.app_utils import * import time def loop(): door = Bridge.call("get_door_state") led = Bridge.call("get_led_state") print(f"Door: {door} LED: {led}") time.sleep(0.5) App.run(user_loop=loop)

Schnelle Schritte

  • Verbindung: Verdrahten Sie den Türsensor und die LED mit dem Arduino UNO Q wie im Verdrahtungsdiagramm gezeigt.
  • Öffnen Sie Arduino App Lab: Starten Sie Arduino App Lab und warten Sie, bis das Board erkannt wird.
  • Erstellen Sie eine neue App: Klicken Sie auf Neue App erstellen, benennen Sie sie DoorSensorLedBridge und klicken Sie auf Erstellen.
  • Fügen Sie die MCU-Skizze ein: Kopieren Sie den obigen MCU-Bridge-Code und fügen Sie ihn in sketch/sketch.ino ein.
  • Fügen Sie den Python-Code ein: Kopieren Sie den obigen Python-Bridge-Code und fügen Sie ihn in die Python-Datei in der App ein.
  • 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 Ausführen in Arduino App Lab.
Klicken Sie auf die Schaltfläche Ausführen in Arduino App Lab auf Arduino UNO Q
  • Öffnen und schließen Sie die Tür. Sehen Sie, wie LED, MCU-Konsole und Python-Konsole reagieren.

Arduino 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
[2026-04-29 09:00:01] Arduino UNO Q Door Sensor + LED Bridge ready [2026-04-29 09:00:01] Door is closed [2026-04-29 09:00:05] Door opened! LED ON [2026-04-29 09:00:08] Door closed. LED OFF [2026-04-29 09:00:15] LED turned ON via Bridge
DIYables_Apps
Stop
sketch.ino
1#include "Arduino_RouterBridge.h"
Serial Monitor
Python
[2026-04-29 09:00:02] Door: closed LED: off [2026-04-29 09:00:05] Door: open LED: on [2026-04-29 09:00:08] Door: closed LED: off

Telegram

Erhalten Sie sofortige Telegram-Benachrichtigungen, wenn sich die Tür öffnet oder schließt, und steuern Sie die LED ferngesteuert.

MCU-Skizze: Behalten Sie die gleiche MCU-Skizze aus dem vorherigen Bridge-Abschnitt.

Python-Code (Telegram)

/* * 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-door-sensor-led */ from arduino.app_utils import * import requests import time TELEGRAM_BOT_TOKEN = "YOUR_TELEGRAM_BOT_TOKEN" CHAT_ID = "YOUR_CHAT_ID" last_update_id = 0 def get_updates(): global last_update_id url = f"https://api.telegram.org/bot{TELEGRAM_BOT_TOKEN}/getUpdates" params = {"offset": last_update_id + 1, "timeout": 5} try: response = requests.get(url, params=params, timeout=10) data = response.json() if data["ok"]: return data["result"] except Exception as e: print(f"Error getting updates: {e}") return [] def send_message(chat_id, text): url = f"https://api.telegram.org/bot{TELEGRAM_BOT_TOKEN}/sendMessage" payload = {"chat_id": chat_id, "text": text} try: requests.post(url, data=payload, timeout=10) except Exception as e: print(f"Error sending message: {e}") def loop(): # Auto-notify on door events event = Bridge.call("get_event") if event == "opened": msg = "🚪 Door opened! LED is ON." print(msg) send_message(CHAT_ID, msg) elif event == "closed": msg = "🔒 Door closed. LED is OFF." print(msg) send_message(CHAT_ID, msg) # Handle Telegram commands updates = get_updates() for update in updates: last_update_id = update["update_id"] if "message" not in update: continue message = update["message"] chat_id = message["chat"]["id"] text = message.get("text", "").strip() print(f"Received: {text}") if text == "/start": send_message(chat_id, "Arduino UNO Q Door Sensor + LED Bot\n" "/door - Read current door state\n" "/led - Read current LED state\n" "/ledon - Turn LED on\n" "/ledoff - Turn LED off\n" "/event - Check for a door event") elif text == "/door": result = Bridge.call("get_door_state") send_message(chat_id, f"Door state: {result}") elif text == "/led": result = Bridge.call("get_led_state") send_message(chat_id, f"LED state: {result}") elif text == "/ledon": result = Bridge.call("set_led", "on") send_message(chat_id, f"LED turned: {result}") elif text == "/ledoff": result = Bridge.call("set_led", "off") send_message(chat_id, f"LED turned: {result}") elif text == "/event": result = Bridge.call("get_event") send_message(chat_id, f"Door event: {result}") else: send_message(chat_id, "Unknown command. Send /start for help.") time.sleep(0.5) App.run(user_loop=loop)

Schnelle Schritte

  • Ersetzen Sie YOUR_TELEGRAM_BOT_TOKEN durch Ihr tatsächliches Bot-Token von BotFather.
  • Ersetzen Sie YOUR_CHAT_ID durch Ihre Telegram-Chat-ID.
  • Fügen Sie diesen Python-Code in die Python-Datei Ihrer App ein (behalten Sie die gleiche MCU-Skizze).
  • Klicken Sie auf die Schaltfläche Ausführen. Öffnen Sie die Tür – erhalten Sie die Telegram-Benachrichtigung. Senden Sie /ledon, um die LED ferngesteuert einzuschalten.

Arduino App Lab Konsolenausgabe

DIYables_Apps
Stop
sketch.ino
1#include "Arduino_RouterBridge.h"
Serial Monitor
Python
[2026-04-29 09:10:00] Waiting for Telegram messages... [2026-04-29 09:10:05] 🚪 Door opened! LED is ON. [2026-04-29 09:10:08] 🔒 Door closed. LED is OFF. [2026-04-29 09:10:20] Received: /ledon
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
/door
10:15 AM ✓✓
Door state: closed
10:16 AM
/led
10:17 AM ✓✓
LED state: off
10:18 AM
/ledon
10:19 AM ✓✓
LED turned: on
10:20 AM
/ledoff
10:21 AM ✓✓
LED turned: off
10:22 AM
🚪 Door opened! LED is ON.
10:23 AM
🔒 Door closed. LED is OFF.
10:24 AM

OpenClaw

You can adapt the OpenClaw to this tutorial by refering the instruction on Arduino Uno Q - OpenClaw Tutorial

Projektideen

Sie können viele nützliche Projekte mit dem Türsensor und der LED auf Arduino UNO Q erstellen:

  • Eingangsanzeigelampe: Montieren Sie eine helle LED in der Nähe des Eingangs – sie leuchtet automatisch auf, wenn die Tür öffnet, und gibt Besuchern und Bewohnern ein klares visuelles Signal
  • Ferngesteuerte Türüberwachung: Verwenden Sie Telegram, um von überall aus zu prüfen, ob die Tür derzeit offen oder geschlossen ist – und schalten Sie die LED ferngesteuert ein, um sie abzuschrecken, wenn die Tür unerwartet offen ist
  • Nachtlichtauslöser: Aktivieren Sie ein relaisgesteuertes Nachtlicht über Bridge, wenn die Tür nach Sonnenuntergang öffnet – die MPU prüft die aktuelle Zeit auf Linux, bevor sie den Befehl set_led on ausgibt
  • Intelligenter Briefkasten: Installieren Sie einen Türsensor auf dem Briefkastendeckel – wenn Post geliefert wird (Deckel öffnet sich), leuchtet die LED auf und eine Telegram-Benachrichtigung wird gesendet, damit Sie wissen, wann Sie Post abholen können
  • Garagentor-Statusfeld: Verwenden Sie den Türsensor am Garagentor und die LED als Statusanzeige im Haus – die Python-Seite protokolliert auch jedes Öffnungs- und Schließereignis mit Zeitstempel in einer Datei

Fordern Sie sich selbst heraus

Sind Sie bereit, mit dem Türsensor und der LED auf Arduino UNO Q weiterzugehen? Versuchen Sie diese Herausforderungen:

  • Einfach: Fügen Sie eine zweite LED in einer anderen Farbe (z. B. grün) hinzu, die immer EIN ist, wenn die Tür geschlossen ist, und AUS, wenn sie offen ist – dies ergibt einen zweigerichtigen Status-Indikator ohne Bridge-Logik.
  • Mittel: Implementieren Sie einen Telegram-Befehl /toggle, der den LED-Zustand über Bridge umschaltet, unabhängig vom Türzustand – ermöglicht manuelle Überschreibung mit automatischer Synchronisierung beim nächsten Türereignis.
  • Fortgeschritten: Erstellen Sie eine animierte Türöffnungswarnung: Wenn die Tür öffnet, blinkt die LED mit 2Hz über PWM auf dem MCU – implementieren Sie das Blinken in einer separaten Bridge-Funktion set_led_blink(String), die "on" oder "off" als Argument nimmt.

Verwandte Tutorials

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