Arduino UNO Q - Clavier 3x4
Vous souhaitez ajouter un clavier membranaire à 12 touches à votre projet Arduino UNO Q ? Dans ce tutoriel, vous apprendrez à lire les pressions de touches et à construire un système de vérification de mot de passe — et même à recevoir des alertes Telegram lorsque des touches sont pressées.
Dans ce tutoriel, vous apprendrez :
- Ce qu'est un clavier 3x4 et comment il fonctionne
- Comment câbler le clavier 3x4 à Arduino UNO Q
- Comment programmer le MCU (code Arduino C/C++) pour détecter les pressions de touches
- Comment vérifier un mot de passe saisi sur le clavier
- Comment programmer le côté Linux (Python) et le côté MCU (C/C++) pour lire le clavier via Bridge
- Comment envoyer des notifications Telegram lorsqu'une touche est pressée sur Arduino UNO Q
- Comment utiliser OpenClaw sur Arduino UNO Q avec le clavier 3x4

Matériel Requis
Ou vous pouvez acheter les kits suivants:
| 1 | × | Kit de Capteurs DIYables (18 capteurs/écrans) |
À propos du Clavier 3x4
Un clavier 3x4 possède 12 boutons membranaires disposés en 4 rangées et 3 colonnes — une disposition standard de type téléphone avec les touches 1 à 9, *, 0 et #.
Brochage
Un clavier 3x4 possède 7 broches, réparties en rangées et colonnes :
- 4 broches pour les rangées : R1, R2, R3, R4
- 3 broches pour les colonnes : C1, C2, C3

Schéma de Câblage

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.
| Broche du Clavier | MCU Arduino UNO Q |
|---|---|
| R1 (Rangée 1) | D9 |
| R2 (Rangée 2) | D8 |
| R3 (Rangée 3) | D7 |
| R4 (Rangée 4) | D6 |
| C1 (Col 1) | D5 |
| C2 (Col 2) | D4 |
| C3 (Col 3) | D3 |
Code Arduino UNO Q
L'Arduino UNO Q dispose de deux processeurs travaillant ensemble :
- Le MCU STM32 lit la matrice du clavier directement en utilisant la bibliothèque DIYables_Keypad
- 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 travaillent ensemble via Bridge.
Étapes Rapides
Première fois avec Arduino UNO Q ? Suivez le tutoriel Démarrer avec Arduino UNO Q pour préparer votre environnement de développement avant de continuer.
- Connecter : Câblez le clavier 3x4 au MCU Arduino UNO Q comme indiqué dans le schéma de câblage ci-dessus.
- 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 Create New App.

- Donnez un nom à l'application, par exemple : Keypad3x4
- Cliquez sur Create pour confirmer.

- Coller le sketch : Copiez le code MCU ci-dessus et collez-le dans sketch/sketch.ino. Gardez les autres fichiers par défaut.
- Install the library: Click the Add sketch library button (the open book icon with a + sign) in the left sidebar.

- Search for DIYables_Keypad created by DIYables.io and click the Install button.
- Téléverser : Cliquez sur le bouton Run dans Arduino App Lab.

