Guide pour créer un bot Telegram avec ESP32

Dernière mise à jour: 15/11/2026
Auteur: Isaac
  • Intégration de la bibliothèque UniversalTelegramBot pour simplifier la communication HTTPS avec l'API Telegram.
  • Commande à distance des broches GPIO pour actionner des actionneurs tels que des LED et lire l'état des commutateurs.
  • Mise en œuvre de la sécurité par la validation de l'identifiant de chat et l'utilisation de certificats SSL.

Carte microcontrôleur connectée à une plaque d'essai avec une LED allumée, idéale pour illustrer le résultat du projet ESP32.

Avez-vous déjà envisagé de contrôler vos appareils domotiques depuis votre canapé grâce à votre téléphone portable ? Configurer un système pour contrôler un ESP32 via Telegram est l’une des solutions les plus simples et efficaces pour découvrir la domotique sans vous encombrer de serveurs externes coûteux ni de configurations complexes.

Le secret réside dans la transformation de votre carte en un petit serveur qui reçoit les commandes d'un bot. Nul besoin d'être un génie de la programmation : avec quelques bibliothèques et un peu de patience, vous pouvez configurer votre appareil pour qu'il allume des lumières ou vous alerte en temps réel sur l'état d'un capteur, le tout par messagerie instantanée.

Matériel dont vous aurez besoin

Détail d'une plaque d'essai avec câbles et composants électroniques, utile pour la section relative aux matériaux requis.

Pour commencer, inutile de dépenser une fortune. L'essentiel est de se procurer une carte ESP32 ; peu importe qu'il s'agisse d'un ancien modèle ou d'un des plus récents, la compatibilité est totale. Outre le microcontrôleur, vous aurez besoin de quelques composants de base pour les tests :

  • Une diode électroluminescente (DEL) pour vérifier que tout fonctionne.
  • Une résistance de 220 ohms pour éviter de griller la LED.
  • Un bouton-poussoir ou un interrupteur pour lire les états physiques.
  • Des câbles de connexion et une plaque d'essai pour éviter d'avoir à souder quoi que ce soit au début.

Assemblage de circuits électroniques

Des mains assemblent des composants électroniques et des fils sur une plaque d'essai pour le montage de circuits.

Avant de modifier le code, vous devez préparer le matériel. Dans cet exemple, nous connecterons la LED à la broche GPIO 33 et l'interrupteur à la broche GPIO 14. Il est important de noter que vous pouvez modifier ces broches ultérieurement, mais vous devrez alors reporter ce changement dans les constantes du programme.

  Le télégramme ne fonctionne pas correctement. Causes, solutions et alternatives

La LED est reliée à sa résistance de protection, tandis que le bouton-poussoir est intégré pour éviter tout câblage supplémentaire. Une fois le circuit assemblé sur la plaque d'essai , vous pouvez passer à la partie logicielle, qui est le cœur du système.

Configurer le bot dans Telegram

Gros plan sur une personne utilisant un smartphone pour envoyer des messages, simulant une interaction avec le bot Telegram.

Pour que l'ESP32 sache qui écouter, il faut d'abord créer l'identité du bot dans l'application Telegram. Cette étape est cruciale car elle fournit deux informations essentielles : le jeton du bot (une longue chaîne de chiffres et de lettres) et votre identifiant utilisateur . Sans ces deux éléments, l'appareil ne peut ni s'authentifier ni déterminer qui est autorisé à lui donner des ordres.

Si la conversation vous semble chaotique, n'oubliez pas que vous pouvez effacer l'historique depuis le menu en haut à droite. Le bot redémarrera alors et vous ramènera à l'écran d'accueil avec les commandes disponibles, vous permettant ainsi de repartir à zéro.

Préparation de l'environnement de développement

Ordinateur portable avec code de programmation affiché à l'écran, représentant la phase de développement dans l'IDE Arduino.

Pour que le code fonctionne, nous devons installer un outil qui nous simplifie la vie : la bibliothèque UniversalTelegramBot . Au lieu d’écrire des centaines de lignes de code pour gérer l’API Telegram, cette bibliothèque fait presque tout pour nous.

Pour l'installer, rendez-vous dans le gestionnaire de bibliothèques de l'IDE Arduino, saisissez le nom de la bibliothèque et cliquez sur « Installer ». Assurez-vous également d'avoir installé les bibliothèques WiFi et WiFiClientSecure ; elles permettent à l'ESP32 de se connecter à Internet et d'utiliser le protocole HTTPS pour une communication sécurisée.

