Envoi de sms SIM900

Bonjour, récemment j’ai trouvé un programme assez simple sur le net permettant d’envoyer des sms. Malheureusement je ne parviens pas à le faire fonctionner, je ne comprend pas pourquoi. Le programme est le suivant:

#include <SoftwareSerial.h>
SoftwareSerial SIM900(7, 8); // RX,TX (coté UNO)

void setup(){
  SIM900.begin(2400);//moniteur serie du SIM900
  Serial.begin(9600);//moniteur serie de l'Arduino
  
  //Pour envoyer un sms sous forme de texte
  Serial.println("envoi de la commande : AT+CMBF=1");
  SIM900.print("AT+CMGF=l\r");
  GetSIM900();
  //insertion du code PIN
  Serial.println("envoi de la commande : AT+CPIN=\"2044\"");
  SIM900.print("AT+CPIN=\"2044\"\r");
  GetSIM900();
  //get center number server
  Serial.println("envoi de la commande: AT+CSCA=?");
  SIM900.print("AT+CSCA=?\r");
  GetSIM900();
  //SET center number server needed for free provider
  Serial.println("envoi de la commande: AT+CSCA=\"+33695000695\"");
  SIM900.print("AT+CSCA=\"+33695000695\"\r");
  GetSIM900();
  //Numero de telephone du destinataire
  Serial.println("envoi de la commande : AT+CMGS=\"+32471469547\"");
  SIM900.print("AT+CMGS=\"+32471469547\"\r");
  GetSIM900();
  //ecriture du sms
  Serial.println();
  Serial.println("envoi sms");
  SIM900.print( "AbCd1234.,?!");//texte à envoyer
  SIM900.println(char(26));//fin du message:CTRL-Z
  GetSIM900();
  Serial.println("c'est fait.");
}
void loop(){
}
  void GetSIM900(void){
    delay(2000);
    while(SIM900.available()){
      Serial.print((char)SIM900.read());}
  }

Which Arduinio?
Which shield?
Have you managed to communicate with it using SerialRelay?

it's a arduino Uno and the shield a SiM900 For arduino Uno

I managed to see what I write on the serial port. but I get nothing on gsm

I am not using the functions about the center number correctly, are they right?

Have you tried using SerialRelay to make sure it's connected correctly? (See my link below if not)

I would also remove the PIN number until you get it working, it just adds a layer of complication.

I have never had to use a centre number to send an SMS.

Unfortunately I'm not home again until Sunday so I can't post an example.

Petrus6248:
it's a arduino Uno and the shield a SiM900 For arduino Uno

bonjour,
ca nous arrange pas beaucoup cette histoire.
donc quel shield? lien
après quel abonnement de la sim?
il se passe quoi?
erreur de compile, sms qui part pas?

en plus 2400 pour le shield, c'est pas le top, 9600 c'est mieux.
dans le SoftwareSerial.cpp de mémoire, max à 64 ou 128?

Pour le shield, le modéle est le suivant: http://imall.iteadstudio.com/im120417009.html
Pour l'abonnement de la carte SIM, c'est simplement une carte prépayée sur laquelle j'ai chargé 15€ avec mon propre téléphone
Quand le lance le port série, il écrit bien les différentes commandes. Ce qui je suppose veut dire que le programme est correctement compilé dans l'uno. Mais par contre l'envoi de sms ne se fait pas, j'ai vérifié en regardant le crédit restant sur la carte qui ne descend pas. Sinon est ce que le programme tel quel vous semble correct, je pense ne rien avoir oublié. j'ai même déjà essayer de supprimer le code PIN afin de retirer une fonction. Je pense également que les deux fonctions concernants les "center number" ne servent à rien. Que pensez vous de tous ça? je vous remercie pour votre intérêt en tout cas.

Bien à vous!

1- la led réseau clignote comment?
2- GetSIM900(); ca fait quoi? rien
tu donne un lien, si tu vas en bas de la page, il y a pas un dl pour un lib avec des exemples? :grin:

  1. Aucune LED ne fonctionne à part celle de l'alimentation.
  2. Pour moi c'est ce qui permet d'eefectuer les envoi au module SIM900
  3. j'ai déjà jeter un oeil dans cette lib mais rien ne correspond à se que je cherche apparement.
    Je me suis servi d'un exercice sur ce site qui à l'air plutot clair et complet: http://pigo.free.fr/projet-mini-projet-arduino-module-gprs-sim900-envoi-sms.html

Petrus6248:

  1. Aucune LED ne fonctionne à part celle de l'alimentation.
  2. Pour moi c'est ce qui permet d'eefectuer les envoi au module SIM900
  3. j'ai déjà jeter un oeil dans cette lib mais rien ne correspond à se que je cherche apparement.
    Je me suis servi d'un exercice sur ce site qui à l'air plutot clair et complet: http://pigo.free.fr/projet-mini-projet-arduino-module-gprs-sim900-envoi-sms.html

