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.

Click to rate this post!
[Total: 2 Average: 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.

 

EDIT : Si ce produit vous intéresse, vous pouvez vous le procurer « tout prêt » sur la boutique : https://lixee.fr/gsm/27-modem-gsm-din.html

 

A bientôt !

25 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
      moi mon problème est un peu diffèrent ce n’es pas pour de la domotique mais pour répondre ou questionner automatiquement aux problèmes techniques de client et pour sécuriser les demandes de devis sur mon site. J’ai entre 10 a 30 sms par jours a envoyer depuis une liste de clients abonnés cette liste évoluant constamment. Pensez vous cela réalisable facilement avec ces modems GSM

      1. Hello Adtreb,
        Oui C’est relativement facile et peu couteux pour une solution « de base » : un modem tel que decrit, un bonne alim et un circuit USB Série.
        A parte de cela tout est possible via un PC ou autre.
        Il reste à interfacer le fichier client et/ou le programme que tu utilises avec ce dispositif. Et c’est là que les choses se compliquent un peu … tout depend des solution logicielles mise en oeuvre.
        Ajoutons qu’il est possible d’insérer une microcontroller qui gérera toute « l’intelligence » de pilotage du module SIM et simplifiera l’interface avec les autres appli ou base client.
        A priori, pas d’impossibilité technique.
        Cordialement
        Eric

  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

    1. Bonjour Echellon75,

      Merci pour tes commentaires et analyse. J’ai également utilisé plusieurs modems SIM, et la carte TCALL de Lilygo.
      Bon, encore une fois j’ai sous dimensionné les CAPA l’alim sur mon circuit alimentant le module SIM800 …. dommage ma carte était jolie 🙂
      Heureusement de ces forum me remettent du plomb dans la tête 🙂

      Concernant le TTGO T-Call V1.3 ESP32 je me permet un retour d’expérience (j’ai le V1.2 et V1.3) sur leur produit.
      J’ai utilisé ce module pour y ajouter un bloc GPS, écran, boutton … pour avoir un trackeur GPS simple (pour sécuriser les balades équestres)

      C’est cette mauvaise expérience qui m’a décidé des tout reconcevoir moi même !!!!
      Déja le V1.2 a un PMU tout pourri, qui s’écroule en communication GSM, et ne permet pas un switch on facile !!!
      Le V1.3 n’estpas mieux, le PMU est fastidieux à contrôler (doc en Chinois), mal utilisé et l’alimentation du SIM800 est fait à partir d’un régulateur « Step Down ». Ca passe quand on est sur USB à 5V, mais sur batterie Li Ion à 4.1V c’est … discutable.
      Le résultat est simple, quand la batterie est à 50% de charge, soit env 3.8V … le Step Down qui doit fournir 4.1V avec 3.8V n’y arrive pas … on se demande pourquoi 🙂
      Du coup, la SIM800 est alimenté à moins de 3.4V et se coupe !!!!!

      Conclusion, c’est par parce qu’un produit semble cool et intéressant qu’il est bien conçu. j’ai fait confiance les yeux fermés, mais en regardant de plus près le schéma et les specs des composants on se rend compte que ces modules (Lilygo) sont faits de copier collé de blocs fonctionnels sans analyse ni test abouti !!!!
      Juste mettre leur module sur batterie et laisser se décharger aurait montré le gros bug à mi charge !

      Cordialement
      Zat

      1. Bonjour Zat,
        Il est normal que le SIM800 se coupe à 3.4V (quoique sur des modules concurrents, ça se coupe plus bas vers 3.3V voire moins dans de rares cas). C’est dû aux appels de courant lors des burst en transmission en GSM. Fort appel de courant dans un temps temps relativement faible. Cela peut atteindre 1A voire même un peu plus.
        En 3G ou 4G, on souffre moins de ces phénomènes de bursts, mais bon si c’est juste pour envoyer des SMS, c’est surdimensionné.
        Voilà, cela explique mais cela ne résouds pas ton pb.

        1. Hello David,
          merci pour ton retour.
          Mon « seul » problème est de trouver la place pour ajouter qq condos 🙂
          Le pb de la carte Lilygo est que l’alim du SIM800 tombe dessous 3.4V à cause d’un défaut de conception, et non de pics d’utilisation.
          Cordialement

  3. Bonjour,

    merci pour cet article très bien fait,
    j’ai testé de mon coté une carte SIM800L avec une carte ‘free’
    malheureusement, chez moi je ne capte pas de réseau ‘orange’ donc la carte ne peut pas s’y connecter, j’ai une antenne ‘free’ tout près mais elle semble ne pas être reconnue,
    si on fait une liste des réseaux connus, free n’existe pas

    as tu déjà constaté ce problème ?
    j’ai tenté une màj de firmware sur mon SIM800L mais cela n’a pas changé mon problème d’opérateur…

    je ne pense pas avoir de problème d’alimentation car, suivant tes conseils, j’ai branché mon module sur batterie 3.7v et ajouté des condensateurs de 10000 à 100n

    Merci a tous les contributeurs,
    Stéphane

  4. Bonjour, cela fait trois jours que je retourne le net dans tous les sens mais je ne parviens pas à trouver de réponse satisfaisante. J’ai un Cp210x branché sur un SIM800L reçu la semaine dernière,
    je l’aliment avec une alim de labo et il y un 670µ en parallèle dans le circuit et je ne parviens pas à communiquer avec, il se contente de clignoter en disant je ne suis pas connecté (un flash par seconde en gros) help, qui aurait l’idée qui va me sortir de cette impasse ? merci d’avance.
    FX

  5. Bonjour,
    je cherche un modem pour envoyer des long SMS (MMS) en vrac via mon PC
    le modem que j’ai ne peut envoyer que 160 caractères (commande AT)
    Merci

    1. Bonsoir
      SMS et MMS sont deux choses différentes.
      Le SMS c’est de la signalisation. Les MMS c’est de la data. Donc rien à voir
      Je te recommande une simple clef USB 3G
      Richard

  6. @JAB
    Effectivement, une clef 3G USB, ça peut le faire très bien, mais il faudra tout de même trouver la séquence de commandes AT qui va bien. A voir dans le guide de commande AT.
    Une autre suggestion de solution: je sais que pour des SMS, il est existe des services webAPIs pour envoyer des SMS (genre Twilio). Il existe peut-être le même type de service pour les MMS. A vérifier. Evidemment, c’est payant, mais par expérience les MMS sur les modules 2G/3G ou clef 2G/3G, ça peut-être fastidieux, très fastidieux.

    @FX
    Il faut que tu sois sûr de ton alimentation qui doit délivrer au moins 2A pour être safe.
    As-tu une réponse « OK » à la commande « AT » ? Si oui, vérifie si ta SIM a un code pin activé
    Si non, faut vérifier la connection UART avec le module GSM : niveau électrique (généralement 1.8V, voire 2.8V) + que la « sortie » de CPxxx est connectée à « l’entrée » du module GSM

  7. Bonjour à tous,

    akila, tu a choisi donc le modèle rouge, avec l’antenne noir, les vendeurs sur Aliexpress, la vendent avec un antenne sur PCB qu’ils semblent appeler ventouse. Le modèle bleue lui est vendu avec les 2 antenne.

    Le modèle bleue semble mieux convenir à une alimentation 5V du coup, sans passer par un diode pour lui abaisser sa tension et vu que tu à le même souci d’alimentions, lui rajouter une capa supplémentaire lui suffit-il ?

    Pour l’intégrer dans un Home assistant, tu passe obligatoirement par l’USB avec un CP2102.
    Ou tu rester en TTL par un esp 8266 ou esp32 ? Ou passer directement sur le Raspberry s’il est très proche par les GPIO ?

    Merci en tout cas.

  8. Re bonjour,

    Certains carte rouge semble déjà être équipées de condensateur de 477uF au lieu des 107uF. Il faut encore en ajouter une ?
    Ce n’est pas vraiment spécifié dans la description ni désignation, seul les photos indique une 477!!

    1. Bonjour,
      J’utilise pas mal de « rouge » dans mes produits de tracking et ai eu au début des gros soucis de stabilité de tension. Sur la carte mère qui héberge ce module j’ajoute systématiquement 1 ou 2 tantale de 470uF, et ait même prévu de passer à 1000uF.
      D’autre part, l’alim du module est effectuée via un convertisseur DCDC qui me permet d’avoir les 4.1V optimaux pour ces circuits.
      Pour répondre à la question précédente, le module est interfacé avec une ESP32, juste avec un petit pont diviseur de SIM800 -> ESP32 et une petite résistance en série (1K juste pour protéger) de EPS32->SIM800. Les convertisseurs de niveau sont inutiles avec les SIM800 (cf datasheet SIMCOM)

  9. Bonjour à tous,
    Juste un petit “heads up” qui me vient à l’esprit en lisant la reprise d activité de ce thread,
    Les opérateurs français ont pour la plupart annoncé la fin de vie de la 2G et de la 3G.
    Je n’ai plus les dates en têtes, mais je peux vérifier même si les opérateurs restent discrets. C est entre 2026 et 2030.
    Pour des projets perso, ça permet quand même de voir venir… mais pour du pro, ça dépend du cycle de vie du produit.
    Mais si nouveau projet, je recommande de partir sur de la 4G en Cat1bis, les prix vont s approcher de la 2G dans les prochains mois.
    A toutes fins utiles

    1. Merci pour le rappel.
      Effectivement difficile d’avoir une date réelle d’arrêt de la 2G (toute information est bonne à prendre 😉 ).
      Je ne sais pas comment les industriel vont pouvoir suite de rythme de migration 2G -> 4G pour l’ensemble des équipements de surveillance encore en 2G … cela pourrait être une raison de maintenir la 2G encore un peu.
      Je migre progressivement mes produits vers la 4G, entre autre avec ce type de module (plusieurs modules différents dispo avec la même empreinte) : https://fr.aliexpress.com/item/4000863717055.html
      Cela nécessite un peu de réécriture de code car toutes les commandes AT ne sont pas identiques avec le SIM800. Mais les différences sont surtout pour les connections FTP, UDP …
      En espérant effectivement que le prix aille à la baisse car le module seul coute plus cher que le reste du système 🙁

      1. @Eric
        Pour les commandes AT, beaucoup d’entre elles sont standards.
        Effectivement pour la stack IP, bizarrement pas de standard.
        J’ai déjà fait des traductions d’un module concurrent (Sierra, Thales) vers ceux que je vends. La machine à état de ton SW peut changer car chaque constructeur a sa logique.
        Jamais fait depuis SimCom mais rien d insurmontable à mon avis.

        Pour la 2G3G, oui un sacré challenge pour les utilisateurs. Les opérateurs ont déjà repoussé les sunsets mais là de mon humble point de vue, ca sent la fin. Peut être qu un opérateur va jouer la carte du dernier fournisseur pour prendre le parc.
        Je vais chercher les dates à mon retour de congés et je t’envoie ce que j’ai dégoté.

Leave a Reply

Votre adresse e-mail 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.