Comment utiliser l’ESP8266 pour envoyer des SMS avec IFTTT

Aujourd’hui apprenons utilisé le service IFTTT. Cet article est en quelque sorte la première partie d’une liste d’article sur la notion d’API! Si tu n’as aucune idée de ce que c’est une API, alors je t’invite à lire la première partie. Sinon tu peux passer directement à la suite ou je présente comment mettre en place se service sur l’ESP.

 

C’est quoi une API ?

Une API est une interface de programmation. Beaucoup de gros constructeurs développent afin d’offrir à des usagers l’opportunité d’utiliser leurs services. Cela permet à toi et moi de pouvoir profiter de leurs infrastructures internes sans se soucier de celle-ci.

En gros elles regroupent un ensemble de classe, de fonctions ouvert à tous. Si tu veux avoir des données météo, tu as deux solutions. Construire toi-même ta station météo (ce qui est chronophage, cher et pas très performant) ou utiliser indirectement les données d’une autre station météo professionnelle.

Pour utiliser ces données, il faut tout de même deux prérequis. Tout d’abord, assure-toi que le service que tu souhaites utiliser développe bien un API et que tu sois connecté à internet. C’est généralement le cas pour un grand nombre de grandes entreprises (google, facebook, twitter, météo France, SNCF ect…)

Les API nous permettent d’obtenir des quantités d’informations qui serait tous simplement impossible à avoir autrement. Google a par exemple des API pour un bon nombre de ses applications. Nous verrons comment les utiliser avec un microcontrôleur. Sachez cependant que vous pouvez aussi les utiliser dans le but d’automatiser des tâches informatiques.

C’est ce que le youtuber micode à réaliser dans une de ses vidéos en utilisant l’API de SNCF pour faire un compte journalier des heures de retard cumulées sur l’ensemble de la France et les poster sur twitter par la suite.

Vous l’aurez compris les possibilités sont assez énorme… La semaine prochaine je rentrerai dans le cœur de cette fonctionnalité. Cette semaine nous allons quand même en voir une qui est super utilisée par les microcontrôleurs ESP. J’ai nommé IFTTT (If this then that).

Cette API est super simple à utiliser puisque nous n’utiliserons pas vraiment les données du site, mais plus les services qu’ils offrent. Elle constitue donc une bonne entrée en matière pour la semaine prochaine.

 

Installer IFTTT

 

Configuration depuis le site IFTTT

 

IFTTT est un peu différent d’une API, mais dans le principe c’est très similaire. Il s’agit d’un service qui permet d’effectuer une action bien précise quand une certaine autre est actionner. Ces actions sont appelées des Applets.

Elle n’est pas uniquement dédiée aux API mais peut s’utiliser aussi depuis ton téléphone sans une ligne de code. Je pourrais très bien envoyer un SMS à un ami quand mon téléphone sonne. Pour le réveiller le matin par exemple. Mais ce n’est pas super cool 😉

Je vais m’intéresser ici aux actions possibles si mon ESP envoie une requête spécifique à ce service.

Le site de IFTTT est très simpliste et quand tu voudras créer un nouvel applet personnaliser. Il faudra simplement suivre l’interface qui te proposera de choisir un If.

Le premier service que l’on va utiliser va être celui qui a pour but de gérer une requête Web. En effet c’est le seul moyen qu’aura notre ESP pour communiquer avec le service.

Il faudra simplement choisir un event name qui nous servira lors de la requête sur l’Arduino IDE.

Une fois l’eventName définis le site va te demander ‘alors je fais quoi si je reçois cette requête ?’

C’est là que toutes les possibilités sont envisageables. Vous pouvez aussi bien démarrer une music sur votre spotify qu’envoyer un SMS ou simplement une notification sur votre portable, c’est l’option que j’ai choisie pour cet exemple.

Pour simplifier l’utilisation, j’ai choisi d’utiliser l’application IFTTT pour recevoir les notifications. Vous avez juste ici à renseigner le contenu de la notification à recevoir.

Voilà c’est tout pour la partie sur le site IFTTT nous allons pouvoir passer à la partie sur arduino IDE.

 

Arduino IDE

Notre code arduino va avoir pour but d’envoyer une requête https qui correspond à l’event name que l’on à configuré. Pour déclencher cet event, je ne me suis pas cassé la tête je vais juste utiliser un bouton de reset de mon ESP.

Pour manipuler des requêtes HTTPS vous aurez besoin de la librairie WifiClientSecure qui est déjà sur votre PC si vous avez correctement installé les librairies de l’ESP. Lien de l’article qui en parle ICI.

Dans un premier temps j’ai donc configuré les paramètres de connexion au WIFI ainsi qu’au service http de IFTTT (ses informations seront les mêmes pour tous).

Ensuite on entre dans la fonction setup() ou tout notre code sera situé (pour éviter que je sois inondé de notification). J’y code la classique connexion au WIFI avec le ssid et le mot de passe précédemment définis.

Cette fois, il faudra aussi se connecter au service IFTTT, on commence par définir l’objet client WIFIClientSecure puis on s’y connecte avec l’host défini au début ainsi que le port de connexion HTTP 443.

Une fois cela fait ou va s’intéresser à la requête HTTPS. Pour cela je vous invite à vous rendre sur la page de documentation du service webhook, très bien faite d’ailleurs ! Tu auras à simplement renseigner l’event name et ta clé unique d’authentification.

ATTENTION

La requête HTTPS ne commence pas au début du lien mais à partir du /trigger

Pour envoyer une requête HTTPS il faut aussi définir une en-tête HTTPS qui est généralement fixe. Elle permet au serveur du côté IFTTT d’identifier le paquet reçut. C’est un peu la carte d’identité qui dit au serveur ‘je suis un paquet http’.

Une fois la requête envoyée le serveur va répondre ! Pour IFTTT ce n’est pas forcément nécessaire de lire cette réponse (puisqu’il gère la suite du processus lui-même)

J’ai quand même décidé de lire la réponse par curiosité. Aussi parce que dans l’avenir si on utilise d’autres API qui retourne des résultats il sera intéressant à réutiliser.

Désormais quand je presse le bouton intégrer à l’ESP le programme se relance. Je reçois une notification. comme le montre la petite vidéo ci-dessous.

Conclusion

 

—> CODE SOURCE <—

Et voilà, vous pouvez maintenant utiliser le service IFTTT sur votre ESP. L’exemple que j’ai donné est évidemment pas très parlant, mais il sera super utile pour d’autres utilisations. Si vous voulez faire un système qui demande une maintenance par exermple. Recevoir un SMS si la batterie de votre module est faible ou s’il y a un dysfonctionnement.

J’ai préféré cette semaine bien détailler le fonctionnement de ce service assez simple. Mais la semaine prochaine, on passe à l’étape supérieur.

Conclusion

 

—> CODE SOURCE <—

Et voilà, vous pouvez maintenant utiliser le service IFTTT sur votre ESP. L’exemple que j’ai donné est évidemment pas très parlant, mais il sera super utile pour d’autres utilisations. Si vous voulez faire un système qui demande une maintenance par exermple. Recevoir un SMS si la batterie de votre module est faible ou s’il y a un dysfonctionnement.

J’ai préféré cette semaine bien détailler le fonctionnement de ce service assez simple. Mais la semaine prochaine, on passe à l’étape supérieur.

Reçois 1 un petit guide de réalisation DIY par semaine!

+

Du contenu bonus offert à chaque nouvel article!