//original code created by TechToTinker
#include <SoftwareSerial.h> //used for GSM
SoftwareSerial sim800L(2, 3); //RXD, TXD
String cmd = "";
void setup() {
Serial.begin(9600);
Serial.println("Initializing");
sim800L.begin(9600);
delay(1000);
pinMode(10, OUTPUT); //uses pin 10 for 5V source
sim800L.println("AT");
updateSerial();
sim800L.println("AT+CMGF=1");
updateSerial();
sim800L.println("AT+CNMI=1,2,0,0,0");
updateSerial();
}
void loop() {
updateSerial();
}
//USER DEFINED FUNCTIONS
void updateSerial(){
delay(500);
while (Serial.available()){
cmd = (char)Serial.read();
//cmd += (char)Serial.read();
cmd.trim();
if (cmd.equals("S") || cmd.equals("s")){
testSMS();
} else {
sim800L.print(cmd);
sim800L.println("");
}
}
while (sim800L.available()){
Serial.write(sim800L.read());
}
}
void testSMS(){
//Qamar's phone
/*
sim800L.println("AT+CMGF=1");
delay(500);
sim800L.println("AT+CMGS=\"+12816761164\"\r");
delay(500);
sim800L.println("Test Successful.");
delay(500);
sim800L.write(26);
*/
//Jesse's phone
sim800L.println("AT+CMGF=1");
delay(500);
sim800L.println("AT+CMGS=\"+18327956864\"\r");
delay(500);
sim800L.println("Test Successful!");
delay(500);
sim800L.write(26);
}