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.
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.
/*
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++;
}
}
}
}
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?
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.
Usually it stucks around this area. I don't know why. But if you press the 'RESET' button twice or thrice, it would work.
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();
}
All the example code provide with the IDE is intended for use with the official shield which uses the Qualtec M10 chip. Some of the code may be specifically for that chip and there is no guarantee that it will work with other chips.
There is a simple example of how to send an sms without using libraries in the link in my signature.
There's a link at the bottom of my post. At the end of the page it takes you to is a very simple example of how to send a text/SMS. It's simply intended to prove that the modem works. You may need to adapt it to suit your particular connections but it's got comments.
Thanks for your help on the last. I finally purchased an Arduino GSM shield. It was the easiest option and now it works ok.
I can successfully send and receive a text.
I would like to add a timestamp to my text. For example a message to say Last text sent at 8:30 after the text is displayed on the LCD. How can I do this please?
I have been reading this thread and troubleshooting with these examples. I am still getting stuck where it asks for the mobile number. I type in my number 1563xxxxxxx and then nothing happens after this point.