Arduino UNO Q - Capteur de Porte

Un capteur de porte utilise un interrupteur reed et un aimant pour détecter si une porte ou une fenêtre est ouverte ou fermée. Sur Arduino UNO Q, le MCU lit l'état de l'interrupteur reed, et le côté Linux peut envoyer des alertes Telegram dès qu'une porte s'ouvre ou se ferme.

Dans ce tutoriel, vous apprendrez :

Arduino UNO Q Capteur de Porte

Matériel Requis

1×Arduino UNO Q
1×USB Cable for Arduino Uno Q
1×Capteur de porte
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 Capteur de Porte

Brochage

Le capteur de porte est composé de deux parties :

  • Interrupteur reed — deux connecteurs métalliques (sans polarité)
  • Aimant — fixé sur la partie mobile (porte ou fenêtre)
Brochage du Capteur de Porte

Les deux broches de l'interrupteur reed sont interchangeables — pas de polarité à respecter.

Fonctionnement

L'aimant est fixé à la porte ou à la fenêtre (la partie mobile). L'interrupteur reed est fixé au cadre de porte (la partie fixe).

  • Quand la porte est fermée, l'aimant est proche de l'interrupteur reed — le circuit se ferme
  • Quand la porte est ouverte, l'aimant s'éloigne — le circuit s'ouvre
Fonctionnement du Capteur de Porte

※ Note:

L'interrupteur reed ne produit PAS directement un signal HIGH ou LOW. Connectez une broche de l'interrupteur reed à GND et l'autre à une broche d'entrée Arduino UNO Q configurée avec INPUT_PULLUP. Cela évite les valeurs flottantes :

  • Porte fermée (aimant proche) → la broche lit LOW
  • Porte ouverte (aimant éloigné) → la broche lit HIGH

Schéma de Câblage

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

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

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

Comment Programmer pour le Capteur de Porte

  • Configurez la broche MCU Arduino UNO Q comme entrée numérique avec résistance de tirage :
pinMode(DOOR_SENSOR_PIN, INPUT_PULLUP);
  • Lisez l'état de la porte :
int door_state = digitalRead(DOOR_SENSOR_PIN);
  • Vérifiez et répondez :
if (door_state == HIGH) Serial.println("The door is open"); else Serial.println("The door is closed");

Code Arduino UNO Q

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

  • Le MCU STM32 lit l'état de l'interrupteur reed directement — toute la détection s'exécute sur le MCU
  • Le MPU Qualcomm exécute Debian Linux et gère le Wi-Fi, Python et la connectivité cloud
/* * 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 */ #define DOOR_SENSOR_PIN 9 int door_state; void setup() { Serial.begin(9600); pinMode(DOOR_SENSOR_PIN, INPUT_PULLUP); Serial.println("Arduino UNO Q Door Sensor ready"); } void loop() { door_state = digitalRead(DOOR_SENSOR_PIN); if (door_state == HIGH) Serial.println("The door is open"); else Serial.println("The door is closed"); 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 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 : Nommez-la DoorSensor, 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 — observez l'état changer dans le Moniteur.

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 ready [2026-04-29 09:00:02] The door is closed [2026-04-29 09:00:04] The door is open [2026-04-29 09:00:06] The door is closed

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 */ #include "Arduino_RouterBridge.h" #define DOOR_SENSOR_PIN 9 int last_state = LOW; bool door_opened_event = false; bool door_closed_event = false; String get_state(String arg) { int state = digitalRead(DOOR_SENSOR_PIN); return (state == HIGH) ? "open" : "closed"; } 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); last_state = digitalRead(DOOR_SENSOR_PIN); Bridge.provide("get_state", get_state); Bridge.provide("get_event", get_event); Monitor.println("Arduino UNO Q Door Sensor 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; Monitor.println("Door opened!"); } else { door_closed_event = true; Monitor.println("Door closed."); } } }
/* * 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 */ from arduino.app_utils import * import time def loop(): state = Bridge.call("get_state") print(f"Door state: {state}") 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 Bridge ready [2026-04-29 09:00:02] The door is closed [2026-04-29 09:00:04] The door is open
DIYables_Apps
Stop
sketch.ino
1#include "Arduino_RouterBridge.h"
Serial Monitor
Python
[2026-04-29 09:00:02] Door: CLOSED [2026-04-29 09:00:04] ⚠️ Door OPENED! [2026-04-29 09:00:06] Door: CLOSED

Telegram

Recevez des notifications Telegram quand la porte s'ouvre ou se ferme.

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 */ 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!" print(msg) send_message(CHAT_ID, msg) elif event == "closed": msg = "🔒 Door closed." 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 Bot\n" "/state - Read current door state\n" "/event - Check for a door event") elif text == "/state": result = Bridge.call("get_state") send_message(chat_id, f"Door state: {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
/state
10:15 AM ✓✓
Door: OPEN
10:16 AM
⚠️ Door OPENED!
10:17 AM
Door CLOSED
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 de Projets

  • Système de Sécurité à Domicile : Recevez une alerte Telegram immédiate si une porte ou fenêtre s'ouvre pendant que vous êtes absent
  • Journal d'Entrée et Sortie : Enregistrez chaque ouverture de porte avec horodatage dans un fichier Linux pour un historique d'accès complet
  • Détection de Livreur : Recevez une notification quand votre boîte aux lettres est ouverte
  • Alerte de Sécurité Enfant : Soyez alerté quand un enfant ouvre une porte vers une zone restreinte

Mettez-Vous au Défi

  • Facile : Ajoutez un compteur d'ouvertures de porte et rapportez-le via /count sur Telegram.
  • Moyen : Implémentez une détection de "porte laissée ouverte" — envoyez une alerte si la porte reste ouverte plus de 60 secondes.
  • Avancé : Combinez avec une caméra ou un capteur PIR — déclenchz une capture de photo quand la porte s'ouvre et envoyez-la via Telegram.

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