Envoyer des SMS avec l’ESP32 (Twilio)

Envoyer des SMS avec l'ESP32 (Twilio)

Ce guide montre comment envoyer des SMS avec l’ESP32 en utilisant un service en ligne appelé Twilio. Avec ce service, vous pouvez envoyer des SMS avec l’ESP32 sans avoir besoin d’un module GSM ou d’une carte SIM physique dédiée. L’utilisation de Twilio n’est pas gratuite, mais vous pouvez vous inscrire pour un essai gratuit à des fins de test. Nous utiliserons un compte d’essai gratuit tout au long du didacticiel.

Envoyer des SMS avec le ESP32 Twilio Arduino IDE Core

Vous pouvez envoyer des SMS avec l’ESP32 sans avoir besoin de recourir à des services tiers si vous disposez d’un module GSM et d’une carte SIM dédiée. Nous avons des tutoriels montrant comment envoyer des SMS avec l’ESP32 en utilisant les modules SIM800L et SIM7000G :

Si vous recherchez différents types de notifications et d’alertes avec l’ESP32, vous pouvez consulter les tutoriels suivants :

Présentation de Twilio

logo twilio

Twilio fournit des outils de communication programmables pour passer et recevoir des appels téléphoniques, envoyer et recevoir des messages texte et effectuer d’autres fonctions de communication à l’aide de ses API de service Web. Tout au long de ce didacticiel, nous utiliserons leurs services de messagerie programmables.

Twilio est un service payant, mais vous pouvez créer un compte gratuit à des fins de test. Ensuite, si leurs services sont utiles pour votre projet spécifique, vous pourrez toujours mettre à niveau votre compte ultérieurement. Nous utiliserons un compte d’essai gratuit tout au long de ce didacticiel.

Création d’un compte d’essai gratuit

Aller à https://www.twilio.com/ et cliquez sur Inscrivez-vous et commencez à construire.

Créer un compte d'essai gratuit Compte Twilio

Entrez vos coordonnées et commencez avec un essai gratuit.

Compte Twilio créer un nouveau

Configurer le compte d’essai gratuit de Twilio

Vous devez suivre certaines étapes pour configurer votre compte d’essai gratuit Twilio. Nous décrirons les étapes que vous devez suivre dans le présent tutoriel. Vous pouvez également vérifier Les instructions officielles de Twilio ici.

Vérifiez votre numéro de téléphone personnel

Lorsque vous vous inscrivez pour votre compte d’essai gratuit, vous avez vérifié votre numéro de téléphone personnel. Il devrait être sur le liste des numéros de téléphone vérifiés sur votre tableau de bord : Les numéros de téléphone > Gérer > Identifications d’appelants vérifiées.

numéro personnel vérifié twilio

Vérifier les numéros des autres destinataires

Lorsque vous utilisez le compte d’essai gratuit, vous devez vérifier tous les numéros auxquels vous souhaitez envoyer un SMS. Lors de la vérification des numéros, vous recevrez un SMS avec un code de vérification que vous devez insérer. Vous devez donc avoir un accès physique à ces numéros. Ce n’est pas nécessaire sur le compte payant.

Dans ce menu précédent (Les numéros de téléphone > Gérer > Identifications d’appelants vérifiées), cliquer sur Ajouter un nouvel ID appelé pour ajouter un nouveau numéro vérifié. Vous recevrez un SMS avec un code de vérification sur ce numéro.

twilio ajouter des identifiants appelés vérifiés

Obtenir un numéro de téléphone Twilio

Pour envoyer des messages à l’aide de Twilio, vous devrez acheter un numéro de téléphone Twilio. Au moment d’écrire ce tutoriel, lorsque je me suis inscrit au compte gratuit, j’ai obtenu un crédit de 15,50 $, ce qui est suffisant pour obtenir un numéro de téléphone et tester l’envoi de SMS.

Sur votre tableau de bord, dans la barre latérale gauche, accédez à Les numéros de téléphone > Gérer > Acheter un numéro. Vous verrez une liste des numéros disponibles. Assurez-vous de sélectionner SMS sur les capacités du numéro. Vous pouvez également sélectionner le pays.

Acheter un numéro twilio

Noter: J’ai essayé d’acheter un numéro de mon pays (Portugal), mais j’avais besoin de remplir un dossier réglementaire et de soumettre des documents pour examen. J’ai donc fini par acheter une carte des États-Unis à la place, qui n’exigeait rien de tout cela et était dix fois moins chère. Cela fonctionne à des fins de test, une fois que vous décidez de passer à une solution plus permanente, vérifiez si ce numéro est le plus adapté à votre scénario.

Une fois que vous avez choisi un numéro de téléphone, cliquez sur le Acheter bouton.

Twilio acheter un numéro de téléphone américain

Messagerie programmable – Préparez-vous