- Ouvrir le Moniteur Série et appuyez sur les touches du clavier. Vous verrez chaque touche s'afficher.
Clavier et Mot de Passe
Une utilisation courante d'un clavier 3x4 est la saisie d'un mot de passe. Deux touches spéciales sont utilisées :
- * — efface la saisie en cours et recommence
- # — confirme la saisie et vérifie le mot de passe
Toutes les autres touches ajoutent un caractère à la chaîne de mot de passe.
La logique :
- Appuyer sur une touche numérique → l'ajouter au tampon de saisie
- Appuyer sur * → effacer le tampon de saisie
- Appuyer sur # → comparer la saisie au mot de passe enregistré, puis effacer le tampon
※ Note:
Modifiez la variable password avec votre mot de passe souhaité avant de téléverser.
Bridge : Linux + MCU
Cette section montre comment programmer les deux processeurs de l'Arduino UNO Q afin que le côté Linux puisse lire les pressions du clavier à distance :
- Le clavier 3x4 est connecté au MCU (STM32) — le MCU l'interroge via keypad.getKey() dans loop()
- Le MPU ne peut pas lire les broches du clavier directement — il doit demander la dernière touche pressée au MCU via Bridge.call()
- Le MPU dispose du Wi-Fi — exécutant Debian Linux complet, il peut réagir aux pressions de touches et envoyer des alertes sur Internet
- 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 résumé : Le MCU interroge le clavier → le MPU lit la dernière touche via Bridge → le MPU peut réagir aux pressions de touches depuis n'importe où sur Internet.
Remarque : Dans le sketch Bridge, keypad.getKey() est appelé dans la fonction Arduino loop() pour détecter continuellement les pressions de touches — cela est nécessaire et n'interfère pas avec la communication Bridge.
Code MCU (Bridge)
Code Python (Bridge)
Étapes Rapides
- Connecter : Câblez le clavier 3x4 à 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 Create New App, nommez-la Keypad3x4Bridge, puis cliquez sur Create.
- 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.
- Téléverser : Cliquez sur le bouton Run dans Arduino App Lab.

- Appuyez sur les touches du clavier et observez la console Python.
Sortie de la Console App Lab
Telegram
Recevez des notifications Telegram lorsqu'une touche est pressée sur le clavier 3x4 — utile pour les systèmes d'accès à distance, les déclencheurs d'événements ou les alertes de code PIN.
Sketch MCU : Conservez le même sketch MCU de la section Bridge précédente.
Code Python (Telegram)
Étapes Rapides
- Remplacez YOUR_TELEGRAM_BOT_TOKEN par votre vrai token de bot obtenu depuis BotFather.
- Remplacez YOUR_CHAT_ID par votre identifiant de chat Telegram.
- Collez ce code Python dans le fichier Python de votre application (conservez le même sketch MCU).
- Cliquez sur le bouton Run. Appuyez sur les touches du clavier — votre chat Telegram recevra des alertes automatiquement.
Sortie de la Console App Lab
ArduinoBot
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 réaliser de nombreux projets créatifs en utilisant le clavier 3x4 avec Arduino UNO Q :
- Verrou à code PIN distant : L'utilisateur saisit un code PIN sur le clavier ; le MCU le valide et contrôle un relais ou un verrou solénoïde, tandis que le MPU envoie une alerte Telegram en cas de succès ou d'échec
- Saisie de nombre intelligente : Utilisez le clavier pour saisir des nombres à plusieurs chiffres (par exemple, une consigne de température ou une durée de minuterie) et les envoyer au MPU Linux via Bridge
- Validateur de clavier via Telegram : Python reçoit une commande Telegram /check, appelle get_key via Bridge et répond avec la touche la plus récemment pressée sur le clavier physique
- Système de contrôle par menu : Utilisez les touches 1 à 9 pour sélectionner des actions et # pour confirmer — Python interprète la sélection et déclenche des actions IoT telles que basculer des relais ou envoyer des requêtes HTTP
- Enregistreur de code d'accès distant : Toutes les pressions de touches sont transmises automatiquement à Telegram ; un script de sécurité sur le MPU détecte les tentatives incorrectes répétées et envoie une alerte
Défiez-vous
Prêt à aller plus loin avec le clavier 3x4 sur Arduino UNO Q ? Essayez ces défis :
- Facile : Modifiez le sketch MCU pour allumer une LED connectée à D2 chaque fois que # est pressé.
- Moyen : Implémentez un système de mot de passe complet en Python : accumulez les pressions de touches reçues via Bridge dans une chaîne, vérifiez-la par rapport à un mot de passe enregistré lorsque # arrive, et envoyez un message Telegram indiquant le succès ou l'échec.
- Avancé : Construisez un système de contrôle d'accès intégré à Telegram — un code PIN physique à 4 chiffres est saisi sur le clavier ; s'il est correct, le MCU active un relais (verrou de porte) ; le MPU enregistre chaque tentative et envoie une notification Telegram avec le résultat et un horodatage.