Tuto module SIM800 GSM + Arduino pour télécommande

mardi 6 mars 2018.


***Pour revenir à la page d’accueil** ICI

Avec les abonnement GSM à 2€ mensuel et les modules GSM SIM800 à moins de 10€ il devient intéressant d’utiliser les SMS comme moyens de télécommande sans limite de distance.

Une solution alternative à l’IOT (Internet Of Things / objets connectés via Internet) est d’utiliser le système téléphonique cellulaire pour télécommander ( ou lire l’état de capteurs) sans limite de distance.

Hors carte SIM, le coût materiel total est inférieur à 12€.

Principe

Le module SIM800 est un telephone GSM simple, sans clavier, écran,micro ni haut-parleur mais possédant une liaison série à connecter à un microcontrôleur local, ici un Arduino Nano (compatible Uno).

Des capteurs, Led, et/ou actuateurs ( relais...)peuvent être connectés à l’ Arduino.

Un exemple simple est une Led activée à distance et dont l’état On/Off peut être relu.Voir Logiciel de télécommande ci dessous.

Montage de base pour tester un SIM800

Le SIM800 comporte 4 broches utiles pour nous :

-  Plus (3.4 à 4.4V)
-  Masse
-  TX émet vers le RX du Nano, ici D10
-  RX reçoit du TX du Nano , ici D11

Mais il existe deux pièges avec ces modules :

Piège 1

La position des broches TX et RX inversées selon les modules....(et non repérées pour certains !).Donc si rien ne fonctionne inverser ces connexions.

Piège 2

L’extrême sensibilité à l’alimentation : par exemple, une alimentation de laboratoire ne convenait pas pour les 4V du module. Il parait donc indispensable d’utiliser

-  soit des piles ( mais pour obtenir entre 3.4 V et 4.4 V certains schémas font chuter la tension avec des diodes en série...à vérifier)

-  soit une batterie de telephone

-  soit un condensateur >=4700µF et un module TP4056 de charge de batterie Lithium-Ion (coût inférieur à 1€).

D’autre part souder les deux fils directement entre l’ alimentation et les broches + et - du SIM800.(Tout ceci peut paraître parano, mais c’est le fruit de plusieurs heures, sinon journées, de galère, car le montage semble fonctionner mais de façon aléatoire...)

Si le Nano est alimenté en +5 V, bien que le SIM800 semble le tolérer, il est preferable de diminuer à 3.3 V la broche D11/TX par deux resistances ( par exemple 1 k et 2 k en série).

En conclusion, si le montage ne fonctionne pas du tout dès le début, inverser TX et RX.

S’il répond à certains ordres AT mais pas à tous et de façon aléatoire, vérifier l’alimentation du module : batterie ou pile, entre 3.4 V et 4.4 V.

La led du module flash plusieurs fois à la mise sous tension puis émet un flash toutes les 4 s environ en régime de croisière.

Logiciel de test

On commence par supprimer le code PIN de la carte SIM pour simplifier les dialogues .Il est possible de le faire avec des commandes AT mais le plus simple est de supprimer ce code à partir d’un telephone.

Via la fenêtre de l’IDE de l’Arduino ( paramétrée à 9600 bps, NL et CR en fin de ligne), on envoie des ordres "AT" ( ou "at", les minuscules sont autorisées ).

Noter que l’on peut faire un copier / coller de la ligne entrée et du texte de la fenêtre par Ctrl-C / Ctrl-V.

Noter aussi que pour terminer et donc émettre un SMS on doit envoyer Ctrl-z.Or ce caractère special n’est pas autorisé par l’IDE Arduino, et donc ne parvient pas au SIM800.

Ici on le remplace par le caractère "&".

***********Echanges sur le moniteur IDE Arduino quand on execute le logiciel

*******SIM800_Test_avec_&_pour_Ctrl-z ***********************

Setup Complete !......... // Première ligne reçue

-  at............... //entré au clavier, juste pour vérifier, on doit obtenir "OK"

OK

-  at+cops ?......... //entré au clavier, pour voir quel opérateur est connecté

+COPS : 0,0,"Orange F"..... //Carte SIM FREE mais l’opérateur dans ce cas est Orange

OK

***************************Emission d’un SMS*************************

-  at+cmgf=1....... //entré au clavier.Mode texte pour les SMS

OK

-  at+cmgs="+33611189xxx" ...... //entré au clavier.On donne le numéro du destinataire

> mon texte ..... //entré au clavier

> fin de mon texte..... //entré au clavier

> .....

> ........ //entré au clavier le caractère & pour Ctrl-z n’est pas imprimé.Il déclenche l’émission du SMS

