Créez un bot Telegram sur Arduino MKR WiFi 1010 : Guide de démarrage IoT
Composants et fournitures
| Composant | Quantité |
|---|---|
| Arduino MKR WiFi 1010 | 1 |
À propos du projet
Ce projet montre comment interfacer Arduino avec l'API Telegram Bot. Il est construit autour de la nouvelle carte MKR WiFi 1010 équipée d'un module ESP32 par U-BLOX.
À ce stade, c'est une preuve de concept pour montrer ce qu'on peut faire. Vous n'avez besoin que de la carte Arduino.
Qu'est-ce qu'un bot Telegram ?
Les bots sont des comptes Telegram pilotés par logiciel – pas par des humains – et ont souvent des fonctions d'IA. Ils peuvent tout faire : enseigner, jouer, rechercher, diffuser, rappeler, connecter, intégrer d'autres services, ou même transmettre des commandes à l'Internet des Objets (crédits Telegram : telegram.org/blog/bot-revolution).
Dans notre cas, on enverra des commandes à l'Arduino pour construire un objet IoT simple. Il répondra à des commandes basiques et allumera/éteindra la LED intégrée. À votre imagination d'aller plus loin... (imaginez connecter un ou plusieurs relais aux broches I/O pour allumer/éteindre un chauffage ou la clim avec votre smartphone).
Étape 1 : Ce qu'il vous faut
- Arduino MKR WiFi 1010 : store.arduino.cc
- Arduino IDE 1.8.5 ou supérieur : arduino.cc
- Câble micro-USB pour connecter l'Arduino au PC
- Connexion Internet (SSID et mot de passe requis). Mieux vaut votre propre routeur pour être sûr qu'il n'est pas bloqué.
- Application Telegram sur smartphone (toute marque). Versions PC et Web aussi disponibles !
Étape 2 : Installation de l'IDE
La plupart d'entre vous ont déjà l'IDE Arduino, mais ce tutoriel s'adresse aussi aux débutants.
- Téléchargez Arduino IDE 1.8.5 (zip pour « non administrateurs » ou exe).
- La version 1.8.5 est recommandée, je n'ai pas testé les anciennes et la nouvelle carte pourrait ne pas être supportée.
- Installez les nouvelles cartes avec leurs drivers :
- Démarrez l'IDE
- Menu Outils → Boards → tout en haut Boards Manager
- Cherchez « Arduino SAMD boards » qui inclut le MKR WiFi 1010
- Cliquez, choisissez la dernière version, installez
- Attendez la fin (inclut les drivers)
- Installez la bibliothèque WiFi pour cette carte : Croquis → Inclure une bibliothèque → Gérer les bibliothèques. Cherchez « Wifinina » et installez.
- Connectez votre Arduino et attendez l'installation des drivers Windows.
- Menu Outils → Board : choisissez MKR WiFi 1010.
- Une bibliothèque spéciale est nécessaire :
ESP8266TelegramBotde Giancarlo Bacchio, légèrement modifiée pour cette carte, incluse dans le dossier du sketch. - Choisissez le bon port COM et testez avec Get Board Info.
Félicitations, l'IDE est prêt !
Étape 3 : Créer le bot Telegram
- Ouvrez Telegram, cherchez @BotFather et démarrez une discussion.
- Après
/start, tapez/newbot. - Donnez un nom à votre bot (affiché dans les détails du contact).
- Choisissez un nom d'utilisateur (5-32 caractères, lettres latines, chiffres, underscore, insensible à la casse). Doit finir par 'bot' (ex:
tetris_botouTetrisBot). - Si valide, vous recevez un long token. Copiez-le dans un fichier texte. On l'utilisera dans le code Arduino. Si perdu, tapez
/tokenpour en générer un nouveau.
Toutes les étapes : core.telegram.org/bots
Avancé (optionnel)
/setuserpic: photo de profil du bot/setabouttext: section « À propos » (visible sur le profil et quand on partage le bot)/setdescription: description (visible quand on ouvre une discussion avec le bot, bloc « What can this bot do? »)
Étape 4 : Modifier, téléverser et tester le sketch
- Téléchargez le sketch joint (
MKR1010Bot_V1_02.zip) et décompressez-le (ne changez pas noms/dossiers sauf si vous savez ce que vous faites). - Modifiez : ouvrez le sketch, allez dans l'onglet
arduino_secrets.h:- Renseignez SSID et mot de passe WiFi
- Renseignez nom, nom d'utilisateur et token du bot (fourni par @BotFather)
- Téléversez : vérifiez la carte sélectionnée dans l'IDE, compilez, puis téléversez (quelques secondes).
- Testez : IMPORTANT ! Le sketch envoie des logs dans l'IDE. Le processeur a un port USB natif (comme Leonardo). Une fois alimenté, le code attend que le moniteur série soit ouvert. Laissez branché au PC et ouvrez le moniteur série. L'Arduino se connecte à Internet, puis sonde le serveur Telegram pour nouveaux messages.
- Ouvrez Telegram, cherchez le nom de votre bot (pas le username finissant par 'bot'), ouvrez une discussion.
- Premier commande :
/start→ l'Arduino répond avec un message de bienvenue. - Tapez
help(sans slash) → liste des commandes supportées. Essayez-les toutes !
Si quelque chose ne marche pas, vérifiez les infos dans le sketch (nom, username, token...).
Certificats SSL : si erreurs de connexion au serveur Telegram (log : « Bot not connected ») :
- Outils → Wifi101/wifinina updater
- Vérifiez que la carte est connectée (port visible à gauche)
- Cliquez « Open updater sketch » et téléversez-le
- Après téléversement, choisissez le dernier firmware pour votre carte et cliquez « Update firmware »
- Section « SSL certificates » : cliquez « Add domain », saisissez
telegram.org:443, OK - Cliquez « Upload certificates to wifi module »
- Retéléversez ce sketch
Étape 5 : Améliorations
Nouvelles commandes : facile d'en implémenter. Écrivez une sous-routine par commande qui l'exécute et retourne éventuellement un statut à l'utilisateur.
Limiter les utilisateurs : ce projet est une démo. N'importe quel utilisateur Telegram peut se connecter et envoyer des commandes. Vous ne voulez pas ça ! Regardez l'image : chaque utilisateur a son User ID. Avec un peu de code, vous pouvez filtrer (ou faire une liste) d'utilisateurs autorisés. Interceptez le User ID et n'exécutez les commandes que pour les utilisateurs connus.
Matériel : beaucoup de capteurs et relais peuvent se connecter aux broches I/O de l'Arduino. Attention : cette carte est 3,3V tolérant !!! Utilisez un convertisseur de niveau de tension si nécessaire. Plus d'infos : Guide MKR WiFi 1010.
C'est tout, amusez-vous bien !
Code
MKR1010Bot_V1_02.zip (C/C++)
Sketch du bot Telegram – téléchargement uniquement (pas d'aperçu).
Processus de fabrication
- Étendre GoPiGo v2 sur Windows 10 IoT Core pour Raspberry Pi 3
- Construire une Tirelire Intelligente : Contrôler un Accepteur de Pièces avec Arduino Nano
- Détecteur de fréquence audio Arduino — Mesurer le pic sonore avec module haute sensibilité
- Contrôler une LED par Bluetooth avec Arduino et MIT App Inventor
- Morpion sur matrice LED MAX7219 avec boîtier en carton
- Construire un voltmètre DIY avec Arduino et écran Nokia 5110
- Construire un minuteur à rebours Arduino fiable avec afficheur 7 segments SparkFun
- Appareils électroménagers à commande vocale : contrôle Bluetooth avec Google Assistant
- Construire l'application Fridgeye avec un écran Nextion : guide étape par étape