[Conseil] GSM et Aduino... Help !

Bonjour à tous.

Ma première question : je viens tous juste d'arriver sur le forum, dois-je me présenter quelque part ?

Et ma vraie question....

Je bricole Arduino depuis quelques temps et je souhaite envoyer des alerte par SMS. Le problème c'est que je n'y arrive pas. J'ai regardé ça et là et j'ai vu plein de tuto, plein de posts sur le forum, plein de choses mais rien n'y fait, je n'y arrive toujours pas.

En fait, je crois que le problème de base (pour moi) c'est de savoir par où commencer...
Je dispose de deux cartes (un ReadBoard équivalente à une Uno et une Yun) et d'un module Itead Studio GPRS Modile v1.0.
Pour raison financière, il s'agit d'un modèle non monté en shield, c'est celui-là : http://imall.iteadstudio.com/prototyping/im140318007.html
Il dispose d'un bornier 8 ports : Est / P / Tx / Rx / DT / DR / - / +
J'arrive sans soucis à l'alimenter (j'ai un carte SIM SFR sans code PIN). Je lui ai aussi installé une antenne (genre antenne de cart WiFi).
Je suis pas sûr mais j'ai l'impression qu'elle s'initialise bien en appuyant quelques secondes sur le bouton "power" de la carte GPRS. Les led "net" et "status" clignotent alors (et celle de "power" reste en rouge).

Déjà j'ai un doute sur les port à utiliser sur la carte Arduino : dois-je prendre les 0 et le 1 ou choisir d'autre pins ? J'ai aussi essayé les 7 et 8 préconisé par certains sketchs.

Ensuite, la librairie GSM.h fonctionne-t-elle ou faut-il que charge une librairie spéciale (genre http://www.amazon.com/lm/RTH4LBH6LXDXA/?_encoding=UTF8&tag=fb23-20&linkCode=ur2&camp=1789&creative=390957) ?

Quel est le branchement minimal juste pour vérifier que ça fonctionne ?

En gros, par où je commence ?

Merci beaucoup.

PS : si j'avais su j'aurais cassé ma tirelire pour une officielle......

Si le contenu de cette page : http://www.seeedstudio.com/wiki/GPRS_Shield_V1.0
correspond aussi à la mienne (on dirait le même modèle mais organisé pour un shield)
Le clignotement "rapide" de "NET" laisserait penser que j'accroche pas le réseau...?

Finalement j'arrive à accrocher le réseau mais rien à faire avec les commande AT + SoftTerminal ni la lin GSM :frowning:

bonjour,
http://forum.arduino.cc/index.php?topic=226985.0
ca doit pouvoir aider :wink:

Je viens de lire ton post et je comprends pas. C'est quoi "le 0.22" ? Et c'est la même carte que moi que tu as ? Si c'est les cas je veux bien un sketch et que tu me disque quel pin tu branche où sur le bornier de la carte :smiley:
J'utilise le dernier IDE bêta (à cause du Yun). Merci.

et bien charge l'ide 0.22 et lis le post :wink:

Disons que déjà tout lu (4 fois pour être précis). Ça me dit pas si tu as le même module GSM que moi, si c'est une version "shield" ou une version comme la mienne (avec un bornier). Du coup, je ne suis toujours pas certain des connexions entre la carte Adruino et le GMS... Question qui, évidement, se pose pas pour le cas de la version shield !

Questions subsidiaires :

  • Le 0.22 je le trouve où ?
  • Je fais une croix sur le Yun alors qui ne marche qu'avec la version Béta ?
  • Où puis-je faire un rapport de bug pour ça si, finalement, j'y arrive et que c'est un bug ?

Merci.

Bonsoir,
Combien de broches as tu branche et lesquelles ?
Quel code utilises tu ?
Ces infos sont necessaires pour t'aider.
cdlt

Un code de test sur le dernier IDE bêta (pour le Yun)

#include <SoftwareSerial.h>
 
SoftwareSerial mySerial(7, 8);
int boucle = 0;
 
// démarrage de la carte 
void powerUpGSM()
{
  pinMode(9, OUTPUT); 
  digitalWrite(9,LOW);
  delay(1000);
  digitalWrite(9,HIGH);
  delay(2000);
  digitalWrite(9,LOW);
  delay(3000);
}
 
void setup()
{
  mySerial.begin(19200);               // the GPRS baud rate   
  Serial.begin(19200);    // the GPRS baud rate 
  delay(500);
  powerUpGSM();
} 
 
void loop()
{
  // pour le faire une seule fois
  while(boucle<1) {  
    //Envoyer un SMS
    mySerial.print("AT+CMGF=1\r");    //Because we want to send the SMS in text mode
    delay(100);
    mySerial.println("AT + CMGS = \"+336000000000\"");//Mon numéro de tél
    delay(100);
    mySerial.println("Pin!");//Message de test
    delay(100);
    mySerial.println((char)26);//le "ctrl+z"
    delay(100);
    mySerial.println();
    // incrément
    boucle++;
  }
}

Usage des pins :

  • 7 -> RX de la carte
  • 8 -> TX de la carte (j'ai tenté en inversant aussi)
  • 9 -> PWR de la carte (ça fonctionne pour l'allumer avec ma fonction)
  • 5V -> + de la carte
  • GND -> - de la carte (elle s'allume bien)

de toute facon, shield identique ou pas, si c'est un sim900 ca revient au même :slight_smile:
déjà passe en 9600
après passe les delay en 1000
et mets un loop à 3
lorsqu'il envoie un sms, la led doit scinteller

Bonsoir,

Après le PowerUp, un delay de 10 secondes avant la loop, ne serait pas de trop pour accrocher le réseau.
Vérifie avec la led "Net", l'état de la connexion, en envoyant des print " ", sur le moniteur, à différentes étapes du programme.

Je galére, j'ai teste vos bidouille mais ça donne rien. En plus, là, elle ne veut plus rester active. La "net" clignote en mode "recherche de réseau" (rapide) puis "net" et "status" s'éteignent :frowning:

#include <SoftwareSerial.h>
#define rxPin 7
#define txPin 8
#define pwrPin 9
SoftwareSerial mySerial(rxPin, txPin);


int boucle = 0;
 
void setup()
{
  pinMode(pwrPin,OUTPUT); 
  pinMode(rxPin, INPUT);
  pinMode(txPin, OUTPUT);
  powerUpGSM();  
  mySerial.begin(9600);               // the GPRS baud rate   
  delay(10000);

} 
 
// démarrage de la carte 
void powerUpGSM()
{
  digitalWrite(pwrPin,LOW);
  delay(1000);
  digitalWrite(pwrPin,HIGH);
  delay(3000);
  digitalWrite(pwrPin,LOW);
  delay(1000);
}
 
void loop()
{
  // pour le faire une seule fois
  boucle = 0;
  while(boucle<3) {  
    //Envoyer un SMS
    mySerial.print("AT+CMGF=1\r");    //Because we want to send the SMS in text mode
    delay(1000);
    mySerial.println("AT + CMGS = \"+33671103511\"");//Mon numéro de tél
    delay(1000);
    mySerial.println("Ping!");//Message de test
    delay(1000);
    mySerial.println((char)26);//le "ctrl+z"
    delay(1000);
    mySerial.println();
    // incrément
    boucle++;
  }
}

Il faut 500mA au module, par quoi est-il alimenté?

ca arrive suivant l'alim derrière que le shield s'éteigne tout seul.
un conseil, cherche le pdf des commande AT.
et envoie des commandes pour voir si tu es connecté au réseau, le service sms, etc...
surtout utilise ce que j'ai mentionné
http://forum.arduino.cc/index.php?topic=226985.msg1641323#msg1641323
tu vas voir, ca va glisser tout seul après

Va farfouillez là :
http://mchobby.be/wiki/index.php?title=GeekOnFire_GSM/GPRS_Shield_Mémo_AT
j'ai trouvé ce que j'avais besoins pour faire démarrer mon GSM/GPRS avec une carte MEGA
Mon problème est de trouver un opérateur qui me fournisse une SIM DATA pas trop cher
J'arrive a faire ce que je veux avec SoftwareSerial mais pas avec l'UART

Pot pourri de Commande AT qui me serve le plus souvant

Nombre de message et place du message
AT+CPMS="SM","SM","SM"
AT+CPMS="SM"

Lister les messages
AT+CMGD=?

************* IMPORTANT sinon je n’ai pas mon +CMTI **********
Turn off echo ("ATE0\r\n")
turn on new msg indication ("AT+CNMI=2,1,0,0,0\r\n")

Connaitre les Services offert par le Modem -> GSM; FCLASS (Fax); +DS (Data Services)
AT+GCAP

Connaître la vitesse
AT+IPR

Reset all settings to manufacturer defaults
AT&F

ajuster la date et l'heure
AT+CCLK="01/03/14,16:04:52+08"

connaitre l'heure
AT+CCLK?

carte sim
AT+CPIN=0000

lire les buffer
AT+CMGL="ALL"

vider buffer
AT+CMGD= numero mess

Henri

Merci pour vos conseils mais là je crois que c'est la carte GSM elle-même qui déconne :frowning:

Bon point pour la puissance électrique : la carte été branchée au port USB de mon Mac qui de tête envoyait pas mal. En fait, il semblerait qu'il soit plafonnée à 900mA. Du coup je l'ai branchée sur un chargeur USB en 2.5A mais ça ne donne rien là non plus toujours le même symptôme...

-> cette carte est équipée d'un bouton physique POWER, branchée directement à l'énergie, elle refuse de s'initialiser : elle est bien alimenté mais quand j'appuie sur le bouton elle n'accroche pas la réseau : dés qu'elle est connecte à la source d'énergie le voyant power s'allumer. Ensuite quand j'appuie 2s sur le bouton power, "status" s'allume et "net" clignote rapidement (=recherche de réseau) puis ce deux LED s'éteignent et il ne reste que celle de "power".

Et le 0.22, je peux le télécharger où ? J'ai pas trouvé les anciennes version sur Arduino.cc....

Bonsoir,

Nicephore17:
Et le 0.22, je peux le télécharger où ? J'ai pas trouvé les anciennes version sur Arduino.cc....

Merci, j'ai récupéré le 0.22 mais je pense que ça ne résoudra pas le problème de la carte qui n'accroche pas le réseau.
Question bête qui me vient à l'esprit : j'utilise une antenne de carte WiFi, c'est bon ou c'est une aberration ?

Nicephore17:
Merci, j'ai récupéré le 0.22 mais je pense que ça ne résoudra pas le problème de la carte qui n'accroche pas le réseau.
Question bête qui me vient à l'esprit : j'utilise une antenne de carte WiFi, c'est bon ou c'est une aberration ?

as tu essayé dans un téléphone la sim?
juste pour voir si ca accrochait le réseau.
question bête aussi, la sim est bien activée? pas relus tout le topic.

Nicephore17:
Question bête qui me vient à l'esprit : j'utilise une antenne de carte WiFi, c'est bon ou c'est une aberration ?

le wifi (basique) utilise la bande des 2.4 GHz
les GSM/GGPRS (basique aussi) des bandes plus basses
une antenne "taillée" pour une frequence donnée n'est pas directement transposable à une autre.
(trop long là à expliciter 8) )
ça rentre dans un bilan de liaison :
avec du/beaucoup "bol" ça peut passer , "si pas de bol" ça peut etre pire que pas d'antenne du tout
c'est quoi comme connecteur antenne sur le shield GSM ?