La librairie Universal Arduino Telegram Bot compatible Arduino, ESP32 et ESP8266 passe à la version 1.1.0 • Domotique et objets connectés à faire soi-même

Brian Lough (@witnessmenow) vient de mettre à jour la librairie Universal-Arduino-Telegram-Bot qui permet de communiquer avec l’interface API de Telegram. La version 1.1.0 est disponible sur GitHub ou directement depuis le gestionnaire de librairie de l’IDE Arduino.

Pour fonctionner, vous aurez besoin d’installer la librairie ArduinoJson de Benoît Blanchon (@bblanchon).

La librairie est compatible avec les cartes de développement ESP8266, ESP32 et Arduino 101. Certaines fonctions sont réservés à l’ESP8266 :

  • BulkMessages qui permet d’envoyer des messages à plusieurs souscripteurs
  • UsingWifiManager qui permet d’utiliser la librairie WiFiManager (présentée dans ce tutoriel) pour gérer des connexions WiFi multiples

Fonctionnalités de la librairie Universal Arduino Telegram Bot

Recevoir des messages Telegram

Le programme Arduino/ESP8266 peut lire les messages qui lui sont envoyés depuis un compte ou un groupe Telegram. C’est la commande de base qui pourra être utilisée pour gérer les actions demandées depuis le compte Telegram. Piloter un relais pour allumer une lampe ou la pompe de l’arrosage automatique.

Usage

  • int getUpdates(long offset)
  • bot.messages, stocke les messages reçus
  • bot.last_message_received retourne le nombre de messages reçus
  • Exemple FlashLED

Pour obtenir l’index (ID) du dernier message reçu, on doit incrémenter le compteur de message reçus

int numNewMessages = bot.getUpdates(bot.last_message_received + 1);

Envoyer des messages Telegram

Envoyez des messages à n’importe quel groupe ou compte Telegram. C’est très utile pour être alerté lorsqu’un événement est déclenché ou un seuil atteint. On pourra très facilement développer un mini système d’alarme à base de capteur à ultrason, capteur de mouvement HC-SR501 ou un contacteur , un détecteur de fuite d’eau, un détecteur de panne de frigo ou de congélateur, un seuil trop élevé de CO2…

Usage

  • bool sendMessage(String chat_id, String text, String parse_mode = “”). Renvoi True si le message a correctement été délivré.
  • Exemple EchoBot

Envoyer des réponses pré-écrites

Permet d’envoyer au compte ou groupe Telegram (chat_id) des réponses pré-écrites. C’est très pratique et évite de devoir saisir la réponse (et de devoir s’en souvenir !). Par exemple, si le taux d’humidité dans la laverie est trop élevé, la sonde peut vous demander si vous voulez allumer le désumidificateur (ON/OFF).

Usage :

  • bool sendMessageWithReplyKeyboard(String chat_id, String text, String parse_mode, String keyboard, bool resize = false, bool oneTime = false, bool selective = false). Retourne True si le message a correctement été envoyé
  • Exemple ReplyKeyboard

Clavier en ligne (Inline Keyboard)

Permet d’envoyer des URL. Par exemple, vous pouvez envoyer l’URL du site internet qui collecte les mesures de vos sondes à un amis lorsque les données ont été mises à jour. Il est possible de brancher une fonction callback pour gérer un événement en retour.

Usage

  • bool sendMessageWithInlineKeyboard(String chat_id, String text, String parse_mode, String keyboard). Retourne True si le message a été envoyé avec succès.
  • Exemple InlineKeyboard

Envoyer des photos

Il est possible d’envoyer des photos. Vous pouvez envoyer des images depuis le web ou depuis l’Arduino. Pour le moment, seul l’envoi depuis une carte SD a été testé. Brian pense qu’il devrait être possible d’envoyer une photo depuis un module caméra. Pratique pour faire une sonnette connectée, un mini système d’alarme, être alerté qu’un colis vient d’être livré dans la boîte au lettre…

Exemples

Actions en cours

Permet d’informer les abonnés qu’une action est en cours, par exemple envoi d’une photo

Usage

  • bool sendChatAction(String chat_id, String chat_action). Retourne True si le message a été envoyé avec succès.

Géolocalisation

Le robot peut recevoir des données de localisation, par exemple un seul point de données de localisation ou une géolocalisation en temps réel. Pratique pour allumer les lampes à l’approche de votre voiture le soir.

Example Location

Délai de relève des messages
La méthode bot.longPoll permet de définir la fréquence de relève des messages. L’unité de temps est la seconde.

Un groupe de discussion (240 membres actuellement) est disponible sur Telegram ici. Plusieurs exemples pour Arduino 101, ESP32 et ESP8266 sont disponibles sur GitHub ici.

Source : via @ESP32net sur Twitter

Avez-vous aimé cet article ?

[Total: 2 Moyenne: 4.5]