Arduino UNO Q - Serrure Solénoïde

Une serrure solénoïde (également appelée serrure à gâche électrique) est alimentée par 12V DC et contrôlée via un relais. L'Arduino UNO Q peut verrouiller et déverrouiller automatiquement une porte, un placard ou un tiroir — et avec Bridge et Telegram, vous pouvez contrôler la serrure à distance depuis n'importe où.

Dans ce tutoriel, vous apprendrez :

Arduino UNO Q Serrure Solénoïde

Matériel Requis

1×Arduino UNO Q
1×USB Cable for Arduino Uno Q
1×Serrure à solénoïde
1×Relais
1×Adaptateur secteur 12V
1×Connecteur d'alimentation DC
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 de la Serrure Solénoïde

Brochage

La serrure solénoïde possède deux fils :

  • Fil positif (+) rouge : Connecter à l'alimentation 12V DC
  • Fil négatif (-) noir : Connecter au GND de l'alimentation 12V DC
Brochage de la Serrure Solénoïde

Fonctionnement

  • Lorsque la serrure solénoïde reçoit de l'alimentation → la langue de serrure se déploie → la porte est verrouillée
  • Lorsque la serrure solénoïde n'a pas d'alimentation → la langue de serrure se rétracte → la porte est déverrouillée

※ Note:

La serrure solénoïde nécessite 12V DC — elle ne doit JAMAIS être connectée directement à une broche de l'Arduino UNO Q. Utilisez toujours un relais comme intermédiaire. Le relais est contrôlé par le MCU et commute l'alimentation 12V vers la serrure solénoïde.

Lorsque le relais est câblé en configuration normalement ouvert :

  • Relais ouvert (broche LOW) → pas d'alimentation à la serrure → porte déverrouillée
  • Relais fermé (broche HIGH) → alimentation à la serrure → porte verrouillée

Pour l'état déverrouiller (HIGH) et l'état verrouiller (LOW), référez-vous au code — le mappage dépend du type de votre module relais (actif-HIGH ou actif-LOW).

Schéma de Câblage

Schéma de Câblage Arduino UNO Q Serrure Solénoïde

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

Connectez la broche IN du module relais à la broche MCU D3. Connectez les bornes COM et NO du relais entre l'alimentation 12V et la serrure solénoïde. Connectez le VCC du relais à 5V et GND à GND.

Broche Relais MCU Arduino UNO Q
GND GND
VCC 5V
IN D3

Comment Programmer pour la Serrure Solénoïde

  • Configurer la broche du relais en sortie :
pinMode(RELAY_PIN, OUTPUT);
  • Déverrouiller et verrouiller le solénoïde :
digitalWrite(RELAY_PIN, HIGH); // unlock delay(5000); digitalWrite(RELAY_PIN, LOW); // lock

Code Arduino UNO Q

L'Arduino UNO Q possède deux processeurs qui fonctionnent ensemble :

  • Le MCU STM32 contrôle le relais qui commute l'alimentation vers la serrure solénoïde — toute la logique de timing et d'état 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.

Ce code déverrouille la serrure solénoïde pendant 5 secondes, puis la verrouille à nouveau — en répétant continuellement.

/* * 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-solenoid-lock */ // This code locks and unlocks the solenoid lock every 5 seconds. // The relay is connected to the solenoid lock which requires a 12V power supply. #define RELAY_PIN 3 // The Arduino UNO Q MCU pin connected to the relay IN pin void setup() { Serial.begin(9600); pinMode(RELAY_PIN, OUTPUT); Serial.println("Arduino UNO Q Solenoid Lock ready"); } void loop() { Serial.println("Unlocking..."); digitalWrite(RELAY_PIN, HIGH); // unlock the door delay(5000); Serial.println("Locking..."); digitalWrite(RELAY_PIN, LOW); // lock the door delay(5000); }

Étapes Rapides

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

  • Connecter : Câblez la serrure solénoïde, le relais et l'alimentation 12V sur le MCU de l'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 le bouton Créer une nouvelle application.
Créer une nouvelle application dans Arduino App Lab sur Arduino UNO Q
  • Donnez un nom à l'application, par exemple : SolenoidLock
  • Cliquez sur Créer pour confirmer.
Dossiers et fichiers de l'application Arduino App Lab sur Arduino UNO Q
  • Coller le sketch : Copiez le code MCU ci-dessus et collez-le dans sketch/sketch.ino. Laissez les autres fichiers par défaut.
  • Aucune bibliothèque requise — utilise uniquement la fonction intégrée digitalWrite().
  • Téléverser : Cliquez sur le bouton Exécuter dans Arduino App Lab.