c'est bien tu appelle une fonction GetSIM900() mais tu la trouve ou dans le code?
après tu sais comment si tu es connecté au réseau, je connais pas ce shield mais en général il y a une led pour l'état du réseau.

Petrus6248:

  1. Aucune LED ne fonctionne à part celle de l'alimentation.

Il existe des variantes de ce shield, mais ils fonctionnent plus ou moins pareils.

Avant de chercher à envoyer des SMS, teste le bon fonctionnement du modem, l'accès à la carte SIM et au réseau.
Avec File / Examples / GSM / Tools / TestModem dans l'IDE arduino (librairie GSM.h).

Ce code doit normalement afficher le code IMEI de la puce du shield.
Puis afficher "Modem is fonctioning properly" .
Est ce le cas ?

Il y a 3 LEDS témoin.

  • Led rouge (P=power) , allumé si le shield est sous tension.
    Appuyer en continu pendant 2 secondes sur l'interrupteur du shield marqué "SIM900 power".
  • Les deux autres LEDs du shield (Status et Network) clignotent brièvement, puis S s'allume en continu en bleu (S = status carte GSM OK).
  • La LED réseau (N = Network) ne s'allume pas (jaune) sans carte SIM dans le shield.

Bonjour, voila j'ai effectué les 2 opérations que tu m'as proposé et effectivement il y un problème.
Au niveau de l'allumage est LED aucun problème si ce n'est que la LED "NET" ne s'allume pas mais clignotte.
Pour le test ça pause problème il ne parvient pas à trouver le modem et L'IMEI. c'est donc pour cela que mon programme ne va pas. Je vais chercher une solution par moi même à moins que tu connaisses la causes de ceci.

Merci beaucoup pour votre aide
Alexandre

Petrus6248:
Bonjour, voila j'ai effectué les 2 opérations que tu m'as proposé et effectivement il y un problème.
Au niveau de l'allumage est LED aucun problème si ce n'est que la LED "NET" ne s'allume pas mais clignotte.
Pour le test ça pause problème il ne parvient pas à trouver le modem et L'IMEI. c'est donc pour cela que mon programme ne va pas. Je vais chercher une solution par moi même à moins que tu connaisses la causes de ceci.

Merci beaucoup pour votre aide
Alexandre

la led clignote comment? rapide ou toutes les X secondes?
il doit y avoir des ou un cavalier pour sélectionner le rx/tx afin de changer les pins.
essaye de faire une photo de ton shield pour montrer comment il est fichu.
un truc comme ca, la sim est bien activée?
tu as essayé sur un téléphone pour voir?
appel, envoi sms, réception sms

La LED clignotte environs chaque seconde
J'ai bien repéré les cavaliers dont tu parles, je n'y ai pas touché.
Voila plusieurs photos détaillées de l'ensemble.

La carte SIM est OK j'ai même supprimé le code PIN pour avoir plus facile, je l'ai testée sur mon gsm et elle fonctionne correctement

toutes les secondes, donc non inscrit sur le réseau gsm.
les photos sont pas assez bonnes pour voir les cavalier et surtout ce qui est écrit.
à mon avis le rx/tx sont sur 0/1 donc si tu lance la console, ca va bugger.

EN fait quand le programme est compiler dans l'arduino la LED clignotte plus lentement. Autre remarque, quand je compile le programme avec le shield gsm sur l'arduino, j'ai un message d'erreur, je suis obligé de retirer le shield,téléverser et ensuite seulement remettre le shield. Si tu veux des photos plus détaillées, consulte celle de cette page, les cavalier sont mis exactement de la même manière et il s'agit du même module.

http://imall.iteadstudio.com/im120417009.html

Par défaut les 2 jumpers de configuration de la communication sont montés en 0 et 1.
Essayes en positions 2 et 3 pour voir. (ils doivent être décalés par rapport à la ligne centrale de pins, un pour rx et l'autre pour tx).

Petrus6248:
EN fait quand le programme est compiler dans l'arduino la LED clignotte plus lentement. Autre remarque, quand je compile le programme avec le shield gsm sur l'arduino, j'ai un message d'erreur, je suis obligé de retirer le shield,téléverser et ensuite seulement remettre le shield. Si tu veux des photos plus détaillées, consulte celle de cette page, les cavalier sont mis exactement de la même manière et il s'agit du même module.

http://imall.iteadstudio.com/im120417009.html

donc c'est bien ce que je disais au dessus, il est par défaut sur 0-1 en rxt/tx :wink:
donc si tu lance la console série, ca va bugger automatiquement

Voila j'ai testé en décalant les cavaliers sans amélioration, j'ai d'ailleurs avec moi un
module équipé de ce shield qui fonctionne correctement avec les connexions de bases donc je ne pense pas que ce soit la solution
Je rage de ne pas trouver car çela fait partie de mon TFE et je dois rapidement trouver la solution...