Arduino UNO Q - OpenClaw
Voulez-vous contrôler votre Arduino UNO Q en tapant des messages en langage naturel au lieu de commandes bot fixes ? Ce tutoriel vous montre comment utiliser OpenClaw avec Arduino UNO Q pour envoyer des messages comme "allume la LED" ou "quel est le statut du MCU ?" depuis Telegram, WhatsApp, Discord ou n'importe quelle application de messagerie que vous utilisez déjà.
Dans ce tutoriel, vous apprendrez :
- Ce qu'est OpenClaw et comment il fonctionne avec Arduino UNO Q
- Comment installer OpenClaw sur le côté Linux de l'Arduino UNO Q (Debian)
- Comment créer une compétence Arduino UNO Q personnalisée pour OpenClaw
- Comment connecter OpenClaw à Telegram
- Comment écrire le sketch MCU Bridge pour qu'OpenClaw le contrôle
- Comment contrôler le matériel Arduino UNO Q avec des messages en langage naturel

Matériel Requis
Ou vous pouvez acheter les kits suivants:
| 1 | × | Kit de Capteurs DIYables (18 capteurs/écrans) |
Qu'est-ce qu'OpenClaw ?
OpenClaw est un assistant IA personnel que vous exécutez sur votre propre appareil. Il se connecte aux applications de messagerie que vous utilisez déjà (Telegram, WhatsApp, Discord, Slack, et bien d'autres) et utilise un modèle IA (Anthropic Claude, OpenAI, etc.) pour comprendre ce que vous dites et agir en conséquence.
Sur Arduino UNO Q, OpenClaw s'exécute sur le côté Linux (le MPU Qualcomm, qui exécute Debian Linux). Vous créez une compétence personnalisée qui apprend à OpenClaw comment appeler des fonctions MCU via le Bridge. Après ça, vous pouvez envoyer des messages en langage naturel et OpenClaw s'occupe du reste.
Fonctionnalités clés :
- Langage naturel — pas de commandes fixes ; dites la même chose de différentes manières et OpenClaw comprend
- Multi-canaux — fonctionne sur Telegram, WhatsApp, Discord, Slack, et plus encore, tous en même temps
- Extensible — ajoutez plus de fonctions Bridge et mettez à jour la compétence pour apprendre à OpenClaw à les utiliser
- Auto-hébergé — s'exécute sur le côté Linux de l'Arduino UNO Q ; vos données restent sur votre appareil
OpenClaw vs Bot Telegram
OpenClaw et le bot Telegram (couvert dans d'autres tutoriels) vous permettent tous deux de contrôler Arduino UNO Q à distance. La différence clé réside dans le fonctionnement des commandes :
| Fonctionnalité | Bot Telegram | OpenClaw |
|---|---|---|
| Style de commande | Fixe (ex. /led_on) | Langage naturel ("allume la LED") |
| Compréhension | Correspondance exacte de commande | Détection d'intention par IA |
| Canaux de messagerie | Telegram uniquement | Telegram, WhatsApp, Discord, Slack, et plus |
| Modèle IA requis | Non | Oui (clé API d'Anthropic, OpenAI, etc.) |
| Complexité de configuration | Simple | Modérée |
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 le Bridge : consultez le tutoriel Arduino UNO Q - Communication entre Linux et le MCU
- Un compte de messagerie : ce tutoriel utilise Telegram, mais OpenClaw prend également en charge WhatsApp, Discord, Slack, iMessage, et plus encore. La configuration pour les autres canaux est similaire.
- Un token de bot Telegram : vous le créerez dans la section Arduino UNO Q - Bot Telegram ci-dessous en utilisant @BotFather
- Une clé API de fournisseur IA : ce tutoriel utilise Anthropic (Claude). Vous pouvez également utiliser OpenAI ou d'autres fournisseurs pris en charge ; les étapes de configuration sont similaires. Inscrivez-vous sur console.anthropic.com, créez une clé API et copiez-la ; vous la collerez lors de l'étape d'intégration d'OpenClaw.
Comment OpenClaw + Arduino UNO Q Fonctionnent Ensemble
※ Note:
OpenClaw s'exécute sur le MPU Qualcomm (côté Linux). Le MCU expose les fonctions de contrôle matériel via le Bridge Arduino, exactement comme dans les autres tutoriels Bridge. OpenClaw appelle ces fonctions via un bridge HTTP WebUI qui s'exécute sur le côté Linux de l'Arduino UNO Q.
Voici le flux pour chaque message utilisateur :
- L'utilisateur envoie un message via Telegram (ou un autre canal connecté) : *"Bascule la LED"*
- OpenClaw reçoit le message sur Telegram (ou un autre canal), l'envoie au modèle IA Anthropic Claude, qui comprend l'intention et sélectionne la compétence Arduino UNO Q correspondante
- La compétence demande à OpenClaw d'exécuter : curl http://localhost:7000/api/toggle_led
- Le bridge WebUI — un script Python s'exécutant comme serveur web côté Linux de l'Arduino UNO Q — reçoit cette requête HTTP et appelle Bridge.call("toggle_led", "") pour atteindre le MCU
- Le MCU (STM32) bascule la LED et renvoie le résultat via le Bridge au serveur web Python
- OpenClaw reçoit le résultat et envoie la réponse à l'utilisateur : *"La LED est maintenant ALLUMÉE"*

Installer OpenClaw
L'installation d'OpenClaw n'est pas simple au moment de la rédaction de ce tutoriel. Vous pourriez rencontrer des problèmes tels que des boucles infinies pendant l'assistant d'intégration, des invites qui n'avancent pas, ou des étapes qui se comportent différemment selon la version d'OpenClaw que vous installez. Cette section vous donne les principales étapes qui ont fonctionné au moment de la rédaction — les étapes exactes peuvent différer selon la version que vous installez. Si quelque chose se bloque, quittez (Ctrl+C), consultez la documentation OpenClaw, et réessayez.
Pour vous connecter en SSH à l'Arduino UNO Q, vous avez besoin de son adresse IP. Ouvrez Arduino App Lab, allez dans Settings, et cherchez le champ IP Address.

Installer Node.js
OpenClaw nécessite Node.js 22 ou supérieur. Le côté Linux de l'Arduino UNO Q exécute Debian, donc vous l'installez via le paquet NodeSource.
N'utilisez pas le terminal SSH à l'intérieur d'Arduino App Lab (au moins la version 0.7.0) — il est instable, expire fréquemment et peut injecter des entrées inattendues. Utilisez plutôt un client SSH externe.
- Sur Windows, ouvrez PowerShell ou Windows Terminal et exécutez :
- Il vous sera demandé de saisir le mot de passe Linux que vous avez défini lors de la première configuration de l'Arduino Uno Q.
- Le terminal SSH ressemblera alors à ceci :
- Exécutez ces commandes dans le terminal SSH :
- Vous verrez une sortie se terminant par Repository configured successfully.. Puis exécutez :
Pendant l'installation, une boîte de dialogue "Which services should be restarted?" peut apparaître. Laissez la sélection par défaut et appuyez sur Entrée pour continuer.

Puis exécutez :
La dernière commande devrait afficher v22.x.x ou supérieur. Si c'est le cas, Node.js est prêt.
Installer OpenClaw
- Installer OpenClaw globalement :
- Créer les répertoires de configuration :
Vous devriez voir Setup complete: local config, workspace, and session directories are ready.
- Exécuter l'assistant d'intégration — c'est la manière la plus fiable de stocker votre clé API Anthropic :
L'assistant vous guide à travers une courte série d'invites :
- Sélectionnez Yes pour commencer la configuration
- Sélectionnez QuickStart
- Sélectionnez Anthropic comme fournisseur de modèle
- Sélectionnez Anthropic API key
- Collez votre clé API Anthropic et appuyez sur Entrée
- Sélectionnez Keep current pour le modèle (Claude 3.5 Sonnet est la valeur par défaut et fonctionne bien)
Si la session SSH se déconnecte après l'assistant, reconnectez-vous et continuez depuis l'étape suivante.
- Démarrer la Gateway en arrière-plan :
Vous verrez une sortie comme :
C'est normal. Le nombre après [1] est le numéro du job et 35925 est l'ID du processus. Appuyez une fois sur Entrée pour récupérer l'invite.
- Vérifier que la Gateway fonctionne :
Cherchez ces deux lignes dans la sortie :
Vous pouvez également voir Connectivity probe: failed — c'est normal lors de l'exécution via nohup au lieu de systemd. La gateway fonctionne toujours tant que vous voyez Gateway already running locally et un PID listé à côté du port 18789.
Connecter OpenClaw à Telegram
Étape 1 — Obtenir un Token de Bot 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. Après avoir complété ce tutoriel, vous aurez un token de bot dans ce format :
Étape 2 — Ajouter le Token de Bot à OpenClaw
Sur le côté Linux de l'Arduino UNO Q (via SSH), ouvrez le fichier de configuration OpenClaw :
Trouvez la section "channels" et remplacez-la par :
Remplacez YOUR_BOT_TOKEN_HERE par le token copié depuis BotFather. Sauvegardez et quittez nano (Ctrl+O, Entrée, Ctrl+X).
Étape 3 — Redémarrer la Gateway
Appuyez une fois sur Entrée pour récupérer l'invite après l'apparition de la sortie nohup.
Étape 4 — Vous Approuver
Ouvrez Telegram, trouvez votre bot par son nom d'utilisateur et envoyez n'importe quel message (ex. bonjour).
La première fois, OpenClaw répondra avec un message "access not configured" contenant un code de couplage :
ArduinoBot
Copiez le code de couplage depuis ce message Telegram, puis exécutez cette commande sur le côté Linux de l'Arduino UNO Q (remplacez MWS8F4WK par votre code réel) :
Étape 5 — Tester la Connexion
Envoyez un autre message à votre bot dans Telegram. OpenClaw devrait maintenant répondre normalement.
ArduinoBot
※ Note:
Pourquoi OpenClaw nécessite-t-il une approbation alors qu'un bot Telegram ordinaire n'en a pas besoin ?
Un bot Telegram standard répond à quiconque lui envoie un message — le contrôle d'accès n'est ajouté que si vous le codez vous-même. OpenClaw est différent : c'est un assistant IA personnel s'exécutant sur votre propre matériel avec votre propre clé API. Chaque message déclenche un appel API IA payant, et la compétence peut exécuter des commandes shell sur votre côté Linux. Pour protéger à la fois votre portefeuille et votre appareil, OpenClaw verrouille l'accès par défaut et exige que le propriétaire approuve explicitement chaque utilisateur avant qu'il puisse interagir.
※ Note:
OpenClaw prend également en charge WhatsApp, Discord, Slack, iMessage, et bien d'autres. Consultez la documentation des canaux OpenClaw pour les guides de configuration des autres canaux.
À ce stade, OpenClaw s'exécute sur votre Arduino UNO Q et est connecté à Telegram. Vous pouvez déjà discuter avec lui, mais il ne connaît pas encore votre matériel.
Les prochaines étapes construisent cette connexion :
- Sketch MCU Bridge — un sketch Arduino qui expose les fonctions de contrôle matériel (LED, capteurs, etc.) via le Bridge
- Bridge Python WebUI — un script Python s'exécutant dans Arduino App Lab qui reçoit les requêtes HTTP d'OpenClaw et les transfère au MCU via le Bridge
- Compétence Arduino UNO Q — un petit fichier de configuration qui apprend à OpenClaw quelles commandes exécuter et quand les utiliser
Une fois les trois en place, vous pouvez contrôler votre matériel avec des messages en langage naturel.
Code Arduino UNO Q
Le code Arduino UNO Q comprend deux parties :
- Code Python côté Linux — s'exécute sur le MPU Qualcomm (Debian Linux) ; démarre un serveur HTTP WebUI qui reçoit les requêtes d'OpenClaw et les transfère au MCU via le Bridge
- Sketch Arduino C/C++ sur MCU — s'exécute sur le STM32 ; expose les fonctions de contrôle matériel (LED, capteurs, etc.) via le Bridge pour que le script Python puisse les appeler
Sketch MCU Bridge
Le MCU expose les fonctions de contrôle matériel via le Bridge. OpenClaw appelle ces fonctions via le bridge WebUI (section suivante).
É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 : 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 démarrage.
- Créer une nouvelle application : Cliquez sur le bouton Create New App.

- Nommez l'application : OpenClawBridge
- Cliquez sur Create pour confirmer.
- Vous verrez un ensemble de dossiers et de fichiers générés dans votre nouvelle application.

- Trouvez le fichier sketch/sketch.ino — c'est là 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 Arduino_RouterBridge created by Arduino and click the Install button.
- Téléverser : Cliquez sur le bouton Run dans Arduino App Lab pour compiler et téléverser vers le STM32.

- Conseil : Gardez Arduino App Lab en cours d'exécution en arrière-plan. Le bridge Python WebUI doit être en cours d'exécution pour qu'OpenClaw puisse atteindre le MCU.
Sortie Console d'App Lab
Bridge Python WebUI
Le script Python s'exécute sur le côté Linux de l'Arduino UNO Q. Il démarre un serveur HTTP WebUI sur le port 7000. OpenClaw appelle ce serveur via curl ; le serveur transfère chaque requête au MCU via Bridge.call().
Ajouter la Brique WebUI
Le script Python nécessite la Brique WebUI - HTML — un service pré-construit qui s'exécute comme conteneur Docker sur le côté Linux de l'Arduino UNO Q et fournit l'infrastructure du serveur HTTP. Vous devez l'ajouter à votre application dans Arduino App Lab avant d'exécuter le script.
- Dans Arduino App Lab, ouvrez votre application OpenClawBridge.
- Cliquez sur le bouton Add Brick dans la barre latérale de l'éditeur pour ouvrir le catalogue de Briques.

- Trouvez et sélectionnez WebUI - HTML dans la liste, puis suivez les invites de configuration.

- Arduino App Lab ajoute automatiquement l'entrée Brique à votre fichier app.yaml — ne modifiez pas cette entrée manuellement.
※ Note:
Une Brique est un service pré-construit et prêt à l'emploi qui s'exécute sur le côté Linux de l'Arduino UNO Q. La Brique WebUI - HTML gère le serveur HTTP pour que vous n'ayez pas besoin d'installer Flask ou tout autre framework web manuellement. Consultez À Propos des Briques pour plus de détails.
Code Python
Exécuter
- Téléverser et exécuter : Cliquez sur le bouton Run dans Arduino App Lab. Ce seul bouton fait les deux : il compile et téléverse le sketch Arduino vers le MCU STM32, et démarre en même temps le bridge Python WebUI côté Linux.

- Vérifiez la console Python — vous devriez voir WebUI started on http://0.0.0.0:7000, ce qui confirme que le serveur HTTP est en cours d'exécution et prêt pour qu'OpenClaw l'appelle.
- Conseil : Gardez Arduino App Lab en cours d'exécution en arrière-plan. Le bridge Python WebUI doit être en cours d'exécution pour qu'OpenClaw puisse atteindre le MCU.
Créer la Compétence Arduino UNO Q
Une compétence est un petit dossier avec un fichier SKILL.md qui apprend à OpenClaw comment et quand utiliser votre Arduino UNO Q.
- Créer le dossier de la compétence :
- Créer SKILL.md :
Collez ce contenu :
Sauvegardez et quittez nano (Ctrl+O, Entrée, Ctrl+X).
- Recharger OpenClaw :
- Vérifier que la compétence est chargée :
Vous devriez voir arduino-uno-q dans la liste.
Tester
Assurez-vous que le sketch MCU Bridge est téléversé et que le bridge Python WebUI est en cours d'exécution sur le côté Linux de l'Arduino UNO Q. Puis ouvrez Telegram (ou le canal choisi) et envoyez des messages à votre bot OpenClaw :
- "Bascule la LED" — OpenClaw devrait basculer la LED et répondre "LED is now ON" ou "LED is now OFF"
- "Quel est le statut du MCU ?" — OpenClaw devrait répondre "MCU is running. LED: ON"
- "Allume la LED" — même que basculer ; OpenClaw comprend différentes formulations
- "Arduino est-il en cours d'exécution ?" — OpenClaw mappe cela vers la vérification de statut
Si OpenClaw répond qu'il ne peut pas atteindre le MCU, vérifiez qu'Arduino App Lab est ouvert et que le script bridge Python est en cours d'exécution.
Mettre à Jour la Compétence
Chaque fois que vous modifiez le contenu de la compétence (par exemple, après avoir ajouté une nouvelle commande Bridge), vous devez mettre à jour SKILL.md sur l'Arduino UNO Q et recharger la Gateway OpenClaw.
Connectez-vous en SSH au côté Linux de l'Arduino UNO Q :
Ouvrez le fichier de compétence dans nano :
Modifiez le contenu — collez ou tapez vos modifications — puis sauvegardez et quittez (Ctrl+O, Entrée, Ctrl+X).
Redémarrez la Gateway pour charger la compétence mise à jour :
Vérifiez que la compétence est toujours listée :
※ Note:
Vous pouvez également copier le fichier directement depuis votre ordinateur en utilisant scp :
scp SKILL.md arduino@<IP_ADDRESS>:~/.openclaw/workspace/skills/arduino-uno-q/SKILL.md
Puis redémarrez la Gateway comme indiqué ci-dessus.
Étendre la Compétence
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.
- Bridge WebUI : Ajoutez un nouvel appel expose_api dans le script Python pour le nouvel endpoint.
- SKILL.md : Ajoutez une ligne décrivant la nouvelle commande curl et quand l'utiliser.
- Recharger OpenClaw : Exécutez openclaw gateway restart pour prendre en compte la modification de la compétence.
Exemple : pour ajouter une lecture de capteur de température, exposez get_temperature sur le MCU, ajoutez-le au bridge WebUI, et ajoutez ceci à SKILL.md :
Dépannage
Rien ne fonctionne après le redémarrage de l'Arduino UNO Q
Après un redémarrage, ni Arduino App Lab (bridge Python WebUI) ni la Gateway OpenClaw ne démarrent automatiquement. Vous devez les démarrer manuellement à chaque fois, ou les configurer pour démarrer au démarrage.
Pour les démarrer manuellement après un redémarrage :
- Ouvrez Arduino App Lab sur votre PC et cliquez sur Run pour redémarrer l'application (cela redémarre à la fois le sketch MCU et le bridge Python WebUI).
- Connectez-vous en SSH au côté Linux de l'Arduino UNO Q et redémarrez la Gateway OpenClaw :
Pour que la Gateway OpenClaw démarre automatiquement au démarrage, créez un service systemd. Connectez-vous en SSH au côté Linux de l'Arduino UNO Q et exécutez :
Collez ce contenu (remplacez arduino par votre nom d'utilisateur Linux si différent) :
Sauvegardez et quittez (Ctrl+O, Entrée, Ctrl+X), puis activez et démarrez le service :
Vérifiez qu'il est en cours d'exécution :
Vous devriez voir Active: active (running). La Gateway OpenClaw démarrera maintenant automatiquement à chaque fois que l'Arduino UNO Q démarre.
※ Note:
Arduino App Lab (bridge Python WebUI) n'a actuellement pas d'option de démarrage automatique intégrée. Si vous avez besoin que le bridge WebUI démarre au démarrage sans Arduino App Lab ouvert, vous pouvez créer un second service systemd de la même manière, pointant directement vers le script Python. Alternativement, gardez Arduino App Lab ouvert sur votre PC lorsque vous avez besoin du contrôle à distance.
Idées de Projets
Vous pouvez étendre cela à n'importe quel matériel connecté au MCU Arduino UNO Q :
- Tableau de bord maison intelligente : Demandez à OpenClaw "Y a-t-il quelqu'un à la maison ?" (capteur de mouvement), "Quelle est la température ?" ou "Ferme la vanne" — tout depuis une seule fenêtre de chat
- Moniteur d'équipement à distance : Obtenez des lectures de capteur depuis un Arduino UNO Q distant via Telegram sans écrire de bot personnalisé
- Contrôle multi-canaux : Utilisez la même compétence OpenClaw sur Telegram, WhatsApp et Discord simultanément — une seule compétence, tous les canaux
- Arduino contrôlé par la voix : Associez OpenClaw à son nœud iOS ou Android et contrôlez Arduino UNO Q en parlant
- Alertes automatisées : Demandez à OpenClaw de signaler périodiquement les valeurs de capteur et de vous alerter quand un seuil est dépassé
Défiez-Vous
Prêt à aller plus loin avec OpenClaw et Arduino UNO Q ?
- Facile : Ajoutez une fonction Bridge blink_led au sketch MCU qui fait clignoter la LED trois fois. Mettez à jour le bridge WebUI et SKILL.md pour pouvoir la déclencher en disant "clignote la LED".
- Moyen : Ajoutez un deuxième canal de messagerie (Discord ou WhatsApp) à OpenClaw et vérifiez que les mêmes commandes en langage naturel y fonctionnent aussi.
- Avancé : Connectez un capteur de température ou de mouvement au MCU, exposez-le via le Bridge, ajoutez-le au bridge WebUI et à la compétence, et demandez à OpenClaw de vous envoyer automatiquement une alerte Telegram lorsqu'un mouvement est détecté ou que la température dépasse un seuil.