Modem_GSM_DIY_envoyer_des_sms

Modem GSM DIY – Envoyer des SMS

Dans le cadre d’un nouveau projet domotique pour une résidence secondaire, je me suis penché sur la problématique des modems GSM. Par manque de temps, j’avais déjà été confronté à ce sujet. Souvenez-vous de mon projet domotique par SMS. J’avais acheté un modem de la marque Huawei qui m’avait coûté une vingtaine d’euros (vraiment pas cher). Cependant, j’ai eu pas mal de problèmes :

  • La stabilité. J’ai été obligé de programmer un redémarrage tous les soirs pour éviter la rupture de service.
  • La qualité de réception de cet appareil laissait vraiment à désirer. Il perdait régulièrement la connexion avec les relais GSM.
  • Difficile à intégrer dans un tableau électrique. Du coup, il était placé sur le dessus… pas très pro.

Donc, comme d’habitude, quand je ne suis pas satisfait, j’essaie de faire par moi-même. Bien entendu, j’ai cherché l’existence de modem GSM sur rail DIN, mais bizarrement, très peu de solutions existantes ou vraiment trop chère.

[Total : 2   Moyenne : 5/5]

 

Choix du modem GSM

Pour faire un choix judicieux, il faut connaître ses besoins et dans mon cas, c’est très simple : J’ai juste besoin d’envoyer/recevoir des SMS.

Mes recherches n’ont pas été très longues car, que ce soit sur Aliexpress, Banggood, Amazon et autres … je tombais souvent sur le même modem (décliné sous plusieurs « formfactor »)

Le SIM800L

Voici les solutions que j’ai le plus souvent rencontré. Du coup, j’ai commandé les deux. D’abord le bleu, puis le rouge.

SIM800L_bleu SIM800L_rouge

Côté tarif, vous pourrez retrouver les deux types de modules entre 1.5€ et 4€ en chine et moins de 10€ sur Amazon.

Les premiers tests

Donc, comme je le disais, j’ai d’abord testé le modem bleu. Pour pouvoir dialoguer avec le modem, j’utilise un convertisseur USB-TTL ( le CP2102, j’en ai plein ;))

GSM_SIM800L_PIN

Bon les branchements sont assez simples. Je connecte donc mon convertisseur que je branche sur mon ordinateur. Le port COM7 se monte et avec Putty, je lance l’ouverture de port à 9600 bauds.

schema_gsm

Une fois connecté, il suffit d’envoyer des commandes pour voir s’il répond.

NB : Les modems utilisent, pour la plupart, ce qu’on appelle des commandes AT. C’est une convention plus ou moins bien suivie (comme toutes les conventions). Bref, il suffit de chercher les commandes valides pour ce chip pour pouvoir débuter les tests. (Vous pouvez aussi chercher les tutoriels qui vous permettrons de récupérer uniquement les commandes qui vous intéressent).

https://www.elecrow.com/wiki/images/2/20/SIM800_Series_AT_Command_Manual_V1.09.pdf

Vous aurez compris, je ne vais pas détailler les commandes ici, ils existent 456467 sites qui en parlent.

En général, la première commande que l’on tape est : AT. Si le modem vous retourne OK, c’est gagné.

Dans mon cas ce fut le cas.

screenshot_at_command

Bon une fois que c’est OK, il suffit de tout débrancher et d’insérer une carte SIM pour tester la communication GSM.

PS : Abonné à l’opérateur Free, j’ai commandé une SIM avec un abonnement à 2€ (ou 0€ dans mon cas)

Voici les commandes essentielles (minimalistes) pour envoyer un SMS :

  1. AT
  2. AT+CPIN=1234
  3. AT+CMGF=1
  4. AT+CMGS= »+336xxxxxxxx »<CR>
    bonjour

Il faut terminer le message par CTRL+Z et le message est normalement envoyé.

Un petit problème de stabilité

