mirror of
https://github.com/arduino/Arduino.git
synced 2024-12-01 12:24:14 +01:00
99 lines
1.8 KiB
C++
99 lines
1.8 KiB
C++
/*
|
|
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];
|
|
|
|
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 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;
|
|
|
|
// 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);
|
|
|
|
Serial.println("\nEND OF MESSAGE");
|
|
|
|
// Delete message from modem memory
|
|
sms.flush();
|
|
Serial.println("MESSAGE DELETED");
|
|
}
|
|
|
|
delay(1000);
|
|
|
|
}
|
|
|
|
|