You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
94 lines
1.8 KiB
94 lines
1.8 KiB
5 years ago
|
/*
|
||
|
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://www.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 native USB port 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);
|
||
|
|
||
|
}
|
||
|
|
||
|
|