PROJET DE TELECOMMANDES
VIA LE RESEAU GSM PAR ENVOI DE SMS
Est présenté ici le principe de gestion d’un module GPRS
par un Arduino Nano -ou Uno- en vue de contrôler à distance
des équipements: commander des actions, acquérir des
informations (état, mesures).Ceci à faible coût.
LES MOYENS :
- Smartphone : envoi des SMS de télécommande et réception
de l’état du système télécommandé
- Arduino Nano : recevoir les commandes et activer des
sorties. Acquérir aussi des entrées
- Module GPRS SIM800 : assurer la réception et l’envoi des
SMS
- Carte SIM (abonnement opérateur)
Le SIM800 et l’Arduino communiquent par liaison série avec des commandes AT.
Exemple de prix
MODULE SIM800
MONTAGE D’ESSAI
Arduino Nano
D2 connectée à TX du SIM800
D3 connectée à RX du SIM800 via un pont diviseur pour ne pas
dépasser une tension de 3,3 V.
D0 et D1 réservées au port série IDE de l’Arduino.
Disponibles pour les télécommandes :
- D4 à D12 pour des E/S TOR
- A0 à A5 pour des E/S TOR ou entrées analogiques
- A6 et A7 pour des entrées analogiques (uniquement Arduino Nano)
SIM800
Alimentation entre 3,4 V et 4,4 V au plus direct du module SIM800
pouvant fournir au moins 2 A. Par exemple 3 batteries NI-MH en série
de 2000 mAh (voir remarque ci-dessous).
SCHEMA DE PRINCIPE
Remarque : On apportera un soin particulier à l’alimentation du
SIM800. Les pointes de courant peuvent créer de brèves chutes de
tension qui, si elles sont inférieures à la tension minimale,
entrainent le « reset » du module.
LES COMMANDES AT
Pour paramétrer ce module et envoyer/recevoir des SMS, on utilisera
les commandes AT suivantes :
1- Vérifier la connexion avec le module :
Commande : AT
Réponse : OK
2- Envoyer le code PIN si nécessaire (carte SIM initialisée avec
un code) :
Commande : at+cpin="XXXX" // XXXX code PIN de la carte SIM
Réponse : OK
+CPIN: READY
Call Ready
SMS Ready
3- Activer le mode texte (ASCII) :
Commande : AT+CMGF=1
Réponse : OK
Permet d'activer le mode texte (ASCII) pour l'envoi du SMS.
4- Envoi d'un SMS :
Se fait en 3 étapes.
4.1- Passer le n° de téléphone :
Commande : AT+CMGS="+336xxxxxxxx" // n° avec préfixe du pays
Réponse : > // C'est l'invite à saisir le message
4.2- Saisie du message :
Commande : > ligne 1 // Chaque ligne se termine par <CR>
> ligne 2 // touche « Entrée » avec un terminal
> ligne 3
> ligne 4
>
4.3- Envoi du message :
Commande : <CTRL-Z> // voir ci-dessous le programme de test
Réponse : +CMGS: X // X numéro du SMS envoyé
OK
5- Réception d’un SMS :
5.1- Avertissement de réception d’un SMS vers l’Arduino :
Réception : +CMTI: "SM",X // X numéro du SMS reçu
5.2- Récupération du SMS :
Commande : AT+CMGR=X // X numéro du SMS
Réponse :
+CMGR: "REC UNREAD","+336xxxxxxxx","","17/09/23,16:08:01+08"
ligne 1
ligne 2
ligne 3
ligne 4
OK
6- Autres commandes utiles :
Effacer les SMS reçus de la mémoire du module SIM800
Commande : AT+CMGD=1,4
Réponse : OK
Rapport de qualité du réseau
Commande : AT+CSQ
Réponse : +CSQ:<rssi>,<ber> // rssi : niveau du signal
// ber : taux d’erreur (en %)
OK
Liste des opérateurs réseau accessibles
Commande : at+cops=?
Réponse : +COPS: (2,"SFR","SFR","20810"),(1,"BOUYGUES
TELECOM","BYTEL","20820"),(1,"Orange F","Orange","20801"),,(0-
4),(0-2)
OK
Nom de l’opérateur connecté
Commande : at+cops?
Réponse : +COPS: 0,0,"Orange F"
OK
PROGRAMME DE TEST (ARDUINO UNO OU NANO)
Permet de simuler un terminal :
Liaison série entre le moniteur de l’IDE Arduino et le module SIM800
Le code :