Modifications

Sauter à la navigation Sauter à la recherche
9 159 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 160 : Ligne 169 :  
</nowiki>
 
</nowiki>
   −
Lorsque la procédure de mise sous tension est achevée, le SIM900 envoi un code de résultat (result code) pour indiqué qu'il est prêt; Lorsqu'il est configuré comme '''fixed baud rate''' (ce qui est le cas par défaut), le SIM900 envoi le code:
+
Lorsque la procédure de mise sous tension est achevée, le SIM900 envoi un code de résultat (result code) pour indiqué qu'il est prêt; Lorsqu'il est configuré comme '''fixed baud rate''' (ce qui est le cas par défaut), le SIM900 envoi le code: '''RDY'''
 
  −
'''RDY'''
   
   
 
   
 
Ce code de résultat n'apparaît pas lorsque le SIM900 est configuré en '''auto baud rate'''.
 
Ce code de résultat n'apparaît pas lorsque le SIM900 est configuré en '''auto baud rate'''.
   −
==== Power Down the GPRS Shield ====
+
==== Extinction du shield GPRS  ====
The GPRS Shield can be turned off by following ways:
+
Le shield GPRS peut-être arrêté de plusieurs façons:
*<font color="red">'''1, Normal power down procedure''':</font> Turn off the GPRS shield by using '''Hardware Triger'''; Press the '''ON/OFF Button''' about <font color="red">two seconds</font>.   
+
*<font color="red">'''1, Procédure d'extinction Normale''':</font> éteindre le shield GPRS en utilisant le '''déclenchement matériel'''; pressez le bouton  '''marche/arrêt''' (ON/OFF) pendant environ <font color="red">deux secondes</font>.   
The power down scenarios illustrates as following figure:
+
Le scénario d'extinction s'illustre par les étapes suivantes:
 
[[File:GSM-Shield-06-On-Off.jpg|800px|center]]
 
[[File:GSM-Shield-06-On-Off.jpg|800px|center]]
<center>'''Figure of Timing of turning off GPRS Shield using Hardware Triger'''</center>
+
<center>'''Graphique de synchronisation lorsque le GPRS shield est mis sous tension par déclenchement matériel'''</center>
*<font color="red">'''2, Normal power down procedure''':</font> If <font color="red">JP</font> is soldered, then give <font color="red">Digital Pin 9</font> of the Arduino(act as Software Triger) a Turn off Impulse can turn off the GPRS Shield. The power down scenarios illustrates as following figure:
+
 
 +
*<font color="red">'''2, Procédure d'extinction Normale''':</font> éteindre le shield GPRS en utilisant le '''déclenchement matériel'''; si <font color="red">JP</font> est soudé alors la <font color="red">pin digital n° 9</font> de votre Arduino agit comme un déclencheur logiciel. Une impulsion d'extinction peut éteindre le shield GPRS. Le scénario d'extinction s'illustre par les étapes suivantes:
 
[[File:GSM-Shield-07-On-Off.jpg|800px|center]]
 
[[File:GSM-Shield-07-On-Off.jpg|800px|center]]
<center>'''Figure of Timing of turning off GPRS Shield using Software Triger'''</center>
+
<center>'''Graphique de synchronisation lorsque le GPRS shield est mis sous tension par déclenchement logiciel'''</center>
<font color="red">The following code is power down subroutine for Arduino if using software triger:</font>
+
 
 +
La sous routine suivante utilise le déclenchement logiciel du shield GPRS:
 +
<font color="red">Pas activé par défaut, utilisez le déclenchement matériel à la place.</font>
   −
<syntaxhighlight lang="Arduino">
+
<nowiki>
 
void powerDown()
 
void powerDown()
 
{
 
{
Ligne 188 : Ligne 198 :  
   delay(3000);
 
   delay(3000);
 
}
 
}
</syntaxhighlight>
+
</nowiki>
 
  −
 
  −
*<font color="red">'''3, Normal power down procedure''':</font> Turn off the GPRS shield by sending AT command “'''AT+CPOWD=1'''” to SIM900 module.
  −
 
  −
When GPRS Shield power dowm in '''Normal power down procedure''', the procedure lets the SIM900 log off from the network and allows the software to enter into a secure state and save data before completely disconnecting the power supply. Before the completion of the power down procedure the SIM900 will send out result code:
  −
 
  −
'''NORMAL POWER DOWN'''
  −
 
  −
*<font color="red">'''4, Over-voltage or Under-voltage Automatic Power Down''':</font> SIM900 will constantly monitor the voltage applied on the VBAT.
  −
①If the voltage ≤ 3.3V, the following URC will be presented:
  −
 
  −
'''UNDER-VOLTAGE WARNNING'''
  −
 
  −