Jusque là, tout à l’air clair sauf que je suis tombé sur un problème. En effet, dès que je tape la commande AT+CPIN=1234, le modem GSM se met à redémarrer. (J’ai du mettre 3h avant de comprendre qu’il redémarrait car aucun message d’erreur ou de reset n’apparait)

Oups, que ce passe t-il ?

J’ai donc branché mon oscilloscope sur l’alimentation. Voici ce qu’il se passe lorsque l’on valide la commande :

oscilloscope_glitch_gsm_modem

Comme on peut le voir, il y a un gros « glitch » sur l’alimentation. Je ne sais vraiment pas pourquoi l’alimentation se casse la figure sur cette commande (si vous avez des idées n’hésitez pas) mais je comprends mieux pourquoi je vois beaucoup de tutoriels sur ce modem sans code PIN … ou tout simplement des retours sur le non fonctionnement du modem.

Petite précision : lorsque l’antenne n’est pas branché, la commande passe sans problème.

Bon …en général, quand c’est comme ça, je cherche un peu mais… dans ce cas précis, j’ai décidé de passer à l’autre modem… le rouge.

En effet, le « formfactor » rouge me va mieux car il est plus petit et qu’il me donne plus de possibilités pour l’intégrer sur mon propre PCB.

On prend les mêmes et on recommence

Passons désormais au modem rouge, on remarque bien entendu des similitudes mais on peut aussi observer que sur le bleu, il y a beaucoup plus de composants.

Après pas mal de recherches, je me suis rendu compte qu’on ne pouvait pas alimenter le module rouge en 5VDC (contrairement au bleu). Il faut lui fournir une tension entre 3.4VDC et 4.4VDC. Vraiment étrange…

https://img.filipeflop.com/files/download/Datasheet_SIM800L.pdf

En pratique, j’ai remarqué qu’il fallait plutôt être entre 3.8VDC et 4.2VDC pour ne pas avoir de message d’avertissement sur la COM.

Du coup, pour faire simple, il suffit de mettre une diode Zener 1N433 sur l’alimentation qui permettra d’avoir une chute de tension de 0.7 / 0.8VDC. Alors c’est un peu bourrin mais ça fait le job à pas cher. Sinon, il faut passer par un régulateur de tension …

Bref, une fois le problème de l’alimentation réglé, je reprend la procédure.

GSM_SIM800L_PIN_rouge

Et là … même problème que précédemment, impossible de passer le commande AT+CPIN=1234 sans redémarrer.

Bon, comme vous le savez peut-être, quand il y a des « glitch » sur l’alimentation, il existe une solution simple (si c’est pas la seule), augmenter la réserve d’énergie. En effet, l’un des rôle des condensateurs est d’être un réservoir jouant le rôle de compensateur d’énergie. Cependant, si le réservoir est trop petit, cela peut entraîner, une coupure (power down) et j’ai bien l’impression que c’est notre cas.

On peut remarquer que sur les deux modems on a la même capacité de 100uF.

GSM_C

Ce qui peut paraître beaucoup déjà mais c’est connu, le GSM est très très gourmand. Du coup, j’entreprend le changement du condensateur. Bon comme beaucoup de monde, pour trouver la bonne valeur de condensateur, on le fait de manière empirique. (Alors oui, il y a peut-être des calculs scientifiques qui permettent de déduire la bonne valeur, mais on va pas se mentir : 1- j’ai pas les compétences 2- j’ai pas toutes les informations)

Finalement, après tous les tests, il convient de mettre un condensateur de 1000uF ! (ça fonctionne avec 400uF, mais il est arrivé que ça plante aussi …1 fois sur 20)

J’ai du mal à comprendre comment ce modem puisse être autant à la ramasse, mais après réflexion, je me dit que la puissance demandée par nos relais GSM en France doit être bien plus importante qu’en Asie… c’est la seule explication que je vois puisque si on débranche l’antenne du modem, la commande passe… (Si vous avez une autre explication je suis preneur)