Cliquez sur le bouton Exécuter dans Arduino App Lab sur Arduino UNO Q
  • Observez la serrure solénoïde alterner entre verrouillé et déverrouillé toutes les 5 secondes.

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 Solenoid Lock ready [2026-04-29 09:00:01] Unlocking... [2026-04-29 09:00:06] Locking... [2026-04-29 09:00:11] Unlocking... [2026-04-29 09:00:16] Locking...

Bridge : Linux + MCU

Cette section montre comment programmer les deux processeurs de l'Arduino UNO Q pour que le côté Linux puisse verrouiller et déverrouiller la serrure solénoïde via Bridge :

  • La serrure solénoïde est connectée au MCU via relais — le MCU contrôle la broche de sortie du relais
  • Le MPU ne peut pas contrôler le relais directement — il appelle des fonctions Bridge pour verrouiller ou déverrouiller
  • Le MPU dispose du Wi-Fi — exécutant Debian Linux complet, il peut accepter des commandes de Telegram ou de tout service web et les traduire en actions de verrouillage/déverrouillage
  • Arduino_RouterBridge permet la communication RPC entre les deux processeurs
  • ⚠️ /dev/ttyHS1 (Linux) et Serial1 (MCU) sont RÉSERVÉS par le routeur — ne les ouvrez jamais dans le code utilisateur

En bref : Le MPU reçoit des commandes de verrouillage/déverrouillage → appelle Bridge → Le MCU contrôle le relais → La serrure solénoïde s'active.

Code MCU (Bridge)

/* * 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-solenoid-lock */ #include "Arduino_RouterBridge.h" #define RELAY_PIN 3 // The Arduino UNO Q MCU pin connected to the relay IN pin bool is_unlocked = false; String unlock(String arg) { digitalWrite(RELAY_PIN, HIGH); is_unlocked = true; Monitor.println("Solenoid lock: UNLOCKED"); return "unlocked"; } String lock(String arg) { digitalWrite(RELAY_PIN, LOW); is_unlocked = false; Monitor.println("Solenoid lock: LOCKED"); return "locked"; } String get_state(String arg) { return is_unlocked ? "unlocked" : "locked"; } void setup() { Bridge.begin(); Monitor.begin(); pinMode(RELAY_PIN, OUTPUT); digitalWrite(RELAY_PIN, LOW); // start locked Bridge.provide_safe("unlock", unlock); Bridge.provide_safe("lock", lock); Bridge.provide("get_state", get_state); Monitor.println("Arduino UNO Q Solenoid Lock Bridge ready"); Monitor.println("Initial state: LOCKED"); } void loop() {}

Code Python (Bridge)

/* * 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-solenoid-lock */ from arduino.app_utils import * import time def loop(): state = Bridge.call("get_state") print(f"Lock state: {state}") # Example: unlock for 5 seconds, then lock again if state == "locked": print("Unlocking...") Bridge.call("unlock") time.sleep(5) print("Locking...") Bridge.call("lock") time.sleep(1) App.run(user_loop=loop)

Étapes Rapides

  • Connecter : Câblez la serrure solénoïde, le relais et l'alimentation 12V sur l'Arduino UNO Q comme indiqué dans le schéma de câblage.
  • Ouvrir Arduino App Lab : Lancez Arduino App Lab et attendez que la carte soit détectée.
  • Créer une nouvelle application : Cliquez sur Créer une nouvelle application, nommez-la SolenoidLockBridge, puis cliquez sur Créer.
  • Coller le sketch MCU : Copiez le code MCU Bridge ci-dessus et collez-le dans sketch/sketch.ino.
  • Coller le code Python : Copiez le code Python Bridge ci-dessus et collez-le dans le fichier Python de l'application.
  • 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.
Cliquez sur le bouton Exécuter dans Arduino App Lab sur Arduino UNO Q
  • Observez le cycle de la serrure : déverrouiller → attendre 5 secondes → verrouiller → attendre 1 seconde → répéter.

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 Solenoid Lock Bridge ready [2026-04-29 09:00:01] Initial state: LOCKED [2026-04-29 09:00:02] Solenoid lock: UNLOCKED [2026-04-29 09:00:07] Solenoid lock: LOCKED
DIYables_Apps
Stop
sketch.ino
1#include "Arduino_RouterBridge.h"
Serial Monitor
Python
[2026-04-29 09:00:02] Lock state: locked [2026-04-29 09:00:02] Unlocking... [2026-04-29 09:00:07] Locking... [2026-04-29 09:00:08] Lock state: locked

