Utilisation du module GSM SIM900A

Bonsoir à tous !

J'ai récemment fait l'acquisition d'un module GSM (Modèle: SIM900A)

Mais je n'ai cependant toujours pas réussi à le faire fonctionner, malgré de nombreux essais qui furent tous un échec. C'est pourquoi je me tourne vers vous, je n'ai pas réussi à trouver de câblage précis sur internet, le module dispose, de deux GND, trois VCC (VCC5,VCC4 et VCCMCV), un SIMR (RX), SIMT (TX), et RST (RESET).

Je ne sais pas comment dois-je la câbler ?

Je précise que j'utilise une carte SIM FREEMOBILE, dont j'ai enlevé le code PIN pour plus de simplicité.

Cordialement, Merci d'avance pour vos aides.

Bonjour,

Une petite recherche sur Google t'amène sur ce forum !

http://forum.arduino.cc/index.php?topic=285520.0

Il faut relier le VCC5 et VCCMCV ensembles sur me 5V si tu es en 5V. Le sujet est traité dans le post ci-dessus.

@+

Merci pour votre réponse mais j'obtiens ceci:

Trying to force the baud-rate to 9600

1200
2400
4800
9600
19200
38400
57600
115200
ERROR: SIM900 doesn't answer. Check power and serial pins in GSM.cpp

status=IDLE

Le module est bien connecté sur les pins 2 et 3 comme indiqués, et les deux GND ainsi que le VCC5 et VCCMCV

  1. le SIM900A s'allume t-il ? Les voyants sont-ils allumés ?
  2. quel sketch as-tu utilisé ?
  3. par défaut, je crois que la vitesse du port série du SIM900 est 57600 bauds. Est-ce bien configuré ?

etc, etc...

  1. Oui le SIM900A est bien allumé, j'ai un voyant qui reste allumé et un autre qui clignote.

  2. J'ai utilisé un des exemples de code disponible dans la librairie sur la lien que tu m'as envoyé

#include "SIM900.h"
#include <SoftwareSerial.h>
//If not used, is better to exclude the HTTP library,
//for RAM saving.
//If your sketch reboots itself proprably you have finished,
//your memory available.
//#include "inetGSM.h"

//If you want to use the Arduino functions to manage SMS, uncomment the lines below.
#include "sms.h"
SMSGSM sms;

int numdata;
boolean started=false;
char smsbuffer[160];
char n[20];

void setup() 
{
  //Serial connection.
  Serial.begin(9600);
  Serial.println("GSM Shield testing.");
  //Start configuration of shield with baudrate.
  //For http uses is raccomanded to use 4800 or slower.
  if (gsm.begin(2400)){
    Serial.println("\nstatus=READY");
    started=true;  
  }
  else Serial.println("\nstatus=IDLE");
  
  if(started){
    //Enable this two lines if you want to send an SMS.
    //if (sms.SendSMS("3471234567", "Arduino SMS"))
      //Serial.println("\nSMS sent OK");
  }

};

void loop() 
{
  if(started){
    //Read if there are messages on SIM card and print them.
    if(gsm.readSMS(smsbuffer, 160, n, 20))
    {
      Serial.println(n);
      Serial.println(smsbuffer);
    }
    delay(1000);
  }
};

Je remplaces donc 2400 par 57600 ?

En remplaçant j'ai la même erreur

Je crois que j'ai écrit une bêtise, la vitesse par défaut pour MON SIM900 est 19200 bauds. Je ne sais pas si c'est la même avec le SIM900A

Comment as-tu raccordé l'Arduino au SIM900A ? Quels pins des 2 côtés.

Je ne vois pas de déclaration de la partie liaison série vers le GSM...

Je ne connais pas la librairie utilisée, mais il doit y avoir une déclaration des pins utilisés pour la gestion de la liaison série.

D'après ta copie écran, la déclaration serait dans le fichier GSM.cpp. La vitesse y est peut-être aussi.

Le clignotement de ton GSM change t-il au bout de quelques secondes ?? Il doit être rapide au début , puis plus lent.

Je viens de récupérer ta librairie, et apparemment il y a une détection automatique (AUTOBAUD) de la vitesse .

Par contre, il faut décommenter 2 lignes dans GSM.cpp afin de configurer les pins utilisés pour la liaison série.
Il y a 2 versions de shield et 2 config possibles.

TX D4 et RX D5
ou
TX D2 et RX D3

commence par ça ! Sais-tu quelle version tu as ?

la librairie semble très "verbeuse" et fait pas mal (trop) de choses. Tout dépend de ce que tu vas en faire, mais je te conseille de te passer de librairie et écrire tes propres commandes, tu maîtriseras mieux ton shield.

Bonjour,

J'utilise les pins 2 et 3 et SIMR et SIMT du côté du GSM, j'ai donc laissé le GSM.cpp par défaut, puisque se sont les pins configuré par défaut.

