Problème avec une carte SIM900

Bonjour à tous,

Je viens vous déranger avec une question concernant mon problème avec mon dernier achat : une carte GSM Sim900 (non shield) pour brancher sur mon arduino mega (ce modèle : SainSmart Sim900)

Alors, niveau documentation, j'ai bien évidemment été voir sur le fabriquant : on peut trouver les liens ici mais je n'ai malheureusement toujours pas réussi à le faire fonctionner correctement (je trouve cette doc particulièrement pourrie... suis-je le seul ?)

Le branchement à l'air ok, je vois le module s'allumer (j'ai même réussi a voir la lumière du "Ring" brillait lorsque j'ai appelé le numéro de la carte SIM présente à l’intérieur ce qui m'a permis écarterla piste du problème réseau éventuel).

Bref, mon problème : impossible de faire le lien avec l'Arduino et les exemples pour lire et envoyer des sms. Le programme se lance mais reste bloqué lors de l'initialisation du GSM... Je ne sais plus du tout quoi faire pour résoudre ce problème.

Si quelqu'un à réussi ou à des exemples à me donner de branchement et de code, je suis vraiment preneur.

Niveau branchement j'ai essayé la plupart des branchements que j'ai vu sur internet, mais sans résultat probant..

Merci d'avance,

Cordialement

Puissance de l’alimentation?

Bonjour,

J'ai essayé 2 branchements d'alim :

  • Alimenté par le 5V de l'Arduino
  • Alimenté par un chargeur 10 W (5V, 2A) directement

Même constatation pour les deux...

Il faut absolument votre 5V 2A

Quel code avez vous essayé? Sur un mega connecter le module sur Serial2 par exemple et affichez sur Serial ce que vous recevez sur Serial2

A noter que c’est dommage d’acheter unSIM900 aujourd’hui vu qu’ils sont au même prix (voire plus chers - cf ce module à 14€ par exemple) que les SIM800 qui sont une évolution (génération plus récente avec Bluetooth et FM intégrés ) des 900 (même si la numérotation n’est pas intuitive et laisserait à penser que 900 c’est bcp mieux que 800) sauf besoin spécial car le 900 a une plage de tension plus large par exemple

Rebonjour,

J’ai essayé avec les exempls Arduino GSM de base, avec la librairie GPRS_Sim900-Master et avec la librairie GSM_Shield-Master.

Pour confirmation, sur quel type de pin dois-je brancher le TX et le RX du module sur le mega ? Car j’ai vraiment l’impression que c’est la liaison serial qu’il n’arrive pas à ouvrir avec le module.

Merci pour les infos du sim800 et effectivement, je n’avais pas plus investiguer avant d’acheter (regrettable erreur), j’étais persuadé que le Sim800 était plus ancien…

Essayez avec cela: sur une mega connecter le module sur Serial2 par exemple et affichez sur Serial ce que vous recevez sur Serial2

il faut pour cela connecter la pin Tx de votre module GSM sur le Rx2 de Serial 2, c’est à dire la pin 17 du MEGA, et le Rx du GSM sur le Tx2 du Mega (pin 16)

par exemple avec le code ci dessous

#define gsm Serial2

const byte ctrlZ = 0x1A;

void setup() {
  Serial.begin(115200);
  gsm.begin(9600);// suivant votre config, essayez 9600 19200 38400 57600 74880 115200

}

void loop() {
  int r;
  // on lit une commande AT que l'utilisateur tape sur la console série et on l'envoie au gsm
  while (Serial.available()) {
    r = Serial.read();
    if ((r != -1) & (r != '#')) gsm.write((char) r);
    if (r == '#') {
      gsm.write(ctrlZ);
    }
  }

  while (gsm.available()) {
    r = gsm.read();
    if (r != -1) {
      if ((r >= ' ') && (r <= 127)) Serial.write((char) r);
      if (r == '\n') Serial.println();
    }
  }
}

tout ce que vous tapez dans la console (réglée à 115200 bauds, envoyez CRLF ou juste CR suivant votre besoin) est envoyé au GSM et tout ce que vous dit le GSM vous est retourné sur la console.

Modifiez la vitesse en bauds de votre module en changeant la ligne

  gsm.begin(9600);// suivant votre config, essayez 9600 19200 38400 57600 74880 115200

vous chargez le code et tapez AT dans la console, si vous voyez OK comme réponse c’est que ça fonctionne.

N’oubliez bien sûr pas de connecter le GND de votre Arduino au GND de la carte aussi, pas juste les Pins Tx et Rx. Sur le module GSM le 5V et le GND aussi doivent être sur votre alimentation 5V 2A

module.png

Merci infiniment, j'essaye tout ça et je reviens vous dire le résultat

vous avez des cavaliers sur la carte (je n'ai pas celle là) - avez vous une documentation sur leur usage?

Effectivement il y a 3 cavaliers :

[1][3][5]
[2][4][6]

Le cavalier 1 prend 1 et 2 et indique R_N(1) et R900(2)
Le cavalier 2 prend 3 et 4 et indique T_N(3) et T900(4)
Le cavalier 3 prend 5 et 6 et indique GND(5) et GND(6)

Pas sûr que ce soit très clair :slight_smile:

en allant sur le site de SainSart il y a l'image suivante

si vous regardez la partie "interface select" ça montre que ça connecte les pins comme il faut donc à priori pas besoin de toucher cela

Bon, je viens de tout brancher à l'identique du schéma, téléverser le code que vous m'avez posté et lorsque je tape "AT", je reçois "AT" et non "OK".

Par contre je remarque que la ligne su sim900 est joignable depuis un téléphone, la LED "Ring" s'allume lors de l'appel.

Ca progresse :stuck_out_tongue:

si vous recevez AT c'est que vous êtes juste en mode echo... mais ce n'est pas bon car le module ne répond pas...

la carte SIM dans le module a-t-elle un code pin?

essayez avec une vitesse à 115200 pour le GSM

assurez vous de tapez AT en majuscule dans la console (mise aussi à 115200, envoyant CRLF)

essayez avec ATI et AT+GMR

Alors : la carte SIM n'a plus de code pin, je l'ai configuré dans un vrai téléphone pour virer le code pendant les tests.

J'essaye le reste

N’oubliez pas de couper le courant de la carte puis le remettre avant de téléverser une nouvelle vitesse en BAUD pour que la carte GSM fasse un reset complet. avant de taper des commandes attendez vue voir les LEDs clignoter et se stabiliser sur la carte (acquisition du réseau).

si vous appelez la carte, vous devriez voir marqué RING ou un truc comme cela dans la console (et le LED ring devrait s’allumer)

La LED "Ring" s'allume bien mais même en faisant toutes ces manips, aucune info n’apparaît dans la console et rien ne répond. J'ai vraiment l'impression que la liaison série ne se fait pas avec l'arduino

essayez en inversant Rx et Tx

Toujours pareil, je pense faire un retour du produit parce qu'en zoomant de plus près, on peut déjà voir que les soudures ne sont pas d'une très grande qualité...

Tant qu'à repartir de zéro, j'en profite pour vous demander conseil sur la future carte remplacante.

Mon reel besoin : pouvoir envoyer et recevoir des sms, ainsi que des appels téléphoniques. Je n'ai pas besoin d'une eventuelle transmission internet ou autre, juste des "basiques" d'un téléphone. Concernant l'alimentation, il me faudrait un module peu gourmand, capable d'être alimenté par l'arduino lui même si c'est possible.

D'après ce que vous me disiez, le modèle SIM800L serait plus interressant ?

Merci d'avance pour vos conseils.

Cordialement

ça fonctionnerait avec le 800 oui, trouvez en un qui a déjà les entrées sorties pour l’audio si vous voulez faire téléphone

Prévoir quand même l’alim 2A

Have you solved your problem? I have the same sim900 sainsmart and im stuck too. Thanks

Je commencerais par tester le module SIM900 sans passer par l'Arduino.

Il faut une interface série (port série de l'ordi ou interface USB-TTL) et un logiciel terminal pour tester si le module répond bien à toutes les commandes.

J'utilise le logiciel puTTY qui est rustique mais qui a l'avantage de ne pas "transformer" ce qui est tapé au clavier.

Commencer par la vitesse 115200 Bauds qui est souvent la vitesse par défaut de la liaison série.