Modifications

Sauter à la navigation Sauter à la recherche
7 935 octets ajoutés ,  8 janvier 2014 à 21:06
aucun résumé de modification
Ligne 2 : Ligne 2 :     
== Introduction ==
 
== Introduction ==
The Shield GSM/GPRS est basé sur un module SIM900 de SIMCOM, il est compatible avec Arduino et ses clones. Le shield GPRS permet à votre Arduino de communiquer en utilisant le réseau  GSM. Ce shield permet d'envoyer des SMS, MMS, GPRS et de Audio en envoyant des commandes AT à l'UART (voir [http://fr.wikipedia.org/wiki/UART wikipedia] pour plus d'information). Les commandes AT supportées sont GSM 07.07 ,07.05 et SIMCOM enhanced AT Commands. Le shield dispose aussi des 12 GPIOs, 2 sorties PWM et du convertisseur Analogique/Digital [http://en.wikipedia.org/wiki/Analog-to-digital_converter ADC] du module SIM900 (accessible sur la carte, logique 2.8volts).
+
Le shield GSM/GPRS est basé sur un module SIM900 de SIMCOM, il est compatible avec Arduino et ses clones. Le shield GPRS permet à votre Arduino de communiquer en utilisant le réseau  GSM. Ce shield permet d'envoyer des SMS, MMS, GPRS et de Audio en envoyant des commandes AT à l'UART (voir [http://fr.wikipedia.org/wiki/UART wikipedia] pour plus d'information). Les commandes AT supportées sont GSM 07.07 ,07.05 et SIMCOM enhanced AT Commands. Le shield dispose aussi des 12 GPIOs, 2 sorties PWM et du convertisseur Analogique/Digital [http://en.wikipedia.org/wiki/Analog-to-digital_converter ADC] du module SIM900 (accessible sur la carte, logique 2.8volts).
   −
'''Shield disponible chez''' [http://mchobby.be/PrestaShop MCHobby.be ATTN:Liens vers MCHobby WebShop]
+
'''{{pl|63|Shield disponible chez MCHobby.be}}'''
    
[[File:GSM-Shield-01.jpg]]
 
[[File:GSM-Shield-01.jpg]]
Ligne 80 : Ligne 80 :  
* Le produit est livré sans boitier protecteur. Il est important de suivre les précautions ESD (protection contre les décharges électrostatique), spécialement par temps sec (basse humidité).
 
* Le produit est livré sans boitier protecteur. Il est important de suivre les précautions ESD (protection contre les décharges électrostatique), spécialement par temps sec (basse humidité).
 
* La configuration d'usine de l'UART du GPRS shield est 19200 bauds 8-N-1. (peut-être changé à l'aide de commandes AT).
 
* La configuration d'usine de l'UART du GPRS shield est 19200 bauds 8-N-1. (peut-être changé à l'aide de commandes AT).
 +
 +
'''Arduino IDE < v1.0'''
 +
 
* La [http://arduiniana.org/NewSoftSerial/NewSoftSerial10c.zip librairie NewSoftLibrary] ne supporte que les débit inférieurs à 38400 bauds. Vous pourriez perdre des données en essayant de communiquer au dessus de 38400 bauds.
 
* La [http://arduiniana.org/NewSoftSerial/NewSoftSerial10c.zip librairie NewSoftLibrary] ne supporte que les débit inférieurs à 38400 bauds. Vous pourriez perdre des données en essayant de communiquer au dessus de 38400 bauds.
 
* La librairie standard NewSoftSerial n'a pas support de réception pour le Mega.  
 
* La librairie standard NewSoftSerial n'a pas support de réception pour le Mega.  
 
</font>
 
</font>
 +
 +
'''Arduino IDE >= v1.0'''
 +
* La librairie NewSoftSerial est disponible depuis Arduino 1.0. Elle est nommée '''SoftwareSerial''' et non NewSoftSerial.
 +
* La limitation de 38400 bauds décrite ci-dessus devrait rester d'application.
    
'''Version de NewSoftSerial compatible avec Mega'''
 
'''Version de NewSoftSerial compatible avec Mega'''
Ligne 89 : Ligne 96 :     
GOF a essayé cette nouvelle librairie. La limitation c'est qu'elle ne fonctionne qu'avec les broches supportant les interruptions (Pin11,12), donc le méga ne fonctionne qu'avec la configuration "Hardware UART communication" (synchronisation matérielle).
 
GOF a essayé cette nouvelle librairie. La limitation c'est qu'elle ne fonctionne qu'avec les broches supportant les interruptions (Pin11,12), donc le méga ne fonctionne qu'avec la configuration "Hardware UART communication" (synchronisation matérielle).
 +
 +
''Note de MC Hobby: Nous n'avons pas encore eu l'occasion de tester un GPRS shield sur un '''AT Mega + Arduino V1.0'''. En fonction des résultats, cette note serait susceptible d'être modifiée.''
    
== Description du matériel ==
 
== Description du matériel ==
Ligne 233 : Ligne 242 :  
</font>
 
</font>
   −
=== Indicator LEDs ===
+
=== Indicateurs LEDs ===
There are three indicator LEDs(PWR(<font color="green">Green</font>), Staus(<font color="blue">Blue</font>), Netlight(<font color="red">Red</font>)) on the GPRS Shield, users can know about the working state of the shield based on the three indicator LEDs. Detailed information please refer to the following table:
+
Le shield est équipé de 3 LEDs indicatrices (PWR (<font color="green">Vert</font>), Status (<font color="blue">Bleu</font>), Netlight (<font color="red">Rouge</font>)), il est possible d'identifier l'état du fonctionnement du shield à l'aide de ces 3 LEDs indicatrices.
 +
 
 +
* PWR indique si le shield est alimenté. PWR pour POWER (alimentation)
 +
* Status indique le Statut.
 +
* Netlight indique l'état de communication/connexion avec le réseau mobile.
 +
 
 +
Pour plus de détails, référez vous à la table suivante:
    
{| border="1" class="wikitable"
 
{| border="1" class="wikitable"
 
|-
 
|-
| width="100" align="center" | '''LEDs(color)'''  
+
| width="100" align="center" | '''LEDs(Couleur)'''  
| width="200" align="center" | '''Status'''  
+
| width="200" align="center" | '''Statut'''  
 
| width="300" align="center" | '''Description'''  
 
| width="300" align="center" | '''Description'''  
 
|- style="font-size: 90%"
 
|- style="font-size: 90%"
| rowspan="2" align="center" | PWR(<font color="green">Green</font>)
+
| rowspan="2" align="center" | PWR(<font color="green">Vert</font>)
| align="center" | ON
+
| align="center" | ALLUMEE
| align="center" | Power of the GPRS Shield is on
+
| align="center" | Le GPRS shield est alimenté
 
|- style="font-size: 90%"
 
|- style="font-size: 90%"
| align="center" | OFF
+
| align="center" | Éteinte
| align="center" | Power of the GPRS Shield is off
+
| align="center" | Le GPRS shield est hors tension
 
|- style="font-size: 90%"
 
|- style="font-size: 90%"
| rowspan="2" align="center" |  Staus(<font color="blue">Blue</font>)
+
| rowspan="2" align="center" |  Statut(<font color="blue">Bleu</font>)
| align="center" | ON
+
| align="center" | ALLUMEE
| align="center" | SIM900 is on
+
| align="center" | Le module SIM900 est actif
 
|- style="font-size: 90%"
 
|- style="font-size: 90%"
| align="center" | OFF
+
| align="center" | Éteinte
| align="center" | SIM900 is off
+
| align="center" | Le module SIM900 est inactif
 
|- style="font-size: 90%"
 
|- style="font-size: 90%"
| rowspan="4" align="center" | Netlight(<font color="red">Red</font>)
+
| rowspan="4" align="center" | Netlight (<font color="red">Rouge</font>)
| align="center" | 64ms On/800ms Off
+
| align="center" | 64ms allumée/800ms éteinte
| align="center" | SIM900 has not registered to a network
+
| align="center" | Le SIM900 n'est pas enregistré sur un réseau mobile
 
|- style="font-size: 90%"
 
|- style="font-size: 90%"
| align="center" | 64ms On/3000ms Off
+
| align="center" | 64ms allumée/3000ms éteinte
| align="center" | SIM900 has registered to a network
+
| align="center" | Le SIM900 est enregistré sur un réseau mobile
 
|- style="font-size: 90%"
 
|- style="font-size: 90%"
| align="center" | 64ms On/300ms Off
+
| align="center" | 64ms allumée/300ms éteinte
| align="center" | GPRS communication
+
| align="center" | En communication GPRS
 
|- style="font-size: 90%"
 
|- style="font-size: 90%"
 
| align="center" | OFF  
 
| align="center" | OFF  
| align="center" | SIM900 is not running
+
| align="center" | Le module SIM900 est inactif
 
|- style="font-size: 90%"
 
|- style="font-size: 90%"
 
|}
 
|}
Ligne 273 : Ligne 288 :  
<br>
 
<br>
   −
=== SIM Card Installation ===
+
=== Installation de la Carte SIM ===
An <font color="red">unlocked</font> SIM card should be inserted in SIM Card Holder on the bottom side of the shield. Both 1.8 volts and 3.0 volts SIM Cards are supported by SIM900 and the SIM card voltage type is automatically detected by SIM900.  
+
Une carte SIM <font color="red">déSimLockée</font> (''unlocked'') doit être insérée dans le support de carte SIM situé sous le shield. Le SIM900 supporte les cartes SIM utilisant les tensions 1.8 volts et 3.0 volts (le type de carte SIM et sa tension d'utilisation est automatiquement détecté par le module SIM900).  
    
<font color="red">
 
<font color="red">
Note: Make sure your SIM Card is unlocked; If you not sure, you can check with your provider.
+
Note: Assurez-vous que votre carte SIM soit bien débloquée; Si vous n'êtes pas certain, vérifiez avec votre fournisseur de service.
 
</font>
 
</font>
   −
=== Antenna Interface ===
+
=== L'antenne ===
The shield comes with a GSM qurd-band antenna; Make sure the antenna is assembled and antenna pad is buckled properly.
+
Le shield est fournit avec une antenne GSM quadri-band (''qurd-band antenna''); Assurez-vous que l'antenne est montée/visée sur le shield et que son fils soit correctement raccordée sur sa borne de raccordement.
   −
=== Audio Interface ===
+
=== Connexion Audio ===
The GPRS Shield has 3.5mm Microphone interface and Speaker Interface, If you want to make voice calls, you would also require a headset with microphone.
+
Le shield GPRS dispose d'une interface 3.5mm pour le microphone et le haut-parleur. Si vous désirez faire des appels vocaux, vous aurez également besoin d'un casque incluant un microphone.
   −
=== Upload Sketch to Arduino ===
+
=== Charger le Sketch sur Arduino ===
 +
 
 +
Le sketch suivant configure votre Arduino/Clone Arduino comme un "relais série" entre votre ordinateur et le shield GPRS Shield <font color="red">(Jumpers connectés du côté "SW serial"/communication série logicielle)</font>. L'ordinateur aura besoin d'un logiciel de type Terminal pour vous permettre de communiquer avec votre shield GPRS par l'intermédiaire de votre Arduino. Par exemple HyperTerminal de Windows, le moniteur série de l'IDE Arduino, [http://musicshield.googlecode.com/files/sscom32E.exe Serial Terminals(sscom32)] ou [http://sites.google.com/site/terminalbpp/ Bray++ Terminal].
    
[[File:GSM-Shield-09-SerialRelay-fr.jpg|600px|center]]
 
[[File:GSM-Shield-09-SerialRelay-fr.jpg|600px|center]]
Ligne 292 : Ligne 309 :  
<center>'''Flux de données entre l'ordinateur, Arduino et le shield GPRS'''</center>
 
<center>'''Flux de données entre l'ordinateur, Arduino et le shield GPRS'''</center>
   −
The following sketch configures Arduino/Arduino clone as serial link between PC and the GPRS Shield<font color="red">(Jumpers on SWserial side)</font>. PC would need a serial terminal software to communicate with it - Window's built-in HyperTerminal, Arduino IDE's Serial Monitor, [http://musicshield.googlecode.com/files/sscom32E.exe Serial Terminals(sscom32)] or [http://sites.google.com/site/terminalbpp/ Bray++ Terminal].
+
'''Note de MC Hobby:'''
 +
# Vous pouvez utiliser le moniteur série d'Arduino pour communiquer directement avec l'UART du SIM900 à l'aide de ce sketch. Dans ce cas, il faut configurer le débit de la connexion du moniteur série sur "'''19.200 Bauds'''" et "'''Carriage Return'''". En effet, l'UART du SIM900 réagit au retour clavier!
 +
# Le retour clavier, souvent symbolisé par CR correspond à touche "enter"/"Entrée". Cette touche correspond au caractère ASCII 13 aussi codé en C à l'aide de "/r".
   −
Vous pouvez utiliser le moniteur série d'Arduino pour communiquer directement avec l'UART du SIM900 à l'aide de ce sketch. Dans ce cas, il faut configurer le débit de la connexion du moniteur série sur "19.200 Bauds" et "Carriage Return". En effet, l'UART du SIM900 réagit au retour clavier.
+
Après avoir téléchargé votre sketch sur la carte Arduino, pressez le bouton ON/OFF du GPRS shield pour l'allumer; Vous pourrez ensuite voir ce qui s'affiche sur votre Terminal série, le statut des 3 indicateurs LEDs et finalement communiquer avec votre GPRS shield.
 +
<nowiki>
 +
// Serial Relay - Arduino < 1.0
 +
// Arduino servira d'intermédiaire de  
 +
// communication série entre votre ordinateur et le
 +
// shield GPRS (19200 bps 8-N-1)
 +
//
 +
// L'ordinateur est connecté à un UART matériel,  
 +
// Le shield GPRS est connecté à un UART logiciel
   −
Note: Le retour clavier, souvent symbolisé par CR correspond à touche "enter"/"Entrée". Cette touche correspond au caractère ASCII 13 aussi codé en C à l'aide de "/r".
+
#include <NewSoftSerial.h>
 +
 +
NewSoftSerial mySerial(7, 8);
 +
 +
void setup()
 +
{
 +
  mySerial.begin(19200);              // GPRS baud rate 
 +
  Serial.begin(19200);                // GPRS baud rate 
 +
}
 +
 +
void loop()
 +
{
 +
    if(Serial.available())
 +
    {
 +
      mySerial.print((unsigned char)Serial.read());
 +
    } 
 +
    else  if(mySerial.available())
 +
    {
 +
      Serial.print((unsigned char)mySerial.read());
 +
    } 
 +
 +
}
 +
</nowiki>
   −
After uploading the sketch to the Arduino board, press the ON/OFF button on the GPRS Shield to turn it on; Now you can see what you get on the serial terminal and the status of the three indicator LEDs, then communicate with your Shield.
+
La version ci-dessous convient pour Arduino 1.0 :
<syntaxhighlight lang="Arduino">
+
<nowiki>
//Serial Relay - Arduino will patch a  
+
//Serial Relay - pour Arduino 1.0
//serial link between the computer and the GPRS Shield
+
//
//at 19200 bps 8-N-1
+
// Arduino will patch a serial link between the computer  
 +
// and the GPRS Shield at 19200 bps 8-N-1
 
//Computer is connected to Hardware UART
 
//Computer is connected to Hardware UART
 
//GPRS Shield is connected to the Software UART  
 
//GPRS Shield is connected to the Software UART  
  −
#include <NewSoftSerial.h>
   
   
 
   
NewSoftSerial mySerial(7, 8);
+
#include <SoftwareSerial.h>    // For Arduino 1.0
 +
 +
SoftwareSerial mySerial(7, 8); // For Arduino 1.0
 
   
 
   
 
void setup()
 
void setup()
Ligne 320 : Ligne 370 :  
     if(Serial.available())
 
     if(Serial.available())
 
     {
 
     {
       mySerial.print((unsigned char)Serial.read());
+
       char c = Serial.read();
 +
      mySerial.print(c);
 
     }   
 
     }   
 
     else  if(mySerial.available())
 
     else  if(mySerial.available())
 
     {
 
     {
      Serial.print((unsigned char)mySerial.read());
+
        char c = mySerial.read();
 +
      Serial.print(c);
 
     }   
 
     }   
   
}
 
}
</syntaxhighlight>
+
</nowiki>
<font color="red">
+
 
Note:  
+
 
*Make sure you install [http://arduiniana.org/NewSoftSerial/NewSoftSerial10c.zip NewSoftLibrary] library properly.
+
Notes:
*The "AT" or "at" prefix must be set at the beginning of each Command line. To terminate a Command line enter <CR>.  
+
* Pour une version Arduino IDE:
</font>
+
** <font color="red">< 1.0 : assurez vous que vous avez bien installé la librairie [http://arduiniana.org/NewSoftSerial/NewSoftSerial10c.zip NewSoftLibrary].</font>
 +
** >= 1.0: pas besoin d'installer la librairie NewSoftSerial, elle est disponible dans l'installation par défaut comme SoftwareSerial.
 +
* Le préfix "AT" ou "at" doit être présent au début de chaque ligne. Pour terminer une commande, pressez la touche Retour/Enter <CR>.
 +
 
 +
=== Version Améliorée du Sketch ===
 +
 
 +
'''Note de MC Hobby''':
 +
 
 +
Bien que cela ne soit pas nécessaire lors de vos premiers tests avec le GPRS shield, MCHobby vous propose d'utiliser sa version améliorée [[GeekOnFire GSM/GPRS Shield SerialRelay2|SerialRelay 2]].
 +
 
 +
Cette nouvelle version permet d'envoyer la séquence d'échappement Ctrl-z au GPRS shield depuis le Moniteur Série d'Arduino. Ce sera un allier vraiment précieux.
 +
 
 +
== Exemples ==
 +
=== Note préliminaire ===
 +
Les exemples ci-dessous partent du principe que la carte SIM utilisée ne nécessite pas de code PIN.
 +
Si votre carte SIM nécessite l'utilisation d'un code PIN, vous pouvez utiliser la commande AT+CPIN.
 +
 
 +
=== Arduino V1.0 et versions antérieures ===
 +
Les programmes ci-dessous sont écrits pour des Arduino < 1.0.
 +
 
 +
Dans ce cas, la librairie est NewSoftSerial doit être utilisée.
 +
 
 +
'''Depuis la version Arduino 1.0''', NewSoftSerial à été intégrée à la plateforme Arduino sous le nom de '''SoftwareSerial'''.
 +
 
 +
Si vous utilisez un Arduino 1.0, il faut remplacer les occurrences de "NewSoftSerial" par "SoftwareSerial" et opérer, au cas par cas, quelques modifications.
   −
== Examples ==
   
=== Sending SMS: using Software UART  ===
 
=== Sending SMS: using Software UART  ===
<syntaxhighlight lang="Arduino">
+
La plupart des cartes SIM vendues nécessites la saisie d'un code pin avant d'accéder au réseau mobile.
 +
Si c'est le cas de votre carte SIM vous avez deux choix:
 +
* Annuler l'usage du code pin avec la carte SIM (si cela est possible, voir avec votre opérateur).
 +
* Consulter les FAQ à propos de la commande AT "AT+CPIN". Utiliser SerialRelay2 sera bien utile pour conduire vos tests.
 +
 +
'''Version du programme pour Arduino IDE < 1.0'''.
   −
#include <NewSoftSerial.h>
+
Cette version utilise la libraire NewSoftSerial pour communiquer avec la GPRS shield.
 +
 
 +
<nowiki>
 +
// Version pour Arduino IDE < 1.0
 +
#include <NewSoftSerial.h>  
 
   
 
   
 
NewSoftSerial mySerial(7, 8);
 
NewSoftSerial mySerial(7, 8);
Ligne 345 : Ligne 428 :  
void setup()
 
void setup()
 
{
 
{
   mySerial.begin(19200);  //Default serial port setting for the GPRS modem is 19200bps 8-N-1
+
   mySerial.begin(19200);  // Paramètres par défaut du port série du GPRS shield (19200bps 8-N-1)
   mySerial.print("\r");
+
  mySerial.print("\r");  // Envoyer un retour à la ligne <CR>
   delay(1000);                    //Wait for a second while the modem sends an "OK"
+
  delay(1000);                    // Attendre une seconde que le modem retourne "OK"
   mySerial.print("AT+CMGF=1\r");   //Because we want to send the SMS in text mode
+
  mySerial.print("AT+CMGF=1\r");  // Envoyer un SMS en mode texte
 +
  delay(1000);
 +
 +
  //mySerial.print("AT+CSCA=\"+919032055002\"\r");// Configurer le centre de message SMS, 
 +
  //delay(1000);                                  // Retirer les commentaire seulement si nécessaire et
 +
                                                  // remplacer le No avec celui obtenu auprès de votre
 +
                                                  // fournisseur de service mobile.
 +
                                                  //Note: pour inclure un " dans une chaine de caractère
 +
                                                  //  il faut utiliser la notation \"
 +
 +
  mySerial.print("AT+CMGS=\"+9184460xxxx\"\r");  // Commencer un SMS à envoyer au numéro +91....
 +
                                                  // l'encodage du texte suivra plus bas.
 +
                                                  // Remplacer le No avec celui de votre destinataire.
 +
  delay(1000);
 +
  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)
 +
}
 +
 +
void loop()
 +
{
 +
      // Nous voulons seulement envoyer le SMS une seule fois, il n'y a donc rien dans la boucle loop().
 +
      // Si nous mettons le code du SMS ici, alors il sera envoyer encore et encore (Oups! cela couterait cher).
 +
}
 +
</nowiki>
 +
 
 +
'''Version du programme pour Arduino IDE >= 1.0'''.
 +
 
 +
Cette version utilise la libraire SoftwareSerial, intégrée à l'installation d'Arduino IDE 1.0, pour communiquer avec la GPRS shield.
 +
 
 +
<nowiki>
 +
// Version pour Arduino IDE < 1.0
 +
#include <SoftwareSerial.h>   
 +
 +
SoftwareSerial mySerial(7, 8);
 +
 
 +
void setup()
 +
{
 +
  mySerial.begin(19200);  // Paramètres par défaut du port série du GPRS shield (19200bps 8-N-1)
 +
   mySerial.print("\r");   // Envoyer un retour à la ligne <CR>
 +
   delay(1000);                    // Attendre une seconde que le modem retourne "OK"
 +
   mySerial.print("AT+CMGF=1\r"); // Envoyer un SMS en mode texte
 
   delay(1000);
 
   delay(1000);
 
   
 
   
   //mySerial.print("AT+CSCA=\"+919032055002\"\r"); //Setting for the SMS Message center number,   
+
   //mySerial.print("AT+CSCA=\"+919032055002\"\r");// Configurer le centre de message SMS,   
   //delay(1000);                                  //uncomment only if required and replace with
+
   //delay(1000);                                  // Retirer les commentaire seulement si nécessaire et
                                                   //the message center number obtained from
+
                                                   // remplacer le No avec celui obtenu auprès de votre
                                                   //your GSM service provider.
+
                                                   // fournisseur de service mobile.
                                                   //Note that when specifying a tring of characters
+
                                                   //Note: pour inclure un " dans une chaine de caractère
                                                   // " is entered as \"
+
                                                   // il faut utiliser la notation \"
 
   
 
   
   mySerial.print("AT+CMGS=\"+9184460xxxx\"\r");   //Start accepting the text for the message
+
   mySerial.print("AT+CMGS=\"+9184460xxxx\"\r");   // Commencer un SMS à envoyer au numéro +91....
                                                   //to be sent to the number specified.
+
                                                   // l'encodage du texte suivra plus bas.
                                                   //Replace this number with the target mobile number.
+
                                                   // Remplacer le No avec celui de votre destinataire.
 
   delay(1000);
 
   delay(1000);
   mySerial.print("Hi from Geekonfire!\r");   //The text for the message
+
   mySerial.print("Bienvenu chez MCHobby!\r");     // Le texte du message
 
   delay(1000);
 
   delay(1000);
   mySerial.print(26,BYTE);  //Equivalent to sending Ctrl+Z  
+
   mySerial.write(26);  // Equivalent du Ctrl+Z (fin de texte du SMS)
 +
                      // Note: ici il faut utiliser l'instruction write pour écrire un byte.
 
}
 
}
 
   
 
   
 
void loop()
 
void loop()
 
{
 
{
       //We just want to send the SMS only once, so there is nothing in this loop.
+
       // Nous voulons seulement envoyer le SMS une seule fois, il n'y a donc rien dans la boucle loop().
       //If we put the code for SMS here, it will be sent again and again and cost us a lot.
+
       // Si nous mettons le code du SMS ici, alors il sera envoyer encore et encore (Oups! cela couterait cher).
 
}
 
}
</syntaxhighlight>
+
</nowiki>
 +
 
 +
=== Faire un appel: en utilisant l'UART logiciel  ===
 +
'''Version d'Arduino < 1.0'''
   −
=== Making a call: using Software UART  ===
+
Dans ce cas, nous utilisons la librairie NewSoftSerial
<syntaxhighlight lang="Arduino">
     −
#include <NewSoftSerial.h>
+
<nowiki>
 +
#include <NewSoftSerial.h>  
 
   
 
   
NewSoftSerial mySerial(7, 8);
+
NewSoftSerial mySerial(7, 8);  
    
void setup()
 
void setup()
 
{
 
{
   mySerial.begin(19200);               // the GPRS baud rate   
+
   mySerial.begin(19200);   // GPRS baud rate   
   Serial.begin(19200);               // the GPRS baud rate   
+
   Serial.begin(19200);     // GPRS baud rate   
 
   delay(2000);
 
   delay(2000);
   mySerial.println("ATDxxxxxxxxx;"); // xxxxxxxxx is the number you want to dial.   
+
   mySerial.println("ATDxxxxxxxxx;"); // xxxxxxxxx est le numéro a appeler.   
 
          
 
          
 
   if(mySerial.available())
 
   if(mySerial.available())
Ligne 396 : Ligne 524 :  
   delay(10000);  
 
   delay(10000);  
   −
   mySerial.println("ATH"); //End the call.
+
   mySerial.println("ATH"); // Fin d'appel.
 
   if(mySerial.available())
 
   if(mySerial.available())
 
   {
 
   {
Ligne 405 : Ligne 533 :  
void loop()
 
void loop()
 
{
 
{
   //Do nothing
+
   // Ne rien faire
 
}
 
}
 +
</nowiki>
 +
 +
'''Version d'Arduino >= 1.0'''
 +
 +
Dans ce cas, nous utilisons la librairie SoftwareSerial incluse dans l'installation d'Arduino
 +
 +
<nowiki>
 +
#include <SoftwareSerial.h> 
 +
 +
SoftwareSerial mySerial(7, 8);
 +
 +
// relayer la réponse de fromSerial (type SoftwareSerial) vers
 +
//  le port serie d'Arduino (19200baud). Facile le deboggage
 +
void relayResponse( SoftwareSerial &fromSerial ){
 +
  // Attention, il faut attendre que l'UART réponde
 +
  // avant de lire mySerial (temps conseillé= 1sec)
 +
  //
 +
  while(fromSerial.available())
 +
  {
 +
    // Envoi le résultat sur la connexion série
 +
    char c = fromSerial.read();
 +
    Serial.print(c);
 +
  }
 +
}
   −
</syntaxhighlight>
+
void setup()
 +
{
 +
  mySerial.begin(19200);  // GPRS baud rate 
 +
  Serial.begin(19200);    // GPRS baud rate 
 +
  delay(2000);
 +
  mySerial.println("ATDxxxxxxxxx;"); // xxxxxxxxx est le numéro a appeler. 
 +
       
 +
  // NB: Une boucle while serait plus appropriée que la section de code ci-dessous.
 +
  //    Je vous propose d'appeler la fonction suivante:
 +
  //    relayResponse( mySerial )
 +
  if(mySerial.available())
 +
  {
 +
    char c = mySerial.read();
 +
    Serial.print( c );
 +
  } 
 +
 
 +
  delay(10000);
 +
  delay(10000);
 +
 
 +
  mySerial.println("ATH"); // Fin d'appel.
 +
  if(mySerial.available()) // Voir commentaire précédent.
 +
  {
 +
    char c = mySerial.read();
 +
    Serial.print( c );
 +
  }   
 +
}
 +
 +
void loop()
 +
{
 +
  // Ne rien faire
 +
}
 +
</nowiki>
   −
=== Using AT Commands to Control GPIO and PWM pins ===
+
=== Commandes AT pour contrôler les broches GPIO et PWM ===
 
<font color="red">
 
<font color="red">
Note: GPIOs,PWMs and ADC of the SIM900 module are all 2V8 logic.
+
Attention!!! les broches GPIOs,PWMs et ADC du module SIM900 utilisent toutes une logique en 2,8 volts.
 
</font>
 
</font>
<syntaxhighlight lang="Arduino">
      +
Comme pour tous les autres exemples, il suffit de remplacer NewSoftSerial par SoftwareSerial si vous utilisez un Arduino V1.0.
 +
 +
<nowiki>
 
#include <NewSoftSerial.h>
 
#include <NewSoftSerial.h>
 
   
 
   
Ligne 422 : Ligne 607 :  
void setup()
 
void setup()
 
{
 
{
   mySerial.begin(19200);               // the GPRS baud rate   
+
   mySerial.begin(19200); // GPRS baud rate   
   Serial.begin(19200);               // the GPRS baud rate   
+
   Serial.begin(19200);   // GPRS baud rate   
 
   delay(2000);
 
   delay(2000);
 
}
 
}
Ligne 429 : Ligne 614 :  
void loop()
 
void loop()
 
{
 
{
   mySerial.println("AT+SPWM=1,63,100");// set PWM 1 PIN
+
   mySerial.println("AT+SPWM=1,63,100");// assigner une valeur PWM à la sortie PWM 1
   mySerial.println("AT+SPWM=2,63,50");// set PWM 2 PIN
+
   mySerial.println("AT+SPWM=2,63,50"); // assigner une valeur PWM à la sortie PWM 2
 
    
 
    
   mySerial.println("AT+SGPIO=0,1,1,1");// set GPIO 1 PIN to 1
+
   mySerial.println("AT+SGPIO=0,1,1,1");// Assigner la valeur 1 à la broche GPIO 1
 
   mySerial.println("AT+SGPIO=0,12,1,1");
 
   mySerial.println("AT+SGPIO=0,12,1,1");
 
   delay(1000);   
 
   delay(1000);   
   −
   mySerial.println("AT+SGPIO=0,1,1,0");// set GPIO 1 PIN to 0
+
   mySerial.println("AT+SGPIO=0,1,1,0");// Assigner la valeur 1 à la broche GPIO 1
 
   mySerial.println("AT+SGPIO=0,12,1,0");
 
   mySerial.println("AT+SGPIO=0,12,1,0");
 
   delay(1000);     
 
   delay(1000);     
 
}
 
}
 +
</nowiki>
   −
</syntaxhighlight>
+
== Schéma ==
 
+
Voir chez le lien suivant chez le constructeur [http://www.geekonfire.com/wiki/images/2/24/GPRSshield_sch.pdf GPRSshield_sch.pdf]
== Schematics ==
  −
[http://www.geekonfire.com/wiki/images/2/24/GPRSshield_sch.pdf GPRSshield_sch.pdf]
  −
 
  −
== Resources ==
  −
[http://www.geekonfire.com/wiki/images/a/a8/SIM900_AT_Command_Manual_V1.03.pdf SIM900 AT Commands Manual v1.03.pdf]
  −
 
  −
[http://www.geekonfire.com/wiki/images/8/82/Sim900_hd_v1.06.pdf SIM900_hd_v1.06.pdf]
  −
 
  −
[http://www.geekonfire.com/wiki/images/e/ed/AN_SIM900_TCPIP_V1.01.pdf SIM900_TCP/IP Application Note]
  −
 
  −
[http://www.vishay.com/docs/70415/si5902bd.pdf Si5902BDC] - Dual N-Channel 30 V (D-S) MOSFETs (used for 2.8V <> 5.0V translation for Serial Interface)
     −
[http://arduiniana.org/NewSoftSerial/NewSoftSerial10c.zip NewSoftLibrary]
+
== Ressources ==
 +
* [http://mchobby.be/data-files/gprsshield/SIM900_AT_Command_Manual_V1.03.pdf Manuel des commandes AT du SIM900] version 1.3 (miroir [http://www.geekonfire.com/wiki/images/a/a8/SIM900_AT_Command_Manual_V1.03.pdf chez GOF])
 +
* [http://www.geekonfire.com/wiki/images/8/82/Sim900_hd_v1.06.pdf SIM900_hd_v1.06.pdf]
 +
* [http://www.geekonfire.com/wiki/images/e/ed/AN_SIM900_TCPIP_V1.01.pdf SIM900_TCP/IP Application Note]
 +
* [http://www.vishay.com/docs/70415/si5902bd.pdf Si5902BDC] - Dual N-Channel 30 V (D-S) MOSFETs (utilisé pour l'adaptation de tension 2.8V <-> 5.0V)
 +
* [http://arduiniana.org/NewSoftSerial/NewSoftSerial10c.zip Librairie NewSoftLibrary]
 +
* [http://musicshield.googlecode.com/files/sscom32E.exe Serial Terminals(sscom32)]
 +
* [http://www.geekonfire.com/wiki/images/2/24/GPRSshield_sch.pdf Schéma du shield]
   −
[http://musicshield.googlecode.com/files/sscom32E.exe Serial Terminals(sscom32)]
+
== Ou acheter  ==
 +
Le shield GPRS peut être acheté chez MC Hobby. {{pl|63|La page du GSM/GPRS Shield est accessible ici}}
   −
== How to buy  ==
+
== Licence GeekOnFire ==
GPRS Shield can be ordered through the GOF store. Its product page is located [http://www.geekonfire.com/index.php?main_page=product_info&cPath=7_49&products_id=78 here]
+
Cette document est fournie sous la licence Creative Commons [http://creativecommons.org/licenses/by-sa/3.0/ Attribution-ShareAlike License 3.0]. Le code source et les librairies sont sous [http://www.gnu.org/licenses/gpl.html licence GPL/LGPL], voir le code source des fichiers pour plus d'information.
== Licensing  ==
  −
This documentation is licensed under the Creative Commons [http://creativecommons.org/licenses/by-sa/3.0/ Attribution-ShareAlike License 3.0] Source code and libraries are licensed under [http://www.gnu.org/licenses/gpl.html GPL/LGPL], see source code files for details.
      
== Note de traduction ==
 
== Note de traduction ==
29 917

modifications

Menu de navigation