mirror of
https://github.com/arduino/Arduino.git
synced 2024-12-04 15:24:12 +01:00
9eaea4205d
According to #3786 removed the reference to Leonardo only in while(!Serial) of the examples. Changed in in "wait for serial port to connect. Needed for native USB port only"
94 lines
1.8 KiB
C++
94 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://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);
|
|
|
|
}
|
|
|
|
|