2G sim-kaarten in NL

Hallo,

Ik heb een GPRS SIM900 'shield' waarmee ik SMS'jes kan versturen via Arduino. Maar na een lange tijd uitzoeken waarom het niet werkt denk ik dat het probleem is dat het een SIM-kaart provider moet zijn die 2G ondersteunt.

Ik heb de SIM-kaart (provider LycaMobile, eerste de beste die ik in de winkel zag) eerst in een telefoon gestopt, toen kreeg ik het nummer ervan en kon ik mijn beltegoed zien enzo. Maar in de SIM kaart shield wil hij maar niet verbinden met het netwerk, na lang uitzoeken kwam ik erachter dat deze provider die ik nu heb alleen 4G in Nederland ondersteund.

Nu is mijn vraag weten jullie een goeie SIM kaart die hiervoor geschikt is en dus ook 2G ondersteunt?

Alvast bedankt.

Hmh net geprobeerd nog met een T-Mobile SIM kaart waar ik eerder las op de forums dat die zou moeten werken maar ook die maakt geen verbinding met het netwerk. Als ik AT commands probeer gebeurd er ook niks.

Denk toch dat je iets anders fout doet. Zo ver ik weet hebben alle providers 2G nog gewwoon aan. Ik mag ook nog steeds gewoon mijn telefoon naar 2G schakelen zonder verbinding te verliezen en heb dan zelfs internet via GPRS:)

septillion:
Denk toch dat je iets anders fout doet. Zo ver ik weet hebben alle providers 2G nog gewwoon aan. Ik mag ook nog steeds gewoon mijn telefoon naar 2G schakelen zonder verbinding te verliezen en heb dan zelfs internet via GPRS:)

Hmh... ik denk wel dat je gelijk hebt inderdaad, want de andere SIM werkte ook niet. De SIM900 heeft alleen VCC en GND nodig, nou dat zit goed want hij gaat aan. En vervolgens moet je voor SoftwareSerial pin 7 en 8 erop aansluiten, nou dat zit ook zeker weten goed. Dan gebruik ik de standaard test code voor AT commands maar er gebeurt ook gewoon niks.

Het knopje om verbinding mee te maken met het mobiel netwerk blijft snel knipperen, wat aangeeft dat die niet verbonden is... en ik snap echt niet waar het aan ligt. Het is niet de code in ieder geval, dat weet ik zeker. Heb al meerdere standaard test codes geprobeerd, ze werken volgens mij pas ook als die verbonden is met het mobiel netwerk, maar dat gebeurt dus maar niet!

Verder geen ervaring met modules. Maar heb je dan de PIN wel van de SIM gehaald?

septillion:
Verder geen ervaring met modules. Maar heb je dan de PIN wel van de SIM gehaald?

Jep heb ik gedaan

Als er niets gebeurt, dan heb je inderdaad een probleem.

Stuur gewoon enkel AT en CR/LF.
Dan moet het antwoord OK zijn.
Zo niet, dan is er geen communicatie.

Draden in verkeerde volgorde ?
Baudrate correct ?

MAS3:
Als er niets gebeurt, dan heb je inderdaad een probleem.

Stuur gewoon enkel AT en CR/LF.
Dan moet het antwoord OK zijn.
Zo niet, dan is er geen communicatie.

Draden in verkeerde volgorde ?
Baudrate correct ?

Ja alles geprobeerd al qua communicatie, pin 7 en 8 af en toe omgedraaid voor het geval dat het daar aan lag. Baud-rates staat allemaal op 19200 (ook in de monitor) en op CR/LF. Als ik AT stuur gebeurt er niks.

Ik heb letterlijk alleen pin 7 en 8 verbonden op de pins 7 en 8 van dat shield en dan zou je met SoftwareSerial een communicatie kunnen maken.

En software serial op 6 en 7? Je begint namelijk te tellen bij 0

nicoverduin:
En software serial op 6 en 7? Je begint namelijk te tellen bij 0

Het SIM900 bord begint zelf ook te tellen bij 0 en naast elke pin staat het nummer, in dit geval 7 en 8. Dus dat is het ook niet

Hier de standaard code om AT commands te testen trouwens:

#include <SoftwareSerial.h>

SoftwareSerial GPRS(7, 8);

unsigned char buffer[64];  // buffer array for data receive over serial port
int count = 0;             // counter for buffer array

void setup()
{
  GPRS.begin(19200);
  Serial.begin(19200);
}

void loop()
{
  if (!GPRS.available()) {
    Serial.println("GPRS niet beschikbaar");
    delay(1000);
  }
  if (GPRS.available())
  {
    while (GPRS.available())
    {
      buffer[count++] = GPRS.read();
      if (count == 64)break;
    }
    Serial.write(buffer, count);
    clearBufferArray();
    count = 0;
  }
  if (Serial.available())
    GPRS.write(Serial.read());
}

void clearBufferArray()
{
  for (int i = 0; i < count; i++)
  {
    buffer[i] = NULL;
  }
}