hi everyone,
i'm using gsm shield to receive sms which is then stored in an array but code is working but the word OK is display each time i'm receiving sms, can someone please help me how to solve this.
Please refer to the attachment for the error i'm encountering.
Thanks a lot
/*
SMS receiver
This sketch, for the Arduino GSM shield, waits for a SMS message
and displays it through the Serial port.
Circuit:
* GSM shield attached to and Arduino
* SIM card that can receive SMS messages
created 25 Feb 2012
by Javier Zorzano / TD
This example is in the public domain.
http://arduino.cc/en/Tutorial/GSMExamplesReceiveSMS
*/
// include the GSM library
#include <GSM.h>
// PIN Number for the SIM
#define PINNUMBER ""
// initialize the library instances
GSM gsmAccess;
GSM_SMS sms;
// Array to hold the number a SMS is retreived from
char senderNumber[20];
char newMessage[160];
bool newMessageAvailable = false;
void setup()
{
pinMode(5, OUTPUT);
// 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 Receiver");
// connection state
boolean notConnected = true;
// Start GSM connection
while (notConnected)
{
if (gsmAccess.begin(PINNUMBER) == GSM_READY)
notConnected = false;
else
{
Serial.println("Not connected");
delay(1000);
}
}
Serial.println("GSM initialized");
Serial.println("Waiting for messages");
}
void loop()
{
char c;
byte smsIndex = 0;
// If there are any SMSs available()
if (sms.available())
{
Serial.println("Message received from:");
// Get remote number
sms.remoteNumber(senderNumber, 20);
Serial.println(senderNumber);
// An example of message disposal
// Any messages starting with # should be discarded
if (sms.peek() == '#')
{
Serial.println("Discarded SMS");
sms.flush();
}
// Read message bytes and print them
while (c = sms.read())
{
Serial.print(c);
newMessage[smsIndex++] = c;
newMessage[smsIndex] = '\0'; // Keep string NULL terminated
newMessageAvailable = true;
} // Always use curly braces with while statements!
Serial.println("\nMESSAGE STORE IN ARRAY");
Serial.print(newMessage);
Serial.println("\nEND OF MESSAGE");
// Delete message from modem memory
sms.flush();
Serial.println("MESSAGE DELETED");
}
delay(1000);
}