GSM отправка сообщения по номеру из СМС

Нет ответов
kolianych
Offline
Зарегистрирован: 29.03.2017

Прошу помочь разобраться в таком вопросе. Не могу никак отправить СМС на номер из текста сообщения водящей СМСки.

#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="").