Modifications

Sauter à la navigation Sauter à la recherche
Ligne 1 : Ligne 1 :  
{{GsmShield-Nav}}
 
{{GsmShield-Nav}}
   −
Voici quelques petit mémo concernant les commandes AT.
+
== Introduction ==
 +
 
 +
Voici quelques petits mémos concernant les commandes AT les plus courantes. Ces dernières seront forcements plus détaillées dans le [http://mchobby.be/data-files/gprsshield/SIM900_AT_Command_Manual_V1.03.pdf manuel Ad Hoc des Commandes AT v1.03]. 
 +
 
 +
Chaque commande AT se termine par un retour chariot "Carriage Return" correspondant à la touche "Entrée"/"Retour"). Attention donc à la configuration du Moniteur Serie d'Arduino si c'est ce dernier que vous utilisez (Carriage Return + 19200 bauds).
 +
 
 +
Les commandes AT décritent ci-dessous partent du principe que vous êtes capable de dialoguer avec le module SIM900 à l'aide d'un terminal ou équivalent.
 +
 
 +
Référez-vous à la documentation relative au sketch [[GeekOnFire_GSM/GPRS_Shield#Charger_le_Sketch_sur_Arduino|Serial Relay]] (ou son successeur lorsqu'il sera disponible).
 +
 +
== Code PIN ==
 +
A ne surtout pas négliger. La plupart des cartes SIM nécessite la saisie d'un code PIN avant de se connecter sur un réseau mobile.
 +
 
 +
Si votre carte SIM nécessite l'usage d'un code PIN, le module SIM900 produira spontanément le message "'''+CPIN: SIM PIN'''".
 +
 
 +
Vous pouvez demander le statut relatif au code pin en introduisant la commande "'''AT+CPIN?'''". Si le code PIN est correctement introduit, vous recevrez la réponse "+CPIN: READY"
 +
 
 +
Pour encoder votre code PIN, utilisez la commande AT suivante (en admettant que votre code PIN est 1234):
 +
 
 +
AT+CPIN=1234
 +
 
 +
== Numéro IMEI ==
 +
Ce numéro permet d'identifier de façon univoque votre module GSM/GPRS. Vous pouvez l'obtenir sur votre GSM/mobile standard à l'aide du numéro spécial "*#06#".
 +
 
 +
sur votre GSM shield, cette information est obtenue à l'aide de la commande AT "'''AT+CGSN'''"
 +
 
 +
== Statut ==
 +
=== Call Ready ===
 +
"Call Ready" est un message envoyé spontanément par le module SIM900 lorsqu'il est enregistré sur le réseau mobile.
 +
Si vous voulez savoir quand votre GPRS est prêt à l'emploi, c'est le message à guetter ;-) .
 +
 
 +
== Appel téléphonique ==
 +
Pour passer un appel téléphonique, il faut utiliser la commande
 +
=== Effectuer un appel ===
 +
Pour effectuer un appel, il faut utiliser la commande "'''ATD+32499667788;'''" où vous pouvez clairement identifier le numéro de téléphone.
 +
 
 +
Durant l'établissement de la communication, le module SIM900 affiche spontanément différentes informations concernant le statut de la communication vocale.
 +
 
 +
Suivant que la communication soit établie ou refusée, vous pouvez obtenir les messages spontané suivants:
 +
* CONNECT lorsque la communication est établie
 +
* NO CARRIER lorsque l'appel est refusé (appel non décroché et interrompu par l'opérateur)
 +
 
 +
{{tmbox | text = Si vous n'arrivez pas à établir votre première communication vocale, placez votre carte SIM dans un téléphone normal et effectuez un appel téléphonique. Bon nombre d'opérateurs pirate ce premier appel pour vous forcer à configurer votre numéro de téléphone. Et rein à faire, il vous faudra utiliser un vrai téléphone pour effectuer cette phase de configuration. }}
 +
 
 +
=== Accepter un Appel ===
 +
Lorsqu'un appel vocal est en cours d'établissement, le message spontané "RING" est envoyé par le SIM900.
 +
 
 +
Pour y réponde (décrocher le téléphone), il faut utiliser la commande "'''ATA'''"
 +
 
 +
=== Interrompre un appel ===
 +
Pour interrompre un appel téléphonique, il faut utiliser la commande  "'''ATH'''"
 +
 
 +
=== Activité téléphonique ===
 +
La commande "AT+CPAS" permet de s'informer de l'activité du téléphone.
 +
 
 +
La réponse consiste généralement en "+CPAS: ''valeur_statut''" ou "+CME ERROR: ''Code_Erreur''".
 +
 
 +
Les différentes valeurs possible pour ''valeur_statut'' sont:
 +
* 0 Prêt
 +
* 2 Inconnu (Réponse aux instructions n'est pas garanti)
 +
* 3 Sonne (Ringing) (capable de répondre aux commandes AT mais le téléphone sonne)
 +
* 4 Appel en cours (capacble de répondre aux commandes AT mais le un appel est en cours)
 +
 
 +
== SMS ==
 +
=== Utiliser le Mode Texte ===
 +
Pour aborder la gestion des messages SMS, le plus simple est encore de les manipuler en mode Texte.
 +
 
 +
Pour passer en mode de gestion Texte, utilisez la commande "AT+CMGF=1"
 +
 
 +
=== Réception d'un SMS ===
 +
Lorsque le GPRS Shield reçoit un SMS, le module SIM900 envoi spontanément un message similaire à "'''+CMTI: "SM",21'''".
 +
 
 +
'''+CMTI:''' servira de détecteur pour identifier la réception du message.
 +
 
 +
Le 21 indiqué dans l'exemple ci-dessus identifie la position "mémoire" du SIM900 où le message est stocké. Il s'agit d'une information importante.
 +
 
 +
=== Limitation mémoire ===
 +
La carte SIM dispose de 25 emplacements pour stocker les SMS en cours de réception.
 +
Une fois le message traité, l'emplacement mémoire devrait être libéré à l'aide de la commande AT adéquate.<br />
 +
Si vous ne recevez plus les notification +CMTI c'est probablement parce que votre mémoire est saturée (voir notre [[GeekOnFire GSM/GPRS Shield FAQ|FAQ]] pour plus de détails).
 +
 
 +
=== Lecture du contenu SMS ===
 +
Pour lire le contenu d'un SMS, il faut utiliser la commande "AT+CMGR=21".
 +
 
 +
21 indiquant la position "mémoire" où est stocké le message en question. Cette position à été fournie par le message spontanée "+CMTI:" envoyé par le SIM900
 +
 
 +
Le module SIM900 réagira à la commande "AT+CMGR=..." produira le résultat suivant:
 +
<nowiki>+CMGR: "REC UNREAD","+32499668899","","12/04/08,14:00:39+08"
 +
Love Arduino
 +
</nowiki>
 +
 
 +
Attention, le message arrive en deux (ou plusieurs) lignes distinctes!
 +
 
 +
Vous pouvez identifier le statut du message (REC UNREAD), le no de l'émetteur (+32499668899) ainsi que la date et l'heure.
 +
 
 +
Le message quand à lui est des plus explicite, il s'agit de "Love Arduino" :-)
 +
 
 +
=== Effacer un message SMS ===
 +
La commande "AT+CMGD=''index''" permet d'effacer une message SMS de la mémoire du SIM900.
 +
Effacer le contenu d'un message ne modifie en rien la valeur du compteur de message. Les informations du message sont effacées et la mémoire est libérée.
 +
Un nouvelle lecture de la position effacée retournera simplement "OK" (sans autre information).
 +
 
 +
=== Liste des messages à effacer ===
 +
Vous pouvez prendre connaissance de la liste des messages effaçable à l'aide de la commande "'''AT+CMGD=?'''".
 +
 
 +
Ce message produit, à titre d'exemple, le résultat suivant:
 +
 
 +
+CMGD: (1-25),(0-4)
 +
 
 +
Indiquant que les messages de 1 à 25 peuvent être effacés.
 +
 
 +
=== Lister tous les messages ===
 +
La commande suivante affiche tous les messages stockés dans les emplacements mémoires de la carte SIM.
 +
 
 +
AT+CMGL="ALL"
 +
 
 +
=== Envoi d'un SMS ===
 +
L'envoi d'un message se fait en envoyant la commande AT suivante:
 +
<nowiki>AT+CMGS="+32499778866"
 +
</nowiki>
 +
Sur Arduino, cela se traduirait par le code suivant:
 +
<nowiki>mySerial.print("AT+CMGS=\"+32499778866\"\r");
 +
</nowiki>
 +
Note:
 +
* La séquence de caractère \" indique au compilateur qu'il faut inclure une guillemet dans la chaine de caractère.
 +
* La séquence de caractère \r indique au compilateur qu'il faut inclure un retour chariot (CR) dans la chaine de caractère.
 +
 
 +
Par la suite, le SIM900 attend l'encodage du texte/corps du message (même sur plusieurs lignes).
 +
Un message texte peut se terminer par une instruction spécial (seule instruction) sur la dernière ligne du message.
 +
Il y a deux instructions différentes utilisable:
 +
* Envoi message = CTRL+Z - séquence d'échappement correspond au caractère 26.
 +
* Abandon message = ESC - séquence d'échappement correspondant au caractère 27.
 +
 
 +
L'envoi d'un CTRL+Z en se traduirait par le code suivant:
 +
<nowiki>mySerial.print("Bienvenu chez MCHobby!\r");    // Le texte du message
 +
delay(1000);
 +
mySerial.print(26,BYTE);  // Equivalent du Ctrl+Z (fin de texte du SMS)
 +
// Sur Arduino 1.0 utiliser plutôt l'instruction
 +
//mySerial.write(26);
 +
</nowiki>
 +
L'exemple ci-dessus illustre bien qu'il faut un retour chariot sur la dernière ligne du message (le \r derrière MCHobby!) avant d'envoyer le Ctrl+Z.
 +
 
 +
=== Envoi d'un SMS avec Serial Relay ===
 +
Vous pouvez tester plus facilement l'envoi et la réception de SMS en utilisant le moniteur série d'Arduino IDE et Serial Relay. <br />
 +
Serial Relay est programme que vous téléchargez sur votre Arduino et qui sert de relais entre Arduino IDE et votre carte GPRS.<br />
 +
C'est un outil pratique pour tester vos commandes AT en "life".<br />
 +
Chez MC Hobby, nous avons quelque peut amélioré le programme originel de GOF pour le rendre encore plus pratique.<br />
 +
Pour envoyer le CTRL+Z à l'aide du moniteur série, vous pouvez utiliser la séquence ~z que nous avons spécialement mis en place dans notre Serial Relay V2. Cette dernière séquence sera interceptée et transformée en CTRL+Z pour être ensuite envoyée à l'UART du GPRS shield.
 +
 
 +
Voici un exemple d'envoi de SMS à l'aide du moniteur Serie d'Arduino et de Serial Relay v2
 +
<nowiki>AT+CMGS="+32499778866"
 +
MC Hobby love Arduino
 +
~z
 +
</nowiki>
 +
 
 +
Vous pouvez trouver [[GeekOnFire GSM/GPRS Shield SerialRelay2|Serial Relay V2.0]] (ou une version plus récente) dans le menu en haut à droite des pages Wiki consacrées à notre GPRS shield.
    
{{MCH-Accord}}
 
{{MCH-Accord}}
29 917

modifications

Menu de navigation