Maintenant que ce problème est réglé, voici un exemple (qui fonctionne) d’envoie de SMS

AT
OK
AT+CPIN=1234
OK

+CPIN: READY

Call Ready

SMS Ready
AT+CMGF=1
OK
AT+CMGS="+336xxxxxxxx"
> fdsfdsf
>
+CMGS: 6

OK

Compatibilité avec les box domotiques

Maintenant que le hardware est validé, il est important de voir si l’intégration à une box domotique est facilement réalisable.

Je ne vous cache pas, que j’avais déjà anticipé et que je ne me suis pas démené pour développer un modem GSM sans savoir si cela serait le cas.

Du coup, voici les tests concluants que j’ai pu avoir :

Compatibilité :

 

Conclusion

Comme on a pu le voir, développer ce modem GSM n’a pas était aussi simple que prévu. Malgré tout, ça m’a permis de mieux comprendre comme cela fonctionne. Le gros avantage, c’est que grâce à ces recherches, je suis en mesure de mettre au propre un hardware fiable pour mes projets domotiques.

Dorénavant, « domotiser » une résidence secondaire me parait beaucoup plus envisageable (propre) qu’avant. Du coup, j’ai développé mon modem GSM sur rail DIN (exclusivement pour l’envoie de SMS) . Si la communauté est intéressée, je pourrai bientôt le mettre à disposition.

GSM-lixee-800x600

N’hésitez pas à donner votre avis et partager votre expérience sur ces modem en commentaire.

A bientôt !

 

8 comments

  1. Top l’article comme d’habitude

    Tu penses gérer la réception aussi pour envoyer des commandes ?
    Je voulais me prendre le module G-GSM pour mon IPX mais trop limité pour la réception

    1. Merci !
      Oui la réception fonctionne. Tu peux chercher des tutos sur gammu, par exemple, ils expliquent comment gérer la réception de SMS.

  2. Bonjour
    Pour le problème d’alimentation et après avoir eu le problème certain flash le Firmware du module mais bon pas sur que cela corrige
    Sinon les recommandations c est d ajouter un 470mF tantale en parallèle de celui existant
    De mémoire la tension d alim doit être à 4,1V
    Autre point il serait intéressant de voir si tu as le problème en désactivant le code pin de ta sim.
    Pourquoi ? La radio va se mettre à consommer pour se delarer sur l opérateur et juste après les algorithmes de la sim vont travailler à l authenfication qui va encore consommer.
    Il est aussi possible que si ton antenne marche mal et/ou si tu es loin de l’antenne 2G le module radio va taper les 2watts pour se connecter à l’antenne et tirer sévèrement sur ton alimentation
    Autres pistes :
    1) faire un AT+CFUN=0
    La commande +CFUN permet de passe en mode avion et selon le fabricant tu peux envoyer avant et/ou après le CPIN
    2) jouer aussi avec la commande AT+CREG
    Après je te confirme avoir testé plusieurs modules sim800 et avoir eu ce problème .
    La commande AT+CFUN=1 permet d’allumer le sim800
    Perso je laisse tomber le sujet des modules light et me dirige sur ce produit parfois à moins de 10euros
    [US$10.99 61% OFF]Carte LILYGO® TTGO T-Call V1.3 ESP32 sans fil GPRS Carte SIM antenne SIM800L carte de module pour arduino from ectronique on banggood.com https://banggood.app.link/1wzyfSygA4
    Ou celui-ci a moins de 40euros
    https://github.com/botletics/SIM7000-LTE-Shield
    Tu as de la 2G,3G,4G (et LTE-M)+ un GPS
    Si tu désires persister sur le sujet des sim 800 regarde les schémas de Shields arduino pour regarder la conception de l’alimentation
    Merci pour tes articles
    Bisous à tous tes lecteurs
    Echelon75

Leave a Reply

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.