+CMGS : 17 ....... //Reçu du SIM800, signifie :SMS expédié, c’est le 17 ème avec cette carte SIM

OK

****************************Reception d’un SMS*****************

**********Depuis un telephone GSM, on émet vers la carte SIM, ce SMS : "Mon sms de test" .***************

+CMTI : "SM",4 ....... //Apparaît sur l’écran quand un nouveau SMS est arrivé, ici en position 4

-  at+cmgr=4 ...... //entré au clavier pour lire la position 4

+CMGR :"REC UNREAD","+33611189xxx","","17/06/29,16:53:28+08"

Mon sms de test ... //Noter "REC UNREAD", le N° de l’émetteur, la date an/mois/jour, heure et fuseau 08 ?

OK

-  at+cmgr=4...... //entré au clavier de nouveau pour lire la position 4

+CMGR : "REC READ","+33611189xxx","","17/06/29,16:53:28+08"

Mon sms de test ...... //Noter "REC READ"

OK

-  at+cmgd=4..... //entré au clavier , effacement du SMS en position 4

OK

-  at+cmgr=4...... //entré au clavier

-  at+cmgr=4...... //réponse : rien à lire, la position 4 est vide

OK

SIM800_Test_OK_pour_Ctrl-z - 1.1 ko

SIM800_Test_OK_pour_Ctrl-z
Logiciel SIM800_Test_OK_pour_Ctrl-z
Logiciel exploité ci dessus

Test_SIM800_SMS - 1.2 ko

Test_SIM800_SMS
LogicielTest_SIM800_SMS
Ce logiciel envoie automatiquement un SMS au numéro à indiquer dans le programme.

Logiciel de télécommande

On émet le SMS "led On"depuis n’importe quel telephone.

Le Nano qui scrute en permanence la liaison série détecte l’arrivée d’un SMS.

Tout SMS contient le numéro de l’émetteur, le message, la date et l’heure d’emission.

Le message "led On" commande l’allumage de la Led standard présente dans tout Nano (ou Uno).

Le Nano émet ensuite un SMS d’accusé de reception "Ordre reçu : Allumer LED !" vers le numéro appelant.

Si le SMS reçu diffère de "led on" ou "led off", le Nano émet le SMS "Ordre non compris".

La fonction LireSMS() peut bien sur être modifiée en fonction des actions à exécuter par le Nano.

SIM800_telecommande_de__Led_par_SMS_070717.txt - 6.6 ko

SIM800_telecommande_de__Led_par_SMS_070717.txt
SIM800_telecommande_de__Led_par_SMS_070717.txt

Remerciements à Jacques G. principal auteur de ce logiciel

qui a depuis publié ce pdf :
sur

http://f6kfa.fr/projet-de-telecomma...

Annexe : commandes AT

La jungle des commandes AT en comporte plusieurs dizaines (centaines ?).Elles sont décrites dans le document "SIM800 Series_AT Command Manual_V1.09"

https://www.elecrow.com/download/SI...

En voici une selection parfaitement arbitraire :

-  ATI

SIM800 R14.18.....................//Reference du module

-  AT+CNUM

+CNUM : "Messagerie","+33769644xxx",145,0,4...... //Numéro de telephone de la carte SIM

-  AT+CSQ

+CSQ : 7,0...................//Niveau du signal reçu et taux d’erreurs

-  AT+CREG ?

+CREG : 0,5......................// 0 pour réseau GSM , 5 réseau OK, sinon 0

-  AT+COPS= ?...................Peut prendre 30 s d’attente, liste des opérateurs accessibles

+COPS : (2,"Orange F","Orange","20801"),(3,"SFR","SFR","20810"),(3,"BOUYGUES TELECOM","BYTEL","20820"),,(0-4),(0-2)

-  AT+GSN.....................//Fournit le code IMEI

864369037836222

-  AT+CPIN ?

+CPIN : READY........................//Pas de code PIN

-  AT+CBC................//Etat de la batterie

+CBC : 0,71,3972........//0 pas en charge, 71% chargée, Tension actuelle 3.972 V

-  at+cmgl="ALL"........//Lire tous les SMS sur la carte SIM

+CMGL : 1,"REC READ","+33611189328","","17/06/29,16:53:28+08"

Matéo

+CMGL : 2,"REC READ","+33611189328","","17/06/29,19:17:46+08"

Hjk

-  AT+CMGDA= ?.................//Toutes les options pour effacer les SMS

+CMGDA : ("DEL READ","DEL UNREAD","DEL SENT","DEL UNSENT","DEL INBOX","DEL ALL")

-  at+cmgda="DEL ALL"..........//Effacer TOUS les SMS

OK

-  at+cmgr=1

OK...........................//Le SMS a bien été effacé


 


Forum

6777 visites.