Modifications

Sauter à la navigation Sauter à la recherche
4 038 octets ajoutés ,  8 janvier 2014 à 21:06
aucun résumé de modification
Ligne 4 : Ligne 4 :  
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).
 
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 411 : Ligne 411 :     
=== Sending SMS: using Software UART  ===
 
=== Sending SMS: using Software UART  ===
 +
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'''.  
 
'''Version du programme pour Arduino IDE < 1.0'''.  
   Ligne 443 : Ligne 448 :  
   delay(1000);
 
   delay(1000);
 
   mySerial.print(26,BYTE);  // Equivalent du Ctrl+Z (fin de texte du SMS)  
 
   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);
 +
 +
  //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.write(26);  // Equivalent du Ctrl+Z (fin de texte du SMS)
 +
                      // Note: ici il faut utiliser l'instruction write pour écrire un byte.
 
}
 
}
 
   
 
   
Ligne 453 : Ligne 500 :     
=== Faire un appel: en utilisant l'UART logiciel  ===
 
=== Faire un appel: en utilisant l'UART logiciel  ===
 +
'''Version d'Arduino < 1.0'''
 +
 +
Dans ce cas, nous utilisons la librairie NewSoftSerial
 +
 
  <nowiki>
 
  <nowiki>
 
#include <NewSoftSerial.h>   
 
#include <NewSoftSerial.h>   
Ligne 484 : Ligne 535 :  
   // Ne rien faire
 
   // 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);
 +
  }
 +
}
 +
 +
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>
 
</nowiki>
   Ligne 491 : Ligne 597 :  
Attention!!! les broches GPIOs,PWMs et ADC du module SIM900 utilisent toutes une logique en 2,8 volts.
 
Attention!!! les broches GPIOs,PWMs et ADC du module SIM900 utilisent toutes une logique en 2,8 volts.
 
</font>
 
</font>
 +
 +
Comme pour tous les autres exemples, il suffit de remplacer NewSoftSerial par SoftwareSerial si vous utilisez un Arduino V1.0.
    
  <nowiki>
 
  <nowiki>
Ligne 529 : Ligne 637 :  
* [http://arduiniana.org/NewSoftSerial/NewSoftSerial10c.zip Librairie NewSoftLibrary]
 
* [http://arduiniana.org/NewSoftSerial/NewSoftSerial10c.zip Librairie NewSoftLibrary]
 
* [http://musicshield.googlecode.com/files/sscom32E.exe Serial Terminals(sscom32)]
 
* [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]
    
== Ou acheter  ==
 
== Ou acheter  ==
Le shield GPRS peut être acheté chez MC Hobby. La page du produit est disponible [http://mchobby.be/PrestaShop ici]
+
Le shield GPRS peut être acheté chez MC Hobby. {{pl|63|La page du GSM/GPRS Shield est accessible ici}}
    
== Licence GeekOnFire ==
 
== Licence GeekOnFire ==
29 917

modifications

Menu de navigation