Arduino UNO Q - Capteur de Porte LED

Combinez un capteur de porte avec une LED sur Arduino UNO Q pour que la LED s'allume automatiquement quand la porte s'ouvre et s'éteigne quand elle se ferme. Ajoutez Bridge et Telegram pour contrôler la LED à distance et recevoir des alertes instantanées de porte.

Dans ce tutoriel, vous apprendrez :

Arduino UNO Q Capteur de Porte LED

Matériel Requis

1×Arduino UNO Q
1×USB Cable for Arduino Uno Q
1×Capteur de porte
1×LED Kit
1×LED (red)
1×LED Module
1×220Ω Resistor
1×Plaque d'essai
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.

Note d'achat: Pour simplifier le processus de câblage, nous recommandons d'utiliser le LED Module, qui est livré avec une résistance intégrée.

À Propos de la LED et du Capteur de Porte

Si vous n'êtes pas familier avec la LED ou le capteur de porte, consultez d'abord ces tutoriels :

Schéma de Câblage

Schéma de Câblage Arduino UNO Q Capteur de Porte LED

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

Capteur de Porte :

Broche Capteur de Porte MCU Arduino UNO Q
Broche 1 GND
Broche 2 D9 (avec INPUT_PULLUP)

LED :

Broche LED MCU Arduino UNO Q
Anode (+) D3 (via résistance 220Ω)
Cathode (-) GND

Comment Programmer pour Capteur de Porte + LED

  • Configurez les broches :
pinMode(DOOR_SENSOR_PIN, INPUT_PULLUP); pinMode(LED_PIN, OUTPUT);
  • Synchronisez l'état de la LED avec le capteur de porte :
int door_state = digitalRead(DOOR_SENSOR_PIN); if (door_state == HIGH) digitalWrite(LED_PIN, HIGH); // porte ouverte → LED ALLUMÉE else digitalWrite(LED_PIN, LOW); // porte fermée → LED ÉTEINTE

Code Arduino UNO Q

L'Arduino UNO Q dispose de deux processeurs travaillant ensemble :

  • Le MCU STM32 lit le capteur de porte et contrôle la LED directement — pas de délais nécessaires, toute la logique s'exécute sur le MCU
  • Le MPU Qualcomm exécute Debian Linux et gère le Wi-Fi, Python et la connectivité cloud
  • Dans cette section, seul le MCU est programmé — le côté Linux reste inactif. Une section ultérieure montre comment les deux processeurs fonctionnent ensemble via Bridge.

La LED s'allume quand la porte s'ouvre et s'éteint quand elle se ferme. L'état est imprimé sur le Moniteur Série toutes les 500ms.

/* * 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-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); }

Étapes Rapides

Première utilisation de l'Arduino UNO Q ? Suivez le tutoriel Démarrer avec Arduino UNO Q avant de continuer.

  • Connecter : Câblez le capteur de porte et la LED sur le MCU Arduino UNO Q comme indiqué dans le schéma de câblage.
  • 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 Créer une nouvelle application, nommez-la DoorSensorLed, puis cliquez sur Créer.
  • Coller le programme : Collez le code MCU dans sketch/sketch.ino.
  • 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.
Cliquer sur le bouton Exécuter dans Arduino App Lab sur Arduino UNO Q
  • Ouvrez et fermez la porte — la LED devrait s'allumer quand la porte est ouverte et s'éteindre quand elle est fermée.

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
[2026-04-29 09:00:01] Arduino UNO Q Door Sensor + LED ready [2026-04-29 09:00:02] Door: CLOSED LED: OFF [2026-04-29 09:00:03] Door: OPEN LED: ON [2026-04-29 09:00:05] Door: CLOSED LED: OFF

Bridge : Linux + MCU

/* * 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-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"); } } }
/* * 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-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)

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
[2026-04-29 09:00:01] Arduino UNO Q Door Sensor + LED Bridge ready [2026-04-29 09:00:02] Door: CLOSED LED: OFF [2026-04-29 09:00:03] Door: OPEN LED: ON
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:03] ⚠️ Door OPENED — LED turned ON

Telegram

Recevez des alertes Telegram quand la porte s'ouvre ou se ferme, et contrôlez la LED à distance.

Programme MCU : Conservez le même programme MCU de la section Bridge précédente.

/* * 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-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)

Sortie de la Console App Lab

DIYables_Apps
Stop
sketch.ino
1#include "Arduino_RouterBridge.h"
Serial Monitor
Python
[2026-04-29 09:00:01] Waiting for Telegram messages... [2026-04-29 09:00:05] ⚠️ Door OPENED [2026-04-29 09:00:10] Door CLOSED
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
/led_on
10:15 AM ✓✓
LED is ON.
10:16 AM
/led_off
10:17 AM ✓✓
LED is OFF.
10:18 AM
/door
10:19 AM ✓✓
Door: OPEN
10:20 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 de Projets

  • Lumière automatique d'entrée : La LED (ou une ampoule via relais) s'allume automatiquement quand la porte d'entrée s'ouvre
  • Alarme de porte : Recevez une alerte Telegram immédiate quand une porte ou fenêtre surveillée s'ouvre
  • Journal de présence : Enregistrez chaque ouverture de porte avec horodatage dans un fichier Linux pour suivre les heures d'entrée et de sortie
  • Sécurité de pièce : La LED rouge s'allume dans une pièce adjacente quand quelqu'un entre

Mettez-Vous au Défi

  • Facile : Ajoutez un buzzer qui bipe quand la porte s'ouvre.
  • Moyen : Ajoutez un compteur qui compte combien de fois la porte a été ouverte et rapportez-le via /count sur Telegram.
  • Avancé : Implémentez une alarme avec délai — envoyez une alerte Telegram seulement si la porte reste ouverte plus de 30 secondes.

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