analyse du code de contrôle

Le programme commence par définir vos identifiants de réseau Wi-Fi et les clés du bot. Il est essentiel de remplacer les valeurs d'exemple par les vôtres. SSID et mot de passeainsi que le jeton et l'identifiant de conversation. Pour l'interactivité, nous définissons une variable appelée info qui contient la liste des commandes que le bot reconnaîtra, telles que /led_on ou /sw_state.

  Comment automatiser les réponses et les sondages sur Telegram à l'aide de bots

Gestion des messages et des commandes

Le cœur du système est la fonction qui vérifie la présence de nouveaux messages. L'ESP32 utilise la méthode getUpdates pour vérifier la file d'attente des messages Ce code, provenant de Telegram, empêche toute personne inconnue de prendre le contrôle de votre domicile. Il inclut un filtre qui vérifie que l'identifiant de l'expéditeur correspond exactement au vôtre. ID_CHAT prédéfini.

Une fois l'utilisateur authentifié, le bot analyse le texte reçu : s'il détecte /led_onIl envoie un signal numérique à la broche 33 pour allumer la lumière ; s'il reçoit /led_off, le désactive. Il existe également l'option de /led_togglece qui est très pratique car inverse l'état actuel de la LED sans que vous ayez besoin de savoir si elle était allumée ou éteinte auparavant.

Lecture et achèvement du capteur

En plus d'émettre des commandes, le bot peut également fournir des informations. En utilisant la commande /sw_stateL'ESP32 lit l'état de la broche 14. Puisque nous avons configuré la broche comme INPUT_PULLUPL'appareil détectera si le bouton est enfoncé ou non et nous enverra un SMS de confirmation.

Lors du démarrage, l'appareil se connecte au Wi-Fi de manière sécurisée, c'est-à-dire qu'il reste inactif jusqu'à ce que la connexion soit stable . Pour renforcer la sécurité, le certificat racine de Telegram est utilisé, garantissant ainsi le chiffrement du trafic de données. La boucle principale effectue une vérification des messages toutes les secondes afin d'assurer la fluidité et la réactivité du système.

Grâce à ce système, nous avons intégré avec succès matériel et logiciel pour créer une passerelle de communication sans fil. Nous avons configuré un robot, géré la sécurité à l'aide d'identifiants et de certificats, et programmé les réponses des broches GPIO pour interagir avec le monde physique depuis n'importe quel endroit disposant d'une connexion Internet.

Isaac

Isaac

Écrivain passionné par le monde des octets et de la technologie en général. J'aime partager mes connaissances à travers l'écriture, et c'est ce que je vais faire dans ce blog, vous montrer toutes les choses les plus intéressantes sur les gadgets, les logiciels, le matériel, les tendances technologiques et plus encore. Mon objectif est de vous aider à naviguer dans le monde numérique de manière simple et divertissante.

  Comment envoyer des messages croisés entre WhatsApp et Telegram

Questions fréquentes

Quelle bibliothèque est nécessaire pour connecter l'ESP32 à Telegram ?

Il convient d'utiliser la bibliothèque UniversalTelegramBot, qui simplifie l'interaction avec l'API Telegram et facilite l'envoi et la réception de messages.

Comment puis-je m'assurer que je suis le seul à pouvoir contrôler le bot ?

Le code implémente un filtre qui compare l'identifiant de chat du message reçu avec un identifiant CHAT_ID prédéfini, en ignorant les commandes provenant d'un autre utilisateur.

Est-il nécessaire d'utiliser HTTPS pour communiquer avec le bot ?

Oui, Telegram nécessite des connexions sécurisées, donc WiFiClientSecure est utilisé et le certificat racine de Telegram doit être configuré sur l'ESP32.

Quel est le rôle de la commande /led_toggle dans le code ?

Cette commande permet d'inverser l'état actuel de la LED, en l'allumant si elle était éteinte ou en l'éteignant si elle était allumée.

Pourquoi utilise-t-on la fonction INPUT_PULLUP pour cet interrupteur ?

Elle sert à activer la résistance interne de la carte, évitant ainsi d'avoir à ajouter une résistance physique externe au circuit du bouton-poussoir.

Où puis-je obtenir le jeton du bot et l'identifiant de l'utilisateur ?

Le jeton est obtenu en créant le bot via BotFather sur Telegram, et l'identifiant utilisateur peut être obtenu via des bots spécialisés dans l'obtention de l'identité du profil.