Pages: [1]   Go Down
Author Topic: GSM Shield says SMS complete but message doesn't send  (Read 1663 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 4
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hi, I'm using a gsm shield to send SMS messages, and I'm literally on the first step with the info at http://arduino.cc/en/Guide/ArduinoGSMShield

The strange thing is I've used multiple numbers in the

char remoteNumber[20]= "12125551212";   

field and none of them receive a message from the arduino despite it saying

SENDING

Message:
Test

COMPLETE!

I'm using an 02 United Kingdom sim. Which has credit and isn't sim locked, I tried it in my phone and managed to send texts, but sir some reason can't get the arduino to do it.

Any thoughts would be greatly appreciated!
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 4
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Managed to sort it using instructions and script at http://arduino.cc/en/Tutorial/GSMExamplesSendSMS instead
Logged

Madrid (Spain)
Offline Offline
Full Member
***
Karma: 0
Posts: 137
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

You have to add your country code to telephone number (for example: +44123456789)
Logged

Offline Offline
Jr. Member
**
Karma: 0
Posts: 80
A student, and a programmer wannabe.
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

I am facing the same problem!

I have also added the country code without success.

I am using the exact "sendSMS" sample. It was actually working yesterday without country code. I did not change anything.

Please assist.

Code:
/*
 SMS sender
 
 This sketch, for the Arduino GSM shield,sends an SMS message
 you enter in the serial monitor. Connect your Arduino with the
 GSM shield and SIM card, open the serial monitor, and wait for
 the "READY" message to appear in the monitor. Next, type a
 message to send and press "return". Make sure the serial
 monitor is set to send a newline when you press return.
 
 Circuit:
 * GSM shield
 * SIM card that can send SMS
 
 created 25 Feb 2012
 by Tom Igoe
 
 This example is in the public domain.
 
 http://arduino.cc/en/Tutorial/GSMExamplesSendSMS
 
 */

// Include the GSM library
#include <GSM.h>

#define PINNUMBER ""

// initialize the library instance
GSM gsmAccess;
GSM_SMS sms;

void setup()
{
  // initialize serial communications and wait for port to open:
  Serial.begin(9600);
  while (!Serial) {
    ; // wait for serial port to connect. Needed for Leonardo only
  }
 
  Serial.println("SMS Messages Sender");

  // connection state
  boolean notConnected = true;

  // Start GSM shield
  // If your SIM has PIN, pass it as a parameter of begin() in quotes
  while(notConnected)
  {
    if(gsmAccess.begin(PINNUMBER)==GSM_READY)
      notConnected = false;
    else
    {
      Serial.println("Not connected");
      delay(1000);
    }
  }
 
  Serial.println("GSM initialized");
}

void loop()
{

  Serial.print("Enter a mobile number: ");
  char remoteNum[20];  // telephone number to send sms
  readSerial(remoteNum);
  Serial.println(remoteNum);
   
  // sms text
  Serial.print("Now, enter SMS content: ");
  char txtMsg[200];
  readSerial(txtMsg);
  Serial.println("SENDING");
  Serial.println();
  Serial.println("Message:");
  Serial.println(txtMsg);
 
  // send the message
  sms.beginSMS(remoteNum);
  sms.print(txtMsg);
  sms.endSMS();
  Serial.println("\nCOMPLETE!\n");
}

/*
  Read input serial
 */
int readSerial(char result[])
{
  int i = 0;
  while(1)
  {
    while (Serial.available() > 0)
    {
      char inChar = Serial.read();
      if (inChar == '\n')
      {
        result[i] = '\0';
        Serial.flush();
        return 0;
      }
      if(inChar!='\r')
      {
        result[i] = inChar;
        i++;
      }
    }
  }
}
Logged

Madrid (Spain)
Offline Offline
Full Member
***
Karma: 0
Posts: 137
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Hi,

Replace the line "GSM gsmAccess;" by "GSM gsmAccess(true);".
Then, you can see the commands of modem. Post the output.
Logged

Offline Offline
Jr. Member
**
Karma: 0
Posts: 80
A student, and a programmer wannabe.
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

I did not replace the line "GSM gsmAccess;" by "GSM gsmAccess(true);

The SMS will only work if I bring up the Serial Monitor. If I were to supply external power to the BLUNO (Uno + BLE) without bringing up the Serial Monitor, the SMS won't work. Why is that so?
Logged

Offline Offline
Jr. Member
**
Karma: 0
Posts: 80
A student, and a programmer wannabe.
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

I replaced it with
Code:
GSM gsmAccess(true);

It solves the serial monitor problem as well it seems. Though would appreciate if you can explain that.
Logged

Madrid (Spain)
Offline Offline
Full Member
***
Karma: 0
Posts: 137
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

I don't know if you use BLUNO, it'll influence serial connection. I have never work with BLUNO. Anyway, it could be a timing problem in the GSM library for this board.

I have an idea, you could put LED blinks in each part of sketch to see in which part (how many blinks have happened) sketch stops or fails.
Logged

Offline Offline
Jr. Member
**
Karma: 0
Posts: 80
A student, and a programmer wannabe.
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Usually it stucks around this area. I don't know why. But if you press the 'RESET' button twice or thrice, it would work.

Code:
void setupGSM() {
  // connection state
  boolean notConnected = true;
  // Start GSM shield
  // If your SIM has PIN, pass it as a parameter of begin() in quotes
  while(notConnected) {
    if(gsmAccess.begin(PINNUMBER)==GSM_READY)
      notConnected = false;
    else {
      Serial.println("Not connected");
      delay(1000);
    }
  }
  //sendSMS();
}

Logged

Pages: [1]   Go Up
Jump to: