Envoyer des SMS avec un module GSM A6

AI Thinker, les fabricants de mes MCU préférés, les ESP8266 ont sorti il y a quelques temps déjà le module GSM A6 permettant de se connecter au réseau GSM / GPRS et d’envoyer des SMS, se connecter à internet et même d’émettre des appels!

J’ai eu l’idée de me faire un petit appareil connecté qui recevra des ordres par MQTT et enverra des SMS, ce qui me permettra de recevoir un sms facilement à chaque fois qu’un de mes capteurs remontrons une info importante. Cet article est la première étape, je vais en écrire d’autres au fur et à mesure que le projet avance.

Ce qu’il faut:

  • Module GSM/GRPS A6 mini Un module A6 :  (ici il s’agit d’un modue A6 mini disponible sur ebay, aliexpress, ect.. pour 5 à 10€)
  • Carte SIM Une carte SIM, j’ai pris une carte free à 2€/mois (si votre box est chez free elle est même gratuite)
  • Breadboard et fils de cavalier Quelques fils de cavalier et un breadboard
  • module FTDI Un module FTDI ‘entre 2 et 5€ sur Ebay ou aliexpress
  • PCB micro USB Une PCB avec prise USB pour alimenter le tout et un chargeur de téléphone pour alimenter tout ça.
  • Alimentation Une alimention assez puissante (ici j’ai recyclé une alim qui me servait pour un raspberry de 5V/2A). L’envoi de SMS demande pas mal de courant au moment de l’envoi.
  • CoolTerm Un ordinateur sous Windows avec CoolTerm (ça se fait très bien sous Mac ou linux mais je n’en ai pas sous la main)

Le câblage

Schéma de câblage du module A6 avec un FTDI
Schéma de câblage du module A6 avec un FTDI

Comme vous pouvez le constater, j’ai réuni tous mes talents de graphiste pour pondre ce schéma très très moche!!

L’idée est d’alimenter le module avec notre chargeur de téléphone, de mettre les les neutres du module A6 et de l’FTDI en commun puis de brancher le TX du module A6 au RX de du FTDI et vice et versa.

le cablage fini
Le montage fini et branché

Côté PC

Normalement CoolTerm arrivera a trouver tout seul le port COM sur lequel est branché votre FTDI. Sinon vous pourvez le trouver dans le gestionnaire de périphériques :

Gestionnaires de périphériques
Gestionnaires de périphériques

Dans coolTerm, réglez le baudrate à 115200 et cliquez sur Connect. Ca prend quelques secondes mais vous devriez voir apparaître des les retours du A6 qui ressemblent à ça :

connexion au réseau GSM

+CREG: 5 signifie que le module est connecté au réseau et est prêt a recevoir et envoyer des sms!

Si vous n’avez aucun retour du module, vérifiez que le branchement est bon, surtout au niveau des rx/tx, je me suis fait avoir…

Envoi du SMS

Pour envoyer une commande au module, allez dans Connection -> Send String ou faites Ctrl-T sous windows. La commande AT (pour Attention) suivi d’un retour à la ligne vous renverra l’état du module :

Envoi de la commande ATRécupération de l'état

Normalement, le module devrait répondre “OK”, mais il m’est arrivé d’avoir des erreurs CME 58, je crois que ça veut dire qu’il a temporairement perdu le signal, en réessayant la commande AT, ça se mettait a fonctionner.

Ensuite pour passer le module en mode SMS, envoyez :

AT+CMGF=1

toujours suivi d’un retour à la ligne.

passage en mode sms

Et enfin pour envoyer le message :

AT+CMGS="003361234567"

(en remplaçant bien sur par le numéro auquel vous voulez envoyer). Il vous demandera ensuite d’entrer votre message, fermez la boite de dialogue et dans coolTerm faites Ctrl-z pour envoyer le message :

Retour série après envoi du sms

Attendez quelques secondes et consultez votre téléphone!

Pièges:

J’ai eu quelques problèmes au début pour communiquer avec le module, il faut bien vérifier tous les branchements (mes fils de cavaliers de chine ne sont pas d’une qualité extraordinaire…) et j’utilisais une rallonge USB qui ne marchait pas très bien non plus.

Voici un document qui m’a aidé de MultiTech Systems qui reprend les commandes AT de base et qui donne la signification d’erreurs : GSM Developer Guide – GSM AT Commands – Rev A

Conclusion

Une fois les branchements correctement faits et que le module répond, il suffit de 3 lignes pour envoyer un Sms! Dans un prochain article, je montrerais comment envoyer un message depuis un arduino ou encore mieux, un ESP8266!