M590E как надавть значения переменним через смс ?

zifoon13
zifoon13 аватар
Offline
Зарегистрирован: 07.11.2018

у меня есть програма которая по звонку с записаного номера откривает двери. как можно просто добавлять  номера через смс. смс виглядит так (<название команди> # <номер которий я добавляю>). пожалуста помогите.

вот прграма:

 

#include <SoftwareSerial.h>

SoftwareSerial mySerial(2, 3);

unsigned long box0 = 0;// вот ету переменную надо менять через смс

unsigned long box1 = 0;// ету тоже

byte led = 4;

int master = d9;

 

void setup() {

  delay(2000);

  pinMode(master, INPUT); 

  pinMode(led, OUTPUT);

  digitalWrite(led, LOW);

  Serial.begin(9600); 

  mySerial.begin(9600);

  Serial.println();

  Serial.println("Turn on AOH:");

  mySerial.println("AT+CLIP=1");  //включить АОН

  delay(100);

  mySerial.println("AT+CMGF=1"); // текстовый формат SMS

  delay(300);

  Serial.println("Mode GSM:");

  mySerial.println("AT+CSCS=\"GSM\"");  // кодировка текста - GSM

  delay(300);

  Serial.println("SMS to terminal:");

  mySerial.println("AT+CNMI=2,2,0,0,0"); // вывод смс в консоль

  delay(300);

  // ПРИ СТАРТЕ, НА КАЖДУЮ КОМАНДУ ДОЛЖНО БЫТЬ ПОДТВЕРЖДЕНИЕ - ОК

}

 

void loop()

{

 

  if(master = 1) {

    if(mySerial.available()) //если модуль что-то послал

  { 

    char ch = ' ';

    String val = "";

   

    while(mySerial.available())

     { 

       ch = mySerial.read();

       val += char(ch); //собираем принятые символы в строку

       delay(3);

     }

 

    Serial.print("Neo send> ");

    Serial.println(val);

   

    if(val.indexOf("+CMT") > -1) //если есть входящее sms

     {

   

   //  вот сюда надо вставить кусок програми которий я прошу.

    

    

    

    

    

    

     }

  }

  }

 if(mySerial.available()) //если модуль что-то послал

  { 

    char ch = ' ';

    String val = "";

   

    while(mySerial.available())

     { 

       ch = mySerial.read();

       val += char(ch); //собираем принятые символы в строку

       delay(3);

     }

 

    Serial.print("Neo send> ");

    Serial.println(val);

   

    if(val.indexOf("RING") > -1) //если есть входящий вызов, то проверяем номер

     {

      if(val.indexOf(box0) > -1) // ВПИШИТЕ НОМЕР, с которого Вы будете звонить на модуль

       { 

  

         mySerial.println("ATH");  //разрываем связь

 

  

         digitalWrite(led, HIGH);  //включаем реле двери

 

         delay(5000);

         digitalWrite(led, LOW);  //выключаем

    

       }

     }

  }

}

vvadim
Offline
Зарегистрирован: 23.05.2012
ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

А потом, перепостить вот сюда: http://arduino.ru/forumy/ishchu-ispolnitelya

vvadim
Offline
Зарегистрирован: 23.05.2012

да, ещё перед публикацией код неплохо бы отформатировать.