GSM отправка сообщения по номеру из СМС
- Войдите на сайт для отправки комментариев
Пнд, 10/04/2017 - 00:18
Прошу помочь разобраться в таком вопросе. Не могу никак отправить СМС на номер из текста сообщения водящей СМСки.
#include <SoftwareSerial.h>
SoftwareSerial mySerial(5, 6); // RX, TX
int ch = 0;
int led = 13;
String val = "";
String num = "";
void setup() {
delay(2000); //время на инициализацию модуля
pinMode(led, OUTPUT);
digitalWrite(led, LOW);
Serial.begin(19200); //скорость порта
Serial.println("GSM tester v1.0");
mySerial.begin(19200);
mySerial.println("AT+CLIP=1"); //включаем АОН
delay(100);
mySerial.println("AT+CMGF=1"); //режим кодировки СМС - обычный (для англ.)
delay(100);
mySerial.println("AT+CSCS=\"GSM\""); //режим кодировки текста
delay(100);
mySerial.println("AT+CNMI=2,2");
delay(100);
pinMode(4, INPUT);
}
void loop() {
if (mySerial.available()) { //если GSM модуль что-то послал нам, то
while (mySerial.available()) { //сохраняем входную строку в переменную val
ch = mySerial.read();
val += char(ch);
delay(10);
}
if (val.indexOf("+CMT") > -1) { //если SMS обнаружено
Serial.println("--- MASTER SMS DETECTED ---");
Serial.println(val);
String num = val.substring(val.indexOf("\""),val.indexOf(","));
Serial.print(num);
Serial.println(val);
}
val = "";
}
if (digitalRead(4)==1) { //если увидели команду отправки СМС
sms(String("hello world"), String("+71234567890")); //отправляем СМС на номер +71234567890
}
val = ""; //очищаем
}
void sms(String text, String phone) //процедура отправки СМС
{
Serial.println("SMS send started");
mySerial.println("AT+CMGS=\"" + num + "\"");
Serial.println("AT+CMGS=\"" + num + "\"");
delay(500);
mySerial.print(text);
delay(500);
mySerial.print((char)26);
delay(500);
Serial.println("SMS send complete");
delay(2000);
}
Не могу понять, если я номер отправляю в виде текста по СМС, то он отображается в Srial (num), но когда нужно отправить на него смс при срабатывании датчика, ничего не получается (AT+CMGS="").