Différences entre versions de « GeekOnFire GSM/GPRS Shield SerialRelay2 »
Ligne 141 : | Ligne 141 : | ||
Note:La commande "AT+CMGF=1" sert a passer la gestion des messages SMS en mode texte. | Note:La commande "AT+CMGF=1" sert a passer la gestion des messages SMS en mode texte. | ||
− | + | <nowiki>AT | |
OK | OK | ||
Ligne 151 : | Ligne 151 : | ||
> is really awesome | > is really awesome | ||
> | > | ||
− | <nowiki> | + | </nowiki> |
C'est sur cette dernière ligne avec le ">" que vous entrez la séquence "~z" pour envoyer un CTRL-Z au GPRS Shield. | C'est sur cette dernière ligne avec le ">" que vous entrez la séquence "~z" pour envoyer un CTRL-Z au GPRS Shield. |
Version du 9 avril 2012 à 17:53
Introduction
Voici une version améliorée sur SerialRelay proposé par GeekOnFire.
Le principal désavantage de la version de base est qu'il n'est pas possible
d'envoyer certains caractères d'échappement (comme le Ctrl-Z) pourtant absolument
nécessaire pour clôturer un message SMS.
Cette version du programme écoute ce qui transite du Serial Moniteur
d'Arduino IDE vers le GPRS shield.
Si vous entrez un tilde (~), le programme en déduit que vous voulez envoyer
une séquence d'échappement au GPRS shield.Il attend la saisie du caractère suivant
et en fonction du second caractère envoi la séquence d'échappement adéquate.
Séquences d'échappement
Veuillez utiliser les séquence d'échappements suivantes dans le moniteur série pour envoyer une séquence d'échappement particulière au GPRS shield.
Séquence Moniteur Serie | Séquence envoyée au GPRS shield | Description |
~z | CTRL-Z | Fin de message SMS (caractère #26) |
~e | ESC | Abandon de message SMS (caractère #27) |
~~ | ~ | Permet d'envoyer un tilde au GPRS shield |
Code Source
// Serial Relay v2.0 // EN: // Arduino will patch serial link between the computer and // the GPRS Shield at 19200 bps 8-N-1 // Computer is connected to Hardware UART // GPRS Shield is connected to the Software UART // // This version allows to send escape sequence to GPRS Shield (for SMS messaging) // use <tilde>z for Ctrl-z // use <tilde>e for ESC // use <tilde><tilde> for <tilde> // // Require the Arduino serial monitor to be configured on // 19200 bds + Carriage Return // // FR: // Arduino va établir une liaison série entre l'ordinateur et // le shield GPRS a 19200 bauds 8-N-1 // L'ordinateur est connecté à un UART matériel // Le shield GPRS est connecté a un UART logiciel. // // Cette version permet d'envoyer des séquences d'échappement au // shield GPRS (pour envoyer une fin de message pour les SMS) // utiliser <tilde>z pour Ctrl-z // utiliser <tilde>e pour ESC // utiliser <tilde><tilde> pour un tilde // // Le moniteur série d'Arduino doit etre configuré sur // 19200 bds + Carriage Return // // Licence: CC-BY-SA // Meurisse D. // http://www.mchobby.be // #include <NewSoftSerial.h> NewSoftSerial mySerial(7, 8); // EN: 1 means than escape caracter (tilde) has been detected from Serial Monitor (Arduino Side) // FR: 1 indique que le caractere d'echappement est détecté sur le moniteur serie (coté Arduino) int escapingFlag = 0; void setup() { mySerial.begin(19200); // the GPRS baud rate Serial.begin(19200); // the GPRS baud rate } void loop() { char SerialInByte; if(Serial.available()) { // EN: Listen to Arduino IDE serial Moniteur // FR: Ecouter les envois du serial moniteur d'Arduino IDE char SerialInByte; SerialInByte = (unsigned char)Serial.read(); // EN: Intercept escape character (tilde) for escape sequence // FR: Intercepter le caractere d'echappement (tilde) for une sequence d'echappement if( (SerialInByte == 126) && (escapingFlag==0) ) { escapingFlag = 1; return; // wait next caracter / attendre caractere suivant } else { // EN: complete escaping sequence (if appropriate) // FR: complete la séquence d'echappement (if appropriate) if( escapingFlag == 1 ){ if( SerialInByte == 122 ){ // (tilde) z = Ctrl Z SerialInByte = 26; } if( SerialInByte == 101 ){ // (tilde) e = ESC SerialInByte = 27; } escapingFlag = 0; } // EN: Normal working. Simply send character (escaped or not) to GPRS shield // FR: Fonctionnement normal. Envoyer le caractere (echappé ou non) vers GPRS shield mySerial.print( SerialInByte ); } } else if(mySerial.available()) { // EN: Listen to GRPS shield + relay to Arduino Serial Monitor // FR: Ecouter les envois du GPRS shield + Renvoi vers Arduino Serial Monitor Serial.print((unsigned char)mySerial.read()); } }
Exemple
Voici un exemple d'envoi de SMS depuis le Serial Moniteur d'Arduino IDE.
Les réponses OK sont renvoyée par la GRPS Shield, le caractère ">" est une invite du SIM900 à poursuivre le message SMS.
Note:La commande "AT+CMGF=1" sert a passer la gestion des messages SMS en mode texte.
AT OK AT+CMGF=1 OK AT+CMGS="+32499667788" > For sure, GPRS Shield > is really awesome >
C'est sur cette dernière ligne avec le ">" que vous entrez la séquence "~z" pour envoyer un CTRL-Z au GPRS Shield.
Le GPRS shield cloturera le message SMS et l'enverra sur le réseau mobile. Vous obtiendrez une réponse du genre.
+CMGS: 127 OK
Toute référence, mention ou extrait de cette traduction doit être explicitement accompagné du texte suivant : « Traduction par MCHobby (www.MCHobby.be) - Vente de kit et composants » avec un lien vers la source (donc cette page) et ce quelque soit le média utilisé.
L'utilisation commercial de la traduction (texte) et/ou réalisation, même partielle, pourrait être soumis à redevance. Dans tous les cas de figures, vous devez également obtenir l'accord du(des) détenteur initial des droits. Celui de MC Hobby s'arrêtant au travail de traduction proprement dit.