Go Down

Topic: Arduino Uno + Shield GPRS + Carte SIM Free = ??? (Read 7711 times) previous topic - next topic

Pachole

Feb 12, 2013, 08:52 pm Last Edit: Feb 12, 2013, 09:06 pm by Pachole Reason: 1
Bonsoir à tous,
Je suis en train de coder un petit programme pour commander à distance des radiateurs via le shield GPRS.
Mon programme marche à merveille sauf que... quand je mets ma carte sim Free (qui restera dedans à terme) plus rien de fonctionne.
Tout marche avec ma carte Orange pourtant.
Savez vous si les cartes sim de chez Free sont verrouillées ou si il faut passer par d'autres commande (?)

Bien à vous.

Edit: la carte qui "ne fonctionne pas" est un carte pour un forfait à 2€
J'ai testé avec une carte Free à 20€, tout fonctionne...
Blocage de Free ? :smiley-roll-blue:

barbudor

Quel forfait Free ? Le 2 € ou le 19 € ?

Pour le 2€ il faut activer l'option Internet à 0.99€

Ne pas oublier aussi de configurer l'APN
Barbuduino: Arduino sur Breadboard & VinciDuino: Clone Leonardo // WR703: Mini-routeur hacké // LauchPad MSP430 et Stellaris // Panda II Arduino-like .NetMF sous VisualC#
RTFC: Read That F.....g Code / RTFD: Read That F.....g Doc / RTFDS: Read That F.....g DataSheet / RTFS: Read That F.....g Schematic / Wot da ya wanna D.I.Y. today ?

DrWaX

J'ai le même système avec une SIM Free à 2 euros, pas de soucis.

Le code PIN peut-être ?

Pachole

Ok je vais essayer ça !
Qu'est ce que tu appelles APN ?

DrWaX

Pour être précis, je n'utilise que les SMS, tu cherches à faire fonctionner la data ?

Pachole

Non pas de data, que du texte du genre "on" "off" et retour de commande par sms.
Ne marche pas avec le 2€
Marche avec le 19.99 €
Marche avec Orange (Pro surement)

Je change le code PIN à chaque changement de carte  :smiley-mr-green:

barbudor


Qu'est ce que tu appelles APN ?


Ca commence mal si tu ne sais pas ce qu'est l'APN :)

C'est le nom du point d'accès au réseau.
Normalement le shield gprs ne sais pas fonctionner sans cela.
Il y a une commande pour configurer le shield.
Barbuduino: Arduino sur Breadboard & VinciDuino: Clone Leonardo // WR703: Mini-routeur hacké // LauchPad MSP430 et Stellaris // Panda II Arduino-like .NetMF sous VisualC#
RTFC: Read That F.....g Code / RTFD: Read That F.....g Doc / RTFDS: Read That F.....g DataSheet / RTFS: Read That F.....g Schematic / Wot da ya wanna D.I.Y. today ?

barbudor

SMS ?
Ok, pas besoin d'APN alors, ni d'option data
Barbuduino: Arduino sur Breadboard & VinciDuino: Clone Leonardo // WR703: Mini-routeur hacké // LauchPad MSP430 et Stellaris // Panda II Arduino-like .NetMF sous VisualC#
RTFC: Read That F.....g Code / RTFD: Read That F.....g Doc / RTFDS: Read That F.....g DataSheet / RTFS: Read That F.....g Schematic / Wot da ya wanna D.I.Y. today ?

Pachole


SMS ?
Ok, pas besoin d'APN alors, ni d'option data

Je me disais aussi, ça fonctionne et j'ai rien touché à tout ça... :)

DrWaX

Je me permets de poster le code qui fonctionne pour ma part :

Code: [Select]
#include <GoGprs.h>
#include <SoftwareSerial.h>
#include <RCSwitch.h>

#define PIN_CODE "0000"

SoftwareSerial mySerial(PIN_GPRS_RX, PIN_GPRS_TX);
GoGprs gsm = GoGprs(&mySerial);

RCSwitch mySwitch = RCSwitch();

void setup()
{
Serial.begin(19200);
gsm.begin( PIN_CODE );
mySwitch.enableTransmit(10);
}   

void loop()
{
gsm.execute();
if(gsm.isCallReady())
{
  if(gsm.hasSms())
  {
   String phoneNr = gsm.smsCallee();
   if(phoneNr.substring(0) == "+33612345678")
   {
    mySwitch.switchOn(4, 3);
    delay(20000);
    mySwitch.switchOff(4, 3);
   }
   if(phoneNr.substring(0) == "+33687654321")
   {
    String msg = String( "Laisse tomber Maman.");
    if( gsm.sendSms( phoneNr, msg ))
    {
     Serial.println( "Successfully replied "+msg+" to "+phoneNr );
    }
    else
    {
     Serial.println( "Reply "+msg+" to "+phoneNr+ "did failed!" );
    }
   }
   if(phoneNr.substring(0) == "+3311111111")
   {
    String msg = String( "Tu aimes les films d'horreur ?");
    if( gsm.sendSms( phoneNr, msg ))
    {
     Serial.println( "Successfully replied "+msg+" to "+phoneNr );
    }
    else
    {
     Serial.println( "Reply "+msg+" to "+phoneNr+ "did failed!" );
    }
   }
   //Serial.println(phoneNr.substring(0));
   gsm.clearSms();
  }
  else
  {
    //Serial.println("Pas de SMS");
  }
}
delay(500); 
}


Ca reçoit un sms quelconque, si c'est le bon numéro, ça donne envoi une commande RF pour allumer une prise, si c'est ma mère ça lui répond "Laisse tomber Maman" et ça ne fait rien, si c'est un autre ça lui répond "Tu aimes les films d'horreur ?" et ça ne fait rien non plus.

Les numéros de téléphone des protagonistes ont été changés pour préserver leur identité secrète de super-héros.  8)

J'utilise un shield GPRS de Seeedstudio , un arduino UNO R3 et la librairie GoGPRS.

Pachole

Merci beaucoup pour ce code de super héros mais ça ne marche toujours pas avec ma SIM de super blaireau ...  :smiley-mr-green:

infobarquee

bonjour,
la carte est elle activée sur le réseau?
ca donne quoi dans un tel normal?
si tu appelles le gprs, ca donne quoi? messagerie ou ca sonne?

Pachole

Oui la carte est activée sur le réseau.
Quand je remets la carte dans le téléphone, du coup, je reçoit en bloc tous les messages qui sont pas arrivés sur l'arduino.
Si j'appelle quand la carte est dans le shield, ça sonne, répondeur etc...
Mystère  ]:)

infobarquee

active le mode debug de gogprs
dans le fichier GoGprs.h change ceci
Quote
//#define GG_DEBUG
// Forward GPRS incomming serial data to the debug channel.
//#define GG_DEBUG_GPRS_SERIAL

en
Quote

#define GG_DEBUG
// Forward GPRS incomming serial data to the debug channel.
#define GG_DEBUG_GPRS_SERIAL


et indique dans le void setup() le centre de service Free Mobile: +33695000695
Quote

  mySerial.println("AT+CSCA=\"+33695000695\"");
  delay(1000);

cela devrait te renvoyer un OK


Go Up