Pages: [1] 2   Go Down
Author Topic: [résolu]carte gsm+ test  (Read 1166 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Jr. Member
**
Karma: 0
Posts: 81
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

bonjour ,


voila cela fait 2 jour que jai une carte gsm compatible arduino avec antenne (http://www.cooking-hacks.com/index.php/documentation/tutorials/arduino-3g-gprs-gsm-gps?utm_source=banner_3g_shield&utm_medium=banner)

et je voudrais savoir comment tester si je recois bien ou envoie des données.

jai deja essayé la suite de commande:

-AT+CPIN=3470 pour dvérouiller ma pin

-AT+CREG=2

-AT+CSQ    (j obtiens 16.99)

-AT+CGDCONT=1,"IP","internet" ( c'est une sim tango (luxembourg) )

-AT+CHTTPACT="www.google.lu",80

j ai la réponse request

apres je tente un GET http://www.google.lu/index.html HTTP/1.1 mais rien
y aurait t il une erreur ou alors comment tester autrement ?


merci d avance
















« Last Edit: May 03, 2012, 02:46:44 am by djo54150 » Logged

Offline Offline
Jr. Member
**
Karma: 0
Posts: 81
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

jai voulu tester de m envoyer un sms

jai trouvé un code tout fait
Code:
int led = 13;
int onModulePin = 2;        // the pin to switch on the module (without press on button)

int timesToSend = 1;        // Numbers of SMS to send
int count = 0;

void switchModule(){
  digitalWrite(onModulePin,HIGH);
  delay(2000);
  digitalWrite(onModulePin,LOW);
}

void setup(){

  pinMode(led, OUTPUT);
  pinMode(onModulePin, OUTPUT);

  Serial.begin(19200);               // the GPRS baud rate
   
  switchModule();                    // swith the module ON
 
  for (int i=0;i<2;i++){
    delay(5000);                       
  }
 
   Serial.println("AT+CMGF=1");         // set the SMS mode to text
}

void loop(){
 
  while (count < timesToSend){
    delay(1500);
    Serial.print("AT+CMGS=");               // send the SMS the number
    Serial.print(34,BYTE);                  // send the " char
    Serial.print("*********");              // send the number change ********* by the actual number
    Serial.println(34,BYTE);                // send the " char
    delay(1500);
    Serial.print("Hola caracola...");     // the SMS body
    delay(500);
    Serial.print(0x1A,BYTE);                // end of message command 1A (hex)
       
    delay(5000);       

    count++;   
  }

  if (count == timesToSend){
    Serial.println("AT*PSCPOF");             // switch the module off
    count++;
  }
}



mais il y a une erreur avec le BYTE

pouvez vous m aider?
Logged

83 - var
Offline Offline
God Member
*****
Karma: 4
Posts: 768
ARDUINO Powa !
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

remplace les print par des write dans ton loop Serial.print => Serial.write..


pas sur mais a tenter..

Skizo!
Logged

Un tien vaux mieux que deux tu l'auras !

Offline Offline
Jr. Member
**
Karma: 0
Posts: 81
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

oki je tente je te dis si ca marche
Logged

Offline Offline
Jr. Member
**
Karma: 0
Posts: 81
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

meme c est pas ca le probleme quand je compile j ai toujours the "byte" keyword is no longer supported
Logged

83 - var
Offline Offline
God Member
*****
Karma: 4
Posts: 768
ARDUINO Powa !
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Code:
int led = 13;
int onModulePin = 2;        // the pin to switch on the module (without press on button)

int timesToSend = 1;        // Numbers of SMS to send
int count = 0;

void switchModule(){
  digitalWrite(onModulePin,HIGH);
  delay(2000);
  digitalWrite(onModulePin,LOW);
}


void setup(){

  pinMode(led, OUTPUT);
  pinMode(onModulePin, OUTPUT);

  Serial.begin(19200);               // the GPRS baud rate
   
  switchModule();                    // swith the module ON
 
  for (int i=0;i<2;i++){
    delay(5000);                       
  }
 
   Serial.println("AT+CMGF=1");         // set the SMS mode to text
}

void loop(){
 
  while (count < timesToSend){
    delay(1500);
    Serial.print("AT+CMGS=");               // send the SMS the number
    Serial.write(0x34);  //ou Serial.print('"');                 // send the " char
    Serial.print("*********");              // send the number change ********* by the actual number
    Serial.write(0x34); //ou Serial.print('"');               // send the " char
    delay(1500);
    Serial.print("Hola caracola...");     // the SMS body
    delay(500);
    Serial.write(0x1A);                // end of message command 1A (hex)
       
    delay(5000);       

    count++;   
  }

  if (count == timesToSend){
    Serial.println("AT*PSCPOF");             // switch the module off
    count++;
  }
}




voila monsieur ^^

Skizo !
« Last Edit: May 02, 2012, 07:57:12 am by skizoh » Logged

Un tien vaux mieux que deux tu l'auras !

Made in Belgium
Offline Offline
God Member
*****
Karma: 0
Posts: 756
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Code:
Serial.print(0x1A,BYTE);

print et println sont des méthode pour envoyer des caractères ou chaine de caractères, lorsque tu fais BYTE (Cette constante existe ? version 1.0 ?) tu demande juste de donner la correspondance ascii de cette valeur et non cette valeur même.

Si tu veux envoyer ta valeur decimal ou hexa d'un octet/byte (c'est pareil mais pas la même base  smiley-sweat) tu dois faire write(taValeur) comme spécifié par skizo.

Logged


Offline Offline
Jr. Member
**
Karma: 0
Posts: 81
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

merci de ton aide mais avec les prints j obtient (dans le serial monitor)

AT+CMGF=1
AT+CMGS=52(0033)*********52bonjour a tousAT*PSCPOF (sans retour )

et avec les write j obtiens

AT+CMGF=1
AT+CMGS=4(0033)*********4bonjour a tousAT*PSCPOF (pareil sans retour)




Logged

Offline Offline
Jr. Member
**
Karma: 0
Posts: 81
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

je suis sous l ide arduino 1.0 et merci pour ta réponse osaka je comprend mieux
« Last Edit: May 02, 2012, 08:11:19 am by djo54150 » Logged

Offline Offline
Jr. Member
**
Karma: 0
Posts: 81
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

c est les retours qu il veut pas faire :/

toujours tout sur la meme ligne
Logged

Made in Belgium
Offline Offline
God Member
*****
Karma: 0
Posts: 756
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

merci de ton aide mais avec les prints j obtient (dans le serial monitor)

Attention si ton shield utilise le port serie de ton arduino pin0 (rx) et pin1 (tx), elle sont également utilisé (via l'usb) pour ta programmation et ton serial monitor.
Donc ne pas faire les deux en même temps ...

AT+CMGF=1
AT+CMGS=52(0033)*********52bonjour a tousAT*PSCPOF (sans retour )

et avec les write j obtiens

AT+CMGF=1
AT+CMGS=4(0033)*********4bonjour a tousAT*PSCPOF (pareil sans retour)


Ton shield à besoin de se retour ?
Pour afficher la commande sur ton monitor ok c'est plus propre, mais ton shield il n'en a pas besoin, juste la valeur hexa ou dec qui correspond à une commande ' " ' ?
Logged


Offline Offline
Jr. Member
**
Karma: 0
Posts: 81
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

quand je le programme apres je dois bouger un cavalier pour l utiliser donc je pense qu il n y a pas de conflit pour les transmissions smiley-wink

si c est juste une question d affichage car mon shield a juste besoin de la valeur  mais je ne sais pas si tu as vu mais il y a un 4 qui traine alors qu il devrait pas

merci a vous de vous penchez sur mon cas
Logged

83 - var
Offline Offline
God Member
*****
Karma: 4
Posts: 768
ARDUINO Powa !
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

autant pour moi mets ça =)

Serial.write("\"");

voila c'est bon je l'ai testé !

Skizo !
Logged

Un tien vaux mieux que deux tu l'auras !

Offline Offline
Jr. Member
**
Karma: 0
Posts: 81
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

bon petit récapitulatif ...

Code:
int led = 13;
int onModulePin = 2;        // the pin to switch on the module (without press on button)

int timesToSend = 1;        // Numbers of SMS to send
int count = 0;

void switchModule(){
  digitalWrite(onModulePin,HIGH);
  delay(2000);
  digitalWrite(onModulePin,LOW);
}


void setup(){

  pinMode(led, OUTPUT);
  pinMode(onModulePin, OUTPUT);

  Serial.begin(19200);               // the GPRS baud rate
   
  switchModule();                    // swith the module ON
 
  for (int i=0;i<2;i++){
    delay(5000);                       
  }
   Serial.println("AT+CPIN=3470");
   delay(8000);
   Serial.println("AT+CMGF=1");         // set the SMS mode to text
}

void loop(){
 
  while (count < timesToSend){
    delay(1500);
    Serial.print("AT+CMGS=");               // send the SMS the number
    Serial.write("\"");   //ou Serial.print('"');                 // send the " char
    Serial.print("0033626955476");              // send the number change ********* by the actual number
    Serial.write("\""); //ou Serial.print('"');               // send the " char
    delay(1500);
    Serial.print("bonjour a tous ");     // the SMS body
    delay(500);
    Serial.write(0x1A);                // end of message command 1A (hex)
       
    delay(5000);       

    count++;   
  }

  if (count == timesToSend){
    Serial.println("AT*PSCPOF");             // switch the module off
    count++;
  }
}


normalement je devrais recevoir mon petit sms mais toujours pas smiley-sad es-ce un pb de la carte luxo sur mon mobile francais ?)
Logged

83 - var
Offline Offline
God Member
*****
Karma: 4
Posts: 768
ARDUINO Powa !
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Je ne pourrais pas plus t'aider je n'ai jamais utilisé ce module, tu va bien trouver un expert dans le coin t’inquiète, bon courage =)

Skizo !
Logged

Un tien vaux mieux que deux tu l'auras !

Pages: [1] 2   Go Up
Jump to: