Arduino UNO Q - Clavier 4x4
Vous souhaitez ajouter un clavier membranaire complet à 16 touches à votre projet Arduino UNO Q ? Dans ce tutoriel, vous apprendrez à lire les 16 touches et à construire un système de saisie de mot de passe — avec des alertes Telegram également.
Dans ce tutoriel, vous apprendrez :
- Ce qu'est un clavier 4x4 et comment il fonctionne
- Comment câbler le clavier 4x4 à 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 4x4

Matériel Requis
Ou vous pouvez acheter les kits suivants:
| 1 | × | Kit de Capteurs DIYables (18 capteurs/écrans) |
À propos du Clavier 4x4
Un clavier 4x4 possède 16 boutons membranaires disposés en 4 rangées et 4 colonnes — incluant les chiffres 0 à 9, les lettres A à D, et les symboles * et #.
Brochage
Un clavier 4x4 possède 8 broches, réparties en rangées et colonnes :
- 4 broches pour les rangées : R1, R2, R3, R4
- 4 broches pour les colonnes : C1, C2, C3, C4

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 |
| C4 (Col 4) | D2 |
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 4x4 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 : Keypad4x4
- 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 4x4 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 → 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. Vous pouvez utiliser n'importe quelle combinaison de chiffres 0–9, de lettres A–D, et de * ou # dans le mot de passe.
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 4x4 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 4x4 à 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 Keypad4x4Bridge, 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 4x4 — 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 4x4 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
- Contrôleur à touches de fonction : Utilisez les touches A à D comme raccourcis de fonction — chacune déclenche une action IoT différente (par exemple, A = lumières allumées, B = lumières éteintes, C = ventilateur allumé, D = alarme)
- Interface de calculatrice : Construisez une calculatrice simple où l'utilisateur saisit deux nombres et un opérateur via le clavier, et le résultat s'affiche sur le Moniteur Série ou un LCD
- Enregistreur de clavier via Telegram : Toutes les pressions de touches sont automatiquement transmises à un groupe Telegram pour la surveillance à distance d'un emplacement physique
- Système d'accès multi-utilisateurs : Attribuez différents codes PIN à différents utilisateurs — le MPU enregistre chaque connexion réussie avec un nom d'utilisateur et un horodatage via Telegram
Défiez-vous
Prêt à aller plus loin avec le clavier 4x4 sur Arduino UNO Q ? Essayez ces défis :
- Facile : Modifiez le sketch MCU pour allumer une LED lorsque la touche A est pressée et l'éteindre lorsque la touche B est pressée.
- Moyen : Implémentez un système de mot de passe complet en Python : accumulez les pressions de touches reçues via Bridge, vérifiez la saisie lorsque # arrive, et envoyez un message Telegram "Accès accordé" ou "Accès refusé".
- Avancé : Construisez un système d'accès par clavier multi-utilisateurs — stockez deux codes PIN différents en Python ; lorsque l'un ou l'autre code PIN est correctement saisi sur le clavier, le MCU active un relais et le MPU enregistre l'événement avec un horodatage et envoie une notification Telegram identifiant le code PIN utilisé.