Telegram

Contrôlez la serrure solénoïde à distance via Telegram — verrouillez et déverrouillez depuis n'importe où avec une simple commande.

Sketch MCU : Gardez le même sketch MCU de la section Bridge précédente.

Code Python (Telegram)

/* * 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-solenoid-lock */ 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(): 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 Solenoid Lock Bot\n" "/unlock - Unlock the solenoid lock\n" "/lock - Lock the solenoid lock\n" "/state - Read current lock state") elif text == "/unlock": result = Bridge.call("unlock") send_message(chat_id, f"🔓 Lock state: {result}") elif text == "/lock": result = Bridge.call("lock") send_message(chat_id, f"🔒 Lock state: {result}") elif text == "/state": result = Bridge.call("get_state") send_message(chat_id, f"Lock state: {result}") else: send_message(chat_id, "Unknown command. Send /start for help.") time.sleep(1) App.run(user_loop=loop)

Étapes Rapides

  • Remplacez YOUR_TELEGRAM_BOT_TOKEN par votre token de bot réel obtenu auprès de BotFather.
  • Remplacez YOUR_CHAT_ID par votre identifiant de chat Telegram.
  • Collez ce code Python dans le fichier Python de votre application (gardez le même sketch MCU).
  • Cliquez sur le bouton Exécuter. Envoyez /unlock depuis Telegram pour ouvrir la serrure, puis /lock pour la refermer.

Sortie de la Console App Lab

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] Received: /unlock [2026-04-29 09:10:12] Received: /state [2026-04-29 09:10:20] Received: /lock
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 ✓✓
Lock state: locked
10:16 AM
/unlock
10:17 AM ✓✓
🔓 Lock state: unlocked
10:18 AM
/state
10:19 AM ✓✓
Lock state: unlocked
10:20 AM
/lock
10:21 AM ✓✓
🔒 Lock state: locked
10:22 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

Vous pouvez créer de nombreux projets utiles avec la serrure solénoïde et l'Arduino UNO Q :

  • Serrure de porte contrôlée par Telegram : Contrôlez votre porte d'entrée ou de bureau à distance via Telegram — /unlock pour laisser entrer quelqu'un et /lock pour la sécuriser à nouveau, avec tous les événements enregistrés avec horodatage
  • Verrouillage automatique basé sur l'heure : Programmer le MPU (Python Linux) pour verrouiller automatiquement à 22h et déverrouiller à 7h chaque jour — en utilisant l'horloge système côté Linux pour déclencher les commandes Bridge
  • Système d'accès par clavier : Combiner la serrure solénoïde avec un clavier 4x4 sur le MCU — déverrouiller quand le bon PIN est entré, et envoyer une alerte Telegram à chaque fois qu'un mauvais PIN est essayé trois fois de suite
  • Système de journal d'accès : Enregistrer chaque événement de verrouillage et déverrouillage dans un fichier CSV sous Linux — inclure l'horodatage, la source de la commande (Telegram ou automatique), et générer des rapports quotidiens envoyés à Telegram
  • Gestionnaire d'accès invité : Créer un déverrouillage à durée limitée via Telegram — /unlock_5min déverrouille la porte et la reverrouille automatiquement après 5 minutes, avec une confirmation Telegram envoyée lorsque le minuteur expire

Défiez-vous

Prêt à aller plus loin avec la serrure solénoïde sur Arduino UNO Q ? Essayez ces défis :

  • Facile : Ajoutez une commande Telegram /unlock_10s qui déverrouille la serrure pendant exactement 10 secondes en utilisant time.sleep(10) côté Python avant d'appeler Bridge.call("lock").
  • Moyen : Implémentez une commande Telegram /schedule qui analyse un argument horaire (ex. /schedule 23:00) et verrouille automatiquement la porte à cette heure en utilisant l'horloge système Linux sur le MPU.
  • Avancé : Créez un système d'accès multi-utilisateurs : stockez une liste d'identifiants Telegram autorisés dans un fichier Python — seuls ces utilisateurs peuvent envoyer des commandes /unlock, et toutes les tentatives non autorisées déclenchent une alerte Telegram vers l'identifiant de chat de l'administrateur.

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