Pourriez vous m'expliquer comment ne pas utiliser cette librairie et passer par les commandes directement ?

Le clignotement de mon GSM reste rapide.

Merci d'avance
Cordialement.

OK pour les pins,

Inverse les pour voir s'il n'y a pas simplement un problème de câblage.

Si la LED ne change pas de rythme, c'est que le shield ne s'enregistre pas sur le réseau. J'ai vu que cette carte ne semble pas compatible avec les réseaux GSM européens..
Il faudra peut-être flasher le soft !

Dans l'immédiat, il faut que tu arrives à dialoguer avec la bête...

Pour ma part, n'y connaissant rien à l'Arduino ni au SIM900 il y a encore un mois, je me suis basé sur les scripts et les explications trouvées ici

En écrivant soit même les commandes, on comprend mieux et on maîtrise tout.

Entre temps, mon Arduino m'envoie des SMS et met à jour une page Web avec des données récoltées depuis plusieurs capteurs.

Courage !

Oui j'ai aussi lu sur internet qu'il fallait flasher le soft car celui-ci n'était pas compatible avec les réseaux européens, cependant je ne sais pas comment m'y prendre, car cette opération m'a l'air assez difficile ?

Edit: après de nombreuses autres recherches, je ne pourrais pas être en mesure de flasher le module avec l'une de mes cartes Arduino car elles ne sont pas compatible avec l’outil de flash. (Yùn et Uno), de plus j'ai lu sur internet, que le problème pouvait aussi provenir de l'antenne ?

Google est ton ami !!

Mais tu n'en es pas encore là... Il faut que tu arrives à causer avec ton shield ...

Sur quelle Arduino tu travaille ?

Ensuite le 900A est réservé au marché asiatique, et est restreint en conséquence. Visiblement un flash du firmware permet de rattraper le coup. Mais la question n'est pas la encore puisque visiblement il n'y a pas de dialogue.

Si la réponse à ma question est "Arduino Mega" alors je sais où est le problème. Sinon va falloir reprendre plus basique

J'ai essayé le module avec l'arduino Yùn et l'Arduino Uno dernière version

Dans ce cas commence par utiliser ce programme :

#include <SoftwareSerial.h>

SoftwareSerial mySerial(10, 11); // RX, TX, à modifier suivant tes branchements

void setup()  
{

  Serial.begin(9600);

  Serial.println("Goodnight moon!");

  mySerial.begin(9600);

}

void loop() // run over and over
{
  if (mySerial.available())
    Serial.write(mySerial.read());
  if (Serial.available())
    mySerial.write(Serial.read());
}

Ensuite tu fais tes branchement, allume le GSM, ouvres ton moniteur série. Dans le menu déroulant en bas de celui ci tu sélectionnes "retour charriot et nouvelle ligne" (ou un truc du genre je fais de mémoire).

La normalement tu dialogue directement avec le module, donc essaye de lui envoyé AT, la réponse normale est OK. Si tu n'as pas de réponse alors on cherchera ailleurs.

Je viens d'essayer,

La console me sort un "ÿ" au moment où le module est mis sous tension, et j'obtiens bien le "OK" mais en inversant les PINS en les connectant à l'envers.

Résultat:

RDY

+CFUN: 1

+CPIN: READY
AT

OK

T'avais pas croisé RX et TX à la base ? C'était donc la le problème ... En connexion série c'est comme les humains : tu parles avec la bouche et écoute avec les oreilles, et vice versa.

Donc TX de l'un sur le RX de l'autre et vice versa. A moins que le concepteur du module soit tordu ...

Dans tous les cas tu sais où camper maintenant, en configurant correctement la lib GSM et en faisant les bons branchements ça devrait marcher ... En tout cas on aura avancer, restera le fait que c'est un SIM900A

Merci du coup je fais quoi ? j'ai testé plusieurs librairies mais ça n'a pas l'air de fonctionné, il ne trouve pas le réseau je suppose puisque la led clignote très rapidement.

Bin le problème c'est que tu as un SIM900A réservé au marché asiatique ...

Après faut chercher sur le net si un flashage du firmware permet de rattraper la chose ...

Bin le problème c'est que tu as un SIM900A réservé au marché asiatique ...

Après faut chercher sur le net si un flashage du firmware permet de rattraper la chose ...

J'ai regardé sur le net, mais je n'y comprend pas grand chose au flashage du firmware de la carte, apparemment il faut une carte de type Mega pour faire le flashage

Edit: j'ai trouvé ceci, (Composants et produits électroniques - DiyDomo) cependant je ne dispose pas du convertisseur FTDI Breakout USB to Serial

On progresse... C'est bien ce que je pensais, une inversion de fils.. :slight_smile:

Un lien avec des infos et vers d'autres liens .

teste les commandes AT+CGMR et AT+CPIN?