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