Maintenant, vous avez tout configuré pour commencer à créer un service de messagerie programmable. Sur votre tableau de bord, dans la barre latérale gauche, cliquez sur Messagerie > Essaye le > Préparez-vous. Ensuite, cliquez sur Commencer la configuration.

messagerie programmable twilio

Donnez un nom au service de messagerie, par exemple, Alertes ESP32 et cliquez sur Créer un service de messagerie.

Twilio Créer un service de messagerie

Ensuite, sélectionnez le numéro de téléphone Twilio que vous avez créé précédemment et cliquez sur Ajouter ce numéro.

Twilio ajouter un numéro de téléphone

Après cela, le service de messagerie programmable sera entièrement configuré. Vous aurez accès aux informations de votre compte : compte SID et jeton d’authentification. Vous en aurez besoin plus tard dans le code ESP32.

twilio créer un service de messagerie

Vous pouvez tester si tout fonctionne comme prévu en cliquant sur Essayez SMS. Vous verrez une page similaire à celle illustrée ci-dessous. Entrez le numéro de téléphone auquel vous souhaitez envoyer le message (il doit s’agir d’un numéro vérifié—voir cette section précédente), sélectionnez le service de messagerie que vous avez créé précédemment, écrivez un corps de texte et cliquez sur Envoyer un SMS test.

Twilio essaie de tester les SMS

Après quelques secondes, vous devriez recevoir le SMS de test sur le numéro sélectionné.

SMS depuis le compte d'essai de Twilio

Tous les SMS envoyés depuis un compte d’essai Twilio auront le texte : « Envoyé depuis votre compte d’essai Twilio ». Ce texte n’apparaît pas sur les comptes premium.

ESP32 : envoyer des SMS avec Twilio

L’envoi de SMS avec Twilio est très simple grâce à son API. Tu peux lire la documentation de l’API SMS. Vous faites simplement des requêtes HTTP avec l’ESP32 avec les bons paramètres (selon l’API de Twilio) pour envoyer des SMS. Vous pouvez consulter ce tutoriel sur les requêtes HTTP avec l’ESP32.

Ou vous pouvez utiliser une bibliothèque qui s’occupe de tout cela, et il vous suffit d’insérer les détails de votre compte Twilio et le corps du texte du SMS. Tout au long de ce didacticiel, nous utiliserons une bibliothèque appelée client twilio-esp32.

Installation de la bibliothèque twilio-esp32-client

La bibliothèque client twilio-esp32 peut être installée via le gestionnaire de bibliothèque IDE Arduino. Aller à Esquisser > Inclure la bibliothèque > Gérer les bibliothèques. Rechercher client twilio-esp32 et installez la bibliothèque.

twilio-esp32-client-library

ESP32 Envoyer des SMS avec Twilio – Code

Envoi de code à l’aide de Twilio à l’aide de client twilio-esp32 bibliothèque est très simple. Tout d’abord, vous devez créer un Twilio instance, puis il vous suffit d’appeler le envoyer le message() et transmettez comme arguments les détails de votre compte Twilio, les numéros d’expéditeur et de destinataire et le corps du message. Le code suivant est un exemple de la bibliothèque exemples dossier.

/*********
  Rui Santos
  Complete project details at https://Raspberryme.com/send-sms-esp32-twilio/
  
  Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files.  
  The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
*********/

// Library example: https://github.com/ademuri/twilio-esp32-client

#include "twilio.hpp"

// Set these - but DON'T push them to GitHub!
static const char *ssid = "REPLACE_WITH_YOUR_SSID";
static const char *password = "REPLACE_WITH_YOUR_PASSWORD";

// Values from Twilio (find them on the dashboard)
static const char *account_sid = "REPLACE_WITH_YOUR_ACCOUNT_SID";
static const char *auth_token = "REPLACE_WITH_YOUR_ACCOUNT_AUTH_TOKEN";
// Phone number should start with "+<countrycode>"
static const char *from_number = "REPLACE_WITH_TWILIO_NUMBER";

// You choose!
// Phone number should start with "+<countrycode>"
static const char *to_number = "REPLACE_WITH_RECIPIENT_NUMBER";
static const char *message = "Hello from my ESP32 (via twilio)";

Twilio *twilio;

void setup() {
  Serial.begin(115200);
  Serial.print("Connecting to WiFi network ;");
  Serial.print(ssid);
  Serial.println("'...");
  WiFi.begin(ssid, password);

  while (WiFi.status() != WL_CONNECTED) {
    Serial.println("Connecting...");
    delay(500);
  }
  Serial.println("Connected!");

  twilio = new Twilio(account_sid, auth_token);

  delay(1000);
  String response;
  bool success = twilio->send_message(to_number, from_number, message, response);
  if (success) {
    Serial.println("Sent message successfully!");
  } else {
    Serial.println(response);
  }
}

void loop() {
  
}

Afficher le code brut

