Arduino UNO Q - Bot Telegram
Voulez-vous contrôler votre Arduino UNO Q depuis n'importe où avec Telegram ? Ce tutoriel vous montre comment créer un Bot Telegram qui s'exécute côté Linux de l'Arduino UNO Q (Debian) et répond à des commandes fixes comme /toggle_led ou /status — sans IA ni service cloud requis.
Dans ce tutoriel, vous apprendrez :
- Comment créer un Bot Telegram avec BotFather et obtenir un token de bot
- Comment écrire un sketch MCU qui expose le contrôle matériel via Bridge
- Comment écrire un script Python côté Linux de l'Arduino UNO Q qui reçoit les commandes Telegram et contrôle le MCU
- Comment tester le contrôle de bout en bout depuis Telegram

Matériel Requis
Ou vous pouvez acheter les kits suivants:
| 1 | × | Kit de Capteurs DIYables (18 capteurs/écrans) |
Comment Ça Fonctionne
L'Arduino UNO Q combine deux processeurs :
- MCU STM32 — exécute votre sketch Arduino. Il contrôle le matériel (LEDs, relais, capteurs, etc.) en temps réel.
- MPU Qualcomm — exécute Debian Linux complet. Il se connecte au Wi-Fi et peut exécuter un script Python qui communique avec Telegram.
Les deux processeurs communiquent via le Bridge. Le MCU expose les fonctions matérielles via Bridge, et le script Python côté Linux appelle ces fonctions lorsqu'une commande Telegram arrive.
Voici le flux pour chaque message utilisateur :
- L'utilisateur envoie une commande au bot Telegram : /toggle_led
- Le script Python exécuté côté Linux de l'Arduino UNO Q interroge l'API Telegram, reçoit le message et analyse la commande
- Le script Python appelle Bridge.call("toggle_led", "") pour atteindre le MCU
- Le MCU (STM32) bascule la LED et retourne le résultat via Bridge
- Le script Python envoie la réponse à l'utilisateur via Telegram : LED is now ON
※ Note:
Le script Python utilise le long polling — il demande répétitivement à Telegram "y a-t-il de nouveaux messages ?". Cela fonctionne sans adresse IP publique ni redirection de port, donc il s'exécute sur n'importe quel réseau.
| Fonctionnalité | Détails |
|---|---|
| Style de commande | Commandes fixes (ex. /toggle_led, /status) |
| Nécessite un modèle IA | Non |
| Canal de messagerie | Telegram uniquement |
| S'exécute sur | Côté Linux de l'Arduino UNO Q (Debian) |
| Nécessite une IP publique | Non (utilise le polling) |
※ Note:
Si vous souhaitez un contrôle en langage naturel ("allume la LED", "quel est le statut ?") sur plusieurs canaux (Telegram, WhatsApp, Discord, et plus), consultez le tutoriel Arduino UNO Q - OpenClaw à la place.
Prérequis
Avant de commencer, assurez-vous d'avoir :
- Arduino UNO Q opérationnel — suivez d'abord le tutoriel Démarrer avec Arduino UNO Q
- Arduino App Lab installé et fonctionnel
- Familiarité avec Bridge — consultez le tutoriel Arduino UNO Q - Communication entre Linux et le MCU
- Un compte Telegram — installez Telegram sur votre téléphone ou ordinateur depuis telegram.org
- Arduino UNO Q connecté au Wi-Fi pour que le côté Linux puisse accéder à Internet
Étape 1 — Créer un Bot Telegram avec BotFather
BotFather est le bot Telegram officiel qui crée et gère les autres bots. Vous l'utiliserez pour obtenir un token de bot — la clé que votre script Python utilise pour envoyer et recevoir des messages.
- Ouvrez Telegram et recherchez @BotFather, ou ouvrez ce lien : t.me/BotFather
- Démarrez une conversation et envoyez :
BotFather
- Envoyez un nom d'affichage pour votre bot (cela peut être n'importe quoi) :
BotFather
- Envoyez un nom d'utilisateur se terminant par bot (doit être unique dans tout Telegram) :
BotFather
- Copiez le token du bot — il ressemble à ceci :
※ Note:
Gardez votre token de bot secret. Quiconque le possède peut envoyer et recevoir des messages via votre bot.
Étape 2 — Code Arduino UNO Q
Code MCU
Le sketch MCU expose les fonctions de contrôle matériel via Bridge. Le script Python côté Linux appelle ces fonctions lorsqu'une commande Telegram arrive.
Code Python
Le script Python s'exécute côté Linux de l'Arduino UNO Q. Il interroge l'API Telegram pour les nouveaux messages, analyse les commandes, appelle le MCU via Bridge et envoie les réponses.
É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.
- 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. Cela peut prendre quelques minutes au premier lancement.
- Créer une nouvelle application : Cliquez sur le bouton Créer une nouvelle application.

- Nommez l'application : TelegramBot
- Cliquez sur Créer pour confirmer.
- Vous verrez un ensemble de dossiers et fichiers générés dans votre nouvelle application.
- Install the library: Click the Add sketch library button (the open book icon with a + sign) in the left sidebar.

- 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, puis démarrer le script Python.

- Conseil Pro : Gardez Arduino App Lab ouvert en arrière-plan. Le script Python doit être en cours d'exécution pour que les commandes Telegram atteignent le MCU.
Sortie de la Console App Lab
Commandes Disponibles
Une fois le bot en cours d'exécution, envoyez ces commandes à votre bot dans Telegram :
| Commande | Ce qu'elle fait |
|---|---|
| /toggle_led | Bascule la LED intégrée ON ou OFF et répond avec le nouvel état |
| /led_on | Allume la LED |
| /led_off | Éteint la LED |
| /status | Retourne le statut MCU actuel (uptime et état de la LED) |
| /help | Liste toutes les commandes disponibles |
Testez-Le
Assurez-vous que le sketch MCU Bridge est téléversé et que le script Python est en cours d'exécution dans Arduino App Lab. Ensuite, ouvrez Telegram, trouvez votre bot par son nom d'utilisateur et envoyez des commandes :
ArduinoBot
Si le bot ne répond pas, vérifiez que :
- Arduino App Lab est ouvert et le script Python est en cours d'exécution
- L'Arduino UNO Q est connecté au Wi-Fi
- BOT_TOKEN est correctement défini dans le code Python
- Vous envoyez des messages depuis le compte Telegram dont vous avez défini l'identifiant de chat
Étendre le Bot
Pour ajouter plus de contrôles matériels, suivez ces étapes :
- Côté MCU : Ajoutez un nouvel appel Bridge.provide_safe() dans le sketch MCU pour la nouvelle fonction.
- Côté Python : Ajoutez un nouveau bloc elif command == "/votre_commande": dans le script Python, appelez Bridge.call("votre_fonction", ""), et envoyez la réponse.
Exemple : pour ajouter une commande de contrôle de relais, exposez toggle_relay sur le MCU, puis ajoutez ceci au script Python :
Puis ajoutez /toggle_relay — Basculer le relais au texte de réponse /help.
Idées de Projets
Vous pouvez l'étendre à n'importe quel matériel connecté au MCU de l'Arduino UNO Q :
- Contrôle de bandeau LED à distance : Envoyez /led_on et /led_off pour basculer l'éclairage décoratif depuis n'importe où
- Tableau de bord de capteurs : Utilisez /status pour obtenir les lectures de température, d'humidité ou de capteur de mouvement à la demande
- Contrôle de porte ou portail : Envoyez /unlock pour déclencher un relais qui ouvre une serrure électromagnétique
- Système d'alerte : Combinez le polling avec des vérifications périodiques du statut MCU pour vous envoyer un message Telegram lorsqu'un seuil est dépassé (ex. : température trop élevée)
- Panneau de commande multi-commandes : Ajoutez des commandes pour plusieurs appareils et contrôlez tout votre laboratoire depuis un seul chat Telegram
Défiez-Vous
Prêt à aller plus loin ?
- Facile : Ajoutez une commande /blink qui fait clignoter la LED trois fois et répond "Terminé !" lorsque c'est fini.
- Moyen : Ajoutez une vérification de mot de passe — le bot répond uniquement aux commandes commençant par un mot-clé secret (ex. /abc123 toggle_led), de sorte que même si quelqu'un connaît le nom d'utilisateur de votre bot, il ne peut pas contrôler le matériel sans le mot de passe.
- Avancé : Connectez un capteur de température au MCU, exposez-le via Bridge, ajoutez une commande /temperature, et configurez le bot pour vous envoyer une alerte automatique si la température dépasse un seuil défini.