#include <SoftwareSerial.h>
SoftwareSerial phone(2, 3);
#define EOP '\n'
bool started = false;
bool ended = false;
char inData[280];
byte index;
void setup(){
phone.begin(9600);
delay(500);
Serial.begin(9600);
phone.println("AT");//text mode
delay(500);
phone.println("AT");//text mode
delay(500);
phone.println("AT+CMGF=1");//text mode
delay(500);
phone.println("AT+CPMS=\"SM\",\"SM\",\"SM\"\r\n");
delay(500);
phone.println("AT+CMGL=\"ALL\"\r");
//Serial.println("AT+CMGD=1");//delete sms
delay(500);
}
void loop()
{
while(phone.available() > 0)
{
char inChar = phone.read();
if(inChar == EOP)
{
ended = true;
break;
}
else
{
if(index < 279)
{
inData[index] = inChar;
index++;
inData[index] = '\0';
}
Serial.print("inData: [");
Serial.print(inData);
Serial.println("]");
Serial.print("Read: ");
Serial.println(inChar, HEX);
}
}
if(ended)
{
ended = false;
index = 0;
inData[index] = '\0';
}
}
Terminal:
inData: [A]
Read: 41
inData: [AT]
Read: 54
inData: [AT]
Read: D
inData: [AT]
Read: D
inData: [O]
Read: 4F
inData: [OK]
Read: 4B
inData: [OK]
Read: D
inData: [A]
Read: 41
inData: [AT]
Read: 54
inData: [AT+]
Read: 2B
inData: [AT+C]
Read: 43
inData: [AT+CM]
Read: 4D
inData: [AT+CMG]
Read: 47
inData: [AT+CMGF]
Read: 46
inData: [AT+CMGF=]
Read: 3D
inData: [AT+CMGF=1]
Read: 31
inData: [AT+CMGF=1]
Read: D
inData: [AT+CMGF=1]
Read: D
inData: [O]
Read: 4F
inData: [OK]
Read: 4B
inData: [OK]
Read: D
inData: [A]
Read: 41
inData: [AT]
Read: 54
inData: [AT+]
Read: 2B
inData: [AT+C]
Read: 43
inData: [AT+CP]
Read: 50
inData: [AT+CPM]
Read: 4D
inData: [AT+CPMS]
Read: 53
inData: [AT+CPMS=]
Read: 3D
inData: [AT+CPMS="]
Read: 22
inData: [AT+CPMS="S]
Read: 53
inData: [AT+CPMS="SM]
Read: 4D
inData: [AT+CPMS="SM"]
Read: 22
inData: [AT+CPMS="SM",]
Read: 2C
inData: [AT+CPMS="SM","]
Read: 22
inData: [AT+CPMS="SM","S]
Read: 53
inData: [AT+CPMS="SM","SM]
Read: 4D
inData: [AT+CPMS="SM","SM"]
Read: 22
inData: [AT+CPMS="SM","SM",]
Read: 2C
inData: [AT+CPMS="SM","SM","]
Read: 22
inData: [AT+CPMS="SM","SM","S]
Read: 53
inData: [AT+CPMS="SM","SM","SM]
Read: 4D
inData: [AT+CPMS="SM","SM","SM"]
Read: 22
inData: [AT+CPMS="SM","SM","SM"]
Read: D
inData: [AT+CPMS="SM","SM","SM"]
Read: D
inData: [+]
Read: 2B
inData: [+C]
Read: 43
inData: [+CP]
Read: 50
inData: [+CPM]
Read: 4D
inData: [+CPMS]
Read: 53
inData: [+CPMS:]
Read: 3A
inData: [+CPMS: ]
Read: 20
inData: [+CPMS: 2]
Read: 32
inData: [+CPMS: 2,]
Read: 2C
inData: [+CPMS: 2,3]
Read: 33
inData: [+CPMS: 2,30]
Read: 30
inData: [+CPMS: 2,30,]
Read: 2C
inData: [+CPMS: 2,30,2]
Read: 32
inData: [+CPMS: 2,30,2+]
Read: 2B
inData: [+CPMS: 2,30,2+C]
Read: 43
inData: [+CPMS: 2,30,2+CM]
Read: 4D
inData: [+CPMS: 2,30,2+CMG]
Read: 47
inData: [+CPMS: 2,30,2+CMGL]
Read: 4C
inData: [+CPMS: 2,30,2+CMGL:]
Read: 3A
inData: [+CPMS: 2,30,2+CMGL: ]
Read: 20
inData: [+CPMS: 2,30,2+CMGL: 2]
Read: 32
inData: [+CPMS: 2,30,2+CMGL: 2,]
Read: 2C
inData: [+CPMS: 2,30,2+CMGL: 2,"]
Read: 22
inData: [+CPMS: 2,30,2+CMGL: 2,"R]
Read: 52
inData: [+CPMS: 2,30,2+CMGL: 2,"RE]
Read: 45
inData: [+CPMS: 2,30,2+CMGL: 2,"REC]
Read: 43
inData: [+CPMS: 2,30,2+CMGL: 2,"REC1]
Read: 31
inData: [+CPMS: 2,30,2+CMGL: 2,"REC1:]
Read: 3A
inData: [+CPMS: 2,30,2+CMGL: 2,"REC1:K]
Read: 4B