Comment fonctionne le code

Commencez par inclure le client twilio-esp32 bibliothèque.

#include "twilio.hpp"

Insérez vos identifiants réseau sur les lignes suivantes :

static const char *ssid = "REPLACE_WITH_YOUR_SSID";
static const char *password = "REPLACE_WITH_YOUR_PASSWORD";

Insérez les détails de votre compte Twilio : le compte SID et jetonet le Numéro de téléphone de Twillio.

static const char *account_sid = "REPLACE_WITH_YOUR_ACCOUNT_SSID";
static const char *auth_token = "REPLACE_WITH_YOUR_ACCOUNT_AUTH_TOKEN";
// Phone number should start with "+<countrycode>"
static const char *from_number = "REPLACE_WITH_TWILIO_PHONE_NUMBER";

Insérez le numéro du destinataire et le message.

// Phone number should start with "+<countrycode>"
static const char *to_number = "INSERT_RECIPIENT_NUMBER";
static const char *message = "Hello from my ESP32 (via twilio)";

Si vous utilisez un compte d’essai gratuit, le numéro du destinataire doit figurer sur le liste des identifiants d’appelants vérifiés.

Créer un Twilio variable de pointeur appelée twilio.

Twilio *twilio;

Dans le installer()initialisez le Serial Monitor et connectez l’ESP32 à votre réseau local afin qu’il puisse accéder à Internet et effectuer les requêtes HTTP pour envoyer des SMS.

  Serial.begin(115200);
  Serial.print("Connecting to WiFi network ;");
  Serial.print(ssid);
  Serial.println("'...");
  WiFi.begin(ssid, password);

  while (WiFi.status() != WL_CONNECTED) {
    Serial.println("Connecting...");
    delay(500);
  }
  Serial.println("Connected!");

La ligne suivante instancie un nouveau Twilio instance avec les détails du compte :

 twilio = new Twilio(account_sid, auth_token);

Appelez ensuite le envoyer le message() fonction qui accepte comme arguments le numéro du destinataire, le numéro de l’expéditeur, le message et une variable pour contenir la réponse. Cette fonction effectue une requête HTTP en arrière-plan avec tous les paramètres nécessaires à l’API Twilio pour envoyer des SMS.

  String response;
  bool success = twilio->send_message(to_number, from_number, message, response);
  if (success) {
    Serial.println("Sent message successfully!");
  } else {
    Serial.println(response);
  }
}

Cette fonction retournera vrai si le message est envoyé avec succès ou la réponse de la requête HTTP en cas d’échec.

L’envoi d’un SMS n’est pas gratuit et il sera déduit du crédit de votre compte Twilio. Donc, nous envoyons juste un SMS sur le installer() quand le conseil commence. L’idée est d’appliquer cet exemple de code à votre propre projet.

Le boucler() est vide.

void loop() {
}

Manifestation

Après avoir inséré tous les détails requis, vous pouvez télécharger le code sur votre carte ESP32. Sélectionnez une carte ESP32 dans Outils > Conseil et sélectionnez le port COM dans Outils > Port. Ensuite, cliquez sur le bouton Télécharger.

Bouton de téléchargement de l'IDE Arduino

Après le téléchargement, ouvrez le moniteur série à un débit en bauds de 115200. Appuyez sur le bouton ESP32 RST pour redémarrer la carte. Si tout se passe comme prévu, vous devriez recevoir un message similaire à celui illustré ci-dessous.

ESP32 envoyer des SMS via twilio

Après quelques secondes, vous devriez recevoir un SMS de Twilio sur votre téléphone.

Twilio SMS reçu (depuis ESP32)

Conclusion

Dans ce didacticiel, vous avez appris à envoyer des SMS avec l’ESP32 à l’aide de l’API de messagerie programmable Twilio. L’avantage d’utiliser cette méthode est que vous n’avez pas besoin d’avoir un modem ou une carte SIM physique pour envoyer des SMS avec votre carte.

Cependant, vous devez acheter un numéro de téléphone Twilio et vous devrez payer un abonnement mensuel pour la carte. Vous devrez également payer pour chaque SMS que vous envoyez. Vous pouvez vous inscrire pour un compte d’essai gratuit qui vous permet d’expérimenter Twilio dans vos projets. Ainsi, vous pouvez essayer leurs services pendant un certain temps gratuitement. Si vous pensez que leur service est adapté à vos projets, vous pouvez mettre à jour votre compte ultérieurement.

Vous pouvez également envoyer des SMS avec l’ESP32 en utilisant d’autres méthodes, en utilisant des modems comme le SIM800L, le SIM7000G et d’autres. Nous avons des tutoriels montrant comment envoyer des SMS avec l’ESP32 en utilisant les modules SIM800L et SIM7000G :

Nous espérons que vous trouverez ce tutoriel utile.

Merci d’avoir lu.