Librairie A6Smslib pour simplifier l’envoi d’un sms

Pour simplifier un peu le code de mon article “Envoyer des SMS avec un ESP8266 et un module A6” j’ai créé une librairie qui permet d’envoyer un sms et de voir l’état de l’envoi.

Vous pouvez le trouver sur github : https://github.com/davidtw/a6SmsLib

Exemple de code :

#include "A6SmsLib.h"

const String NUMBER = "00336XXXXXXXX";
const String MESSAGE = "whoop whoop!";

const int rx = D1;
const int tx = D2;
const int resetPin = D0;

A6SmsLib a6Sms(rx, tx, resetPin);

void statusUpdate(String state, String message)
{
  Serial.println("[statusUpdate] " + state + " : " + message);
}

void smsUpdate(String state, String message)
{
    Serial.println("[smsUpdate] " + state + " : " + message);
}

void setup()
{
    Serial.begin(9600);
    a6Sms.debug();
    a6Sms.begin();
    a6Sms.setStatusCallback(statusUpdate);
    a6Sms.setSmsCallback(smsUpdate);
    a6Sms.waitUntilReady();

    a6Sms.sms(NUMBER, MESSAGE);
}

void loop()
{
    a6Sms.loop();
}

Initialisation

Dans l’exemple j’ai configuré les entrées de la même manière que pour mon montage (D1 pour RX, D2 pour TX et D0 pour le redémarrer le module)

const int rx = D1;
const int tx = D2;
const int resetPin = D0;

A6SmsLib a6Sms(rx, tx, resetPin);

Activer le mode Debug

Active la sortie sur le port série de messages provenant de l’A6

a6Sms.debug();

Fonctions de rappel

a6Sms.setStatusCallback(statusUpdate);
a6Sms.setSmsCallback(smsUpdate);
  • setStatusCallback permet de spécifier la fonction a appeler à la mise à jour de l’état du module.
  • setSmsCallback spécifie la fonction a appeler après l’envoi d’un sms

La boucle

La fonction loop permet à la librairie de mettre à jour les états en fonction des retours du module. Il faut l’appeler à chaque itération.

L’envoi

L’envoi se fait avec la fonction SMS en précisant le numéro de téléphone du destinataire et le message.