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:
Un module A6 : (ici il s’agit d’un modue A6 mini disponible sur ebay, aliexpress, ect.. pour 5 à 10€)
Une carte SIM, j’ai pris une carte free à 2€/mois (si votre box est chez free elle est même gratuite)
Quelques fils de cavalier et un breadboard
Un module FTDI ‘entre 2 et 5€ sur Ebay ou aliexpress
Une PCB avec prise USB pour alimenter le tout et un chargeur de téléphone pour alimenter tout ça.
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.
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

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.

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 :

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 :
+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 :
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.
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 :
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!