②If the voltage ≥ 4.7V, the following URC will be presented:
  −
 
  −
'''OVER-VOLTAGE WARNNING'''
     −
③The uncritical voltage range is 3.2V to 4.8V. If the voltage > 4.8V or < 3.2V, SIM900 will be automatic power down soon. If the voltage < 3.2V, the following URC will be presented:
     −
'''UNDER-VOLTAGE POWER DOWN'''  
+
* <font color="red">'''3, Procédure d'extinction Normale''':</font> Extinction du shield GPRS à l'aide d'une commande AT. Envoyez la commande  “'''AT+CPOWD=1'''” au module SIM900 éteint le shield GPRS.
   −
④If the voltage > 4.8V, the following URC will be presented:  
+
<nowiki>Lorsque le shield GPRS est éteint en suivant une '''procédure d'extinction normale''', cette procédure
 +
permet au SIM900 de se déconnecter (log off) du réseau et permet au logiciel d'entrer dans un état
 +
stable (secure state) et de sauver les données avant de couper completement l'alimentation.  
 +
Avant l'achèvement de cette procédure Normale, le SIM900 renvoi le code de résultat: '''NORMAL POWER DOWN'''</nowiki>
   −
'''OVER-VOLTAGE POWER DOWN'''
+
* <font color="red">'''4, Extinction automatique pour sur-tension ou sous-tension''':</font> (Over-voltage or Under-voltage Automatic Power Down) Le module SIM900 surveille constamment le tension appliquée sur VBAT.
 +
** ①Si la tension ≤ 3.3V, le code de résultat suivant est affiché (URC - Unsolicited Result Code): '''UNDER-VOLTAGE WARNNING'''
 +
** ②Si la tension ≥ 4.7V, le code de résultat suivant est affiché (URC): '''OVER-VOLTAGE WARNNING'''
 +
** ③La gamme de tension non critique est situé entre 3.2V et 4.8V. Si la tension > 4.8V ou < 3.2V, Le SIM900 s'éteindra automatiquement et rapidement. si la tension < 3.2V, le code de résultat suivant est affiché (URC): '''UNDER-VOLTAGE POWER DOWN'''
 +
** ④Si la tension > 4.8V, le code de résultat suivant est affiché: '''OVER-VOLTAGE POWER DOWN'''
   −
*<font color="red">'''5, Over-temperature or Under-temperature Automatic Power Down''':</font> SIM900 will constantly monitor the temperature of the module.
+
*<font color="red">'''5, Extinction automatique pour Sur-chauffe ou Sous-chauffe''':</font> (Over-temperature or Under-temperature Automatic Power Down) le SIM900 surveille constamment la température du module.
①If the temperature > 80℃, the following URC will be presented:  
+
** ①Si la température > 80℃, le code de résultat (URC) suivant est affiché: '''+CMTE:1'''
 +
** ②Si la température < -30℃, le code de résultat (URC) suivant est affiché: '''+CMTE:-1'''
 +
** ③La gamme de température non critique est situé entre -40℃ et +85℃. Si la température > +85℃ ou < -40℃, le module s'éteindra automatiquement et rapidement. Si la température est > +85℃, le code de résultat (URC) suivant est affiché: '''+CMTE:2'''
 +
** ④Si la température < -40℃, le code de résultat suivant (URC) est affiché: '''+CMTE:-2'''
   −
'''+CMTE:1'''
+
Quand le shield GPRS rencontre une scénario d'extinction (POWER DOWN), les commandes AT ne peuvent pas être exécutées. Le module SIM900 se déconnecte dy réseau (logs off) et entre dans le <font color="red">mode extinction</font> (POWER DOWN mode), seul le RTC reste actif. Le mode d'extinction (POWER DOWN) est également visible sur la LED indicatrice (<font color="blue">Blue</font>), qui est éteinte dans ce mode.
 
  −
②If the temperature < -30℃, the following URC will be presented:
  −
 
  −
'''+CMTE:-1'''
  −
 
  −
③The uncritical temperature range is -40℃ to +85℃. If the temperature > +85℃ or < -40℃, the module will be automatic power down soon. If the temperature > +85℃, the following URC will be presented:
  −
 
  −
'''+CMTE:2'''
  −
 
  −
④If the temperature < -40℃, the following URC will be presented:
  −
 
  −
'''+CMTE:-2'''
  −
 
  −
When the GPRS Shield encounters POWER DOWN scenario, the AT commands can not be executed. The SIM900 logs off from network and enters the <font color="red">POWER DOWN mode</font>, only the RTC is still active. POWER DOWN can also be indicated by STATUS LED(<font color="blue">Blue</font>), which is off in this mode.
      
<font color="red">
 
<font color="red">
 
Note:  
 
Note:  
*To monitor the temperature, users can use the “'''AT+CMTE'''” command to read the temperature when GPRS Shield is powered on.
+
* Pour surveiller la température, l'utilisateur peut utiliser la commande “'''AT+CMTE'''” pour lire la température lorsque le shield GPRS est sous tension.
*To monitor the supply voltage, users can use the “'''AT+CBC'''” command which includes a parameter: voltage value(in mV) when GPRS Shield is powered on.  
+
* Pour surveiller la tension d'alimentation, l'utilisateur peut utiliser la commande “'''AT+CBC'''” lorsque le shield GPRS est sous tension. Commande qui inclus un paramètre: valeur de tension en mV (voltage value in mV).  
 
</font>
 
</font>
   −
=== Serial Port(UART) Communication ===
+
=== Port de communication série (UART) ===
The GPRS Shield is used UART protocol to communicate with an Arduino/Arduino clone; Users can use jumpers to connect (RX,TX) of the shield to either Software Serial(D8,D7) or Hardware Serial(D1,D0) of the Arduino.Detailed information is showed as the following picture:
+
Le shield GPRS utilise un protocole UART pour communiquer avec un Arduino/Clone Arduino; L'utilisateur peut utiliser des raccords (jumpers) pour connecter le shield soit en communication série Logiciel (D8,D7 pour Software Seriel) ou en communication série Matérielle (D1,D0 pour Hardware Seriel) avec votre Arduino.  
 +
 
 +
Voir l'image ci-dessous pour plus de détails:
 
[[File:GSM-Shield-08-UART-fr.jpg|frame|center]]
 
[[File:GSM-Shield-08-UART-fr.jpg|frame|center]]
<center>'''Selectalbe GPRS Shield Communication Port'''</center>
+
<center>'''Selecteur du port de communication série du Shield GPRS'''</center>
 
<font color="red">
 
<font color="red">
Note:  
+
Notes:  
*Users can use “'''AT+IPR=?'''” command to see supported baudrate, it will response a list of supported baudrate.
+
* L'utilisateur peut utiliser la commande “'''AT+IPR=?'''” pour connaître les débits (baudrate) supportés, la réponse sera une liste des débits (baudrate) supportés.
*Users can use “'''AT+IPR=''x'''''”(''x'' is value of supported baudrate) to set a fixed baud rate and save the configuration to non-volatile flash memory.
+
* L'utilisateur peut utiliser “'''AT+IPR=''x'''''”(''x'' étant une valeur de débit/baudrate supporté) pour fixer le débit à utiliser et mémoriser la configuration dans la mémoire flash non-volatile.
*When users select Software Serial to communicate, [http://arduiniana.org/NewSoftSerial/NewSoftSerial10c.zip NewSoftLibrary] library should be install in arduino‘s libraries.
+
* Quand l'utilisateur communique avec le shield GPRS en utilisant la librairie Software Serial, la librairie [http://arduiniana.org/NewSoftSerial/NewSoftSerial10c.zip NewSoftLibrary] doit être installé dans les librairies d'Arduino.
*[http://arduiniana.org/NewSoftSerial/NewSoftSerial10c.zip NewSoftLibrary] library only support baudrate under 38400bps.
+
* La librairie [http://arduiniana.org/NewSoftSerial/NewSoftSerial10c.zip NewSoftLibrary] supporte uniquement des débits inférieurs à 38400bps.
 
</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 291 : 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 310 : 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 338 : 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'''.
 +
 
 +
Cette version utilise la libraire NewSoftSerial pour communiquer avec la GPRS shield.
   −
#include <NewSoftSerial.h>
+
<nowiki>
 +
// Version pour Arduino IDE < 1.0
 +
#include <NewSoftSerial.h>  
 
   
 
   
 
NewSoftSerial mySerial(7, 8);
 
NewSoftSerial mySerial(7, 8);
Ligne 363 : 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>
   −
=== Making a call: using Software UART  ===
+
=== Faire un appel: en utilisant l'UART logiciel ===
<syntaxhighlight lang="Arduino">
+
'''Version d'Arduino < 1.0'''
   −
#include <NewSoftSerial.h>
+
Dans ce cas, nous utilisons la librairie NewSoftSerial
 +
 
 +
<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 414 : 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 423 : Ligne 533 :  
void loop()
 
void loop()
 
{
 
{
   //Do nothing
+
   // Ne rien faire
 
}
 
}
 +
</nowiki>
   −
</syntaxhighlight>
+
'''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);
 +
  }
 +
}
 +
 
 +
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);
   −
=== Using AT Commands to Control GPIO and PWM pins ===
+
  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>
 +
 
 +
=== 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 440 : 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 447 : 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