Arduino UNO Q - Interrupteur (Bascule ON/OFF)
Un interrupteur ON/OFF (aussi appelé interrupteur à bascule) reste dans sa position lorsqu'il est basculé — contrairement à un bouton-poussoir qui n'est actif que lorsqu'il est maintenu enfoncé. Dans ce tutoriel, vous apprendrez à lire l'état d'un interrupteur ON/OFF avec l'Arduino UNO Q, à détecter quand il est basculé, et à vérifier son état à distance via Telegram.

Matériel Requis
Ou vous pouvez acheter les kits suivants:
| 1 | × | Kit de Capteurs DIYables (18 capteurs/écrans) |
À Propos de l'Interrupteur ON/OFF
Brochage
La plupart des interrupteurs ON/OFF courants ont deux broches — peu importe quelle broche se connecte où.

Fonctionnement
- Connectez une broche à GND et l'autre à une broche de l'Arduino UNO Q configurée comme INPUT_PULLUP
- Interrupteur ON → la broche lit LOW
- Interrupteur OFF → la broche lit HIGH
※ Note:
Comme un bouton-poussoir, un interrupteur ON/OFF nécessite également un anti-rebond. La bibliothèque ezButton gère l'anti-rebond en interne, donc aucun code supplémentaire n'est nécessaire.
Schéma de Câblage

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.
Nous recommandons de souder des fils aux broches de l'interrupteur et de couvrir les connexions avec de la gaine thermorétractable pour une connexion fiable et durable.
Code MCU — Interrupteur ON/OFF
L'Arduino UNO Q possède deux processeurs : le MCU STM32 (gère le contrôle matériel en temps réel) et le MPU Qualcomm (exécute Debian Linux). Dans cette section, seul le MCU STM32 est programmé — le côté Linux reste inactif. Une section ultérieure montrera comment les deux processeurs fonctionnent ensemble.
La bibliothèque ezButton gère à la fois l'anti-rebond et la lecture de l'état. Utilisez isPressed() pour détecter la transition OFF→ON et isReleased() pour ON→OFF :
※ Note:
Deux cas d'utilisation courants :
- Basé sur le niveau : Vérifiez getState() == LOW pour savoir si l'interrupteur est actuellement ON.
- Basé sur le front : Utilisez isPressed() pour OFF→ON et isReleased() pour les transitions ON→OFF.
Étapes Rapides
- Première utilisation d'Arduino UNO Q ? Suivez le tutoriel Démarrer avec Arduino UNO Q pour préparer votre environnement de développement avant de continuer.
- Câbler l'interrupteur : Connectez une broche à GND et l'autre à la broche 7 selon le schéma de câblage.
- Connecter : Branchez l'Arduino UNO Q à votre ordinateur avec un câble USB-C.
- 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.

- Donnez un nom à l'application, par exemple : DIYables_Switch
- Cliquez sur Créer pour confirmer.
- Vous verrez un ensemble de dossiers et fichiers générés dans votre nouvelle application.

- Trouvez le fichier sketch/sketch.ino — c'est ici que vous collerez le sketch MCU.
- Install the library: Click the Add sketch library button (the open book icon with a + sign) in the left sidebar.

- Search for ezButton created by ArduinoGetStarted.com and click the Install button.
- Search for Arduino_RouterBridge created by Arduino and click the Install button.
- Téléverser : Cliquez sur le bouton Exécuter dans Arduino App Lab pour compiler et téléverser vers le STM32.

- Basculez l'interrupteur entre ON et OFF. L'état de l'interrupteur et les transitions sont enregistrés via le Bridge Monitor dans la section suivante.
- Conseil Pro : Ajoutez votre propre code dans chaque bloc — par exemple, allumez une LED quand l'interrupteur est ON et éteignez-la quand il est OFF.
Programmation Bridge Linux + MCU
L'Arduino UNO Q possède deux processeurs qui fonctionnent ensemble : le MPU (Qualcomm, exécute Debian Linux) et le MCU (STM32, exécute Zephyr OS avec votre sketch Arduino). Ils communiquent via RPC grâce à la bibliothèque Arduino_RouterBridge — jamais via des ports série bruts.
- L'interrupteur est connecté au MCU (STM32) — câblé à une broche d'entrée numérique sur le STM32. Le MCU lit et effectue l'anti-rebond de l'interrupteur à l'aide de la bibliothèque ezButton.
- Le MPU ne peut pas lire l'interrupteur directement — il doit demander l'état au MCU via Bridge.call(). Le MCU répond immédiatement.
- Le MPU dispose du Wi-Fi — parce que le MPU exécute Debian Linux complet avec Wi-Fi, il peut signaler l'état de l'interrupteur via Telegram à la demande.
- Communication : Bridge.call() côté Linux invoque les fonctions Bridge.provide() côté MCU
- ⚠️ Réservé : /dev/ttyHS1 (Linux) et Serial1 (MCU) sont utilisés par le routeur Arduino — ne les ouvrez jamais directement
En résumé : Le MPU demande l'état de l'interrupteur → le MCU lit la broche → le MCU signale ON ou OFF → le MPU enregistre ou transfère.
Sketch MCU — interrupteur avec Bridge et sortie Monitor :
Script Python (Arduino App Lab) — interroger l'état de l'interrupteur depuis Linux :
- Note : Assurez-vous que Bridge.begin() est appelé dans le sketch MCU et que le sketch est téléversé avant d'exécuter le script Python côté Linux.
- ⚠️ Avertissement : N'ouvrez jamais directement /dev/ttyHS1 (sur Linux) ou n'utilisez pas Serial1 (sur MCU) dans votre code — ceux-ci sont réservés par le routeur Arduino et y accéder cassera le Bridge.
Étapes Rapides
- Téléverser le sketch MCU : Ouvrez Arduino App Lab, créez une nouvelle application, collez le sketch MCU Bridge ci-dessus dans sketch/sketch.ino, installez les bibliothèques ezButton et Arduino_RouterBridge, et cliquez sur Exécuter.
- Ajouter le script Python : Collez le code Python ci-dessus dans l'onglet Python de la même application.
- Exécuter l'application : Cliquez sur Exécuter — le côté Python interroge l'état de l'interrupteur toutes les 2 secondes.
- Basculez l'interrupteur entre ON et OFF.
- Vérifiez la console : Ouvrez l'onglet Console → sous-onglet MCU Monitor pour voir les transitions enregistrées en temps réel.
Sortie de la Console App Lab
Intégration Telegram
Vérifiez l'état actuel de l'interrupteur à distance depuis n'importe où via Telegram.
Si vous n'avez pas encore de bot Telegram, consultez Arduino UNO Q - Bot Telegram pour obtenir votre token de bot avant de continuer.
Sketch MCU : Conservez le même sketch MCU de la section Bridge précédente — aucune modification nécessaire. Assurez-vous qu'il est déjà téléversé et en cours d'exécution sur le STM32 avant de continuer.
Script Python (Arduino App Lab) — bot Telegram pour l'état de l'interrupteur :
- Note : Remplacez YOUR_BOT_TOKEN par le token obtenu de @BotFather sur Telegram.
- Envoyez /state pour vérifier si l'interrupteur est actuellement ON ou OFF.
Étapes Rapides
- Téléverser le sketch MCU : Utilisez le sketch MCU Bridge de la section précédente (téléversez-le d'abord s'il ne l'est pas déjà).
- Coller le script Telegram : Copiez le code Python ci-dessus dans l'onglet Python de votre application dans Arduino App Lab.
- Définir votre token : Remplacez YOUR_BOT_TOKEN dans le script par votre vrai token de bot.
- Exécuter l'application : Cliquez sur Exécuter — le bot commence à écouter les messages Telegram.
- Testez : Basculez l'interrupteur ON, puis envoyez /state — confirmez qu'il lit "ON".
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 d'Applications/Projets
- Interrupteur de mode signalé par Telegram : Utilisez un interrupteur physique pour basculer entre deux modes de fonctionnement — vérifiez quel mode est actif via Telegram
- Moniteur d'appareil à distance : Câblez un interrupteur à un relais qui contrôle un appareil — vérifiez l'état ON/OFF à distance
- Portail de sécurité : Basculez l'interrupteur pour armer ou désarmer une alerte basée sur des capteurs — Telegram signale l'état armé actuel
- Alimentation de banc de labo : Utilisez l'interrupteur pour activer/désactiver un ensemble de sorties — surveillez depuis Telegram
- Déclencheur domotique : Basculez un interrupteur pour démarrer ou arrêter une tâche planifiée exécutée côté Linux du MPU
Défiez-Vous
- Facile : Ajoutez une LED au circuit qui s'allume quand l'interrupteur est ON et s'éteint quand il est OFF
- Moyen : Étendez le sketch Bridge pour suivre combien de fois l'interrupteur a été basculé et exposez le compteur via get_toggle_count()
- Avancé : Construisez un bot Telegram qui envoie automatiquement un message chaque fois que l'état de l'interrupteur change — utilisez une boucle de surveillance en arrière-plan en Python