Простая GSM сигнализация на модуле neoway M590

Описание вашего первого форума.
Ответить
Аватара пользователя
KirAdmin
Администратор
Сообщения: 5
Зарегистрирован: 04 янв 2019, 15:13
Откуда: М.О., г.Фрязино
Контактная информация:

Простая GSM сигнализация на модуле neoway M590

Сообщение KirAdmin » 05 янв 2019, 15:08

Схема включения
Выход сигнала датчика на D4
Растяжка D2 - GND
D7 - TX GSM
D8 - RX GSM
GND Arduino - GND GSM
BOOT GSM - GND GSM

Код: Выделить всё

При включении модем выдает
MODEM:STARTUP
через 10-15 секунд
+PBREADY  // телефонная книга готова


at // проверка работы модуля
OK
AT+CCID // id приемника
+CCID: 89701011150364160697

AT+cops? // оператор
+COPS: 0,0,"MTS-RUS"

AT+CREG? 
+CREG: 0,1 // Зарегистрирован в домашней сети

OK

AT+CSQ // качество сети
+CSQ: 20,1

AT+CLIP=1 // вкл определитель номера
OK

AT+IPR=<скорость предачи> : 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200 бит/сек

AT+CMGR=2 // читать 2 смс
+CMGR: "REC UNREAD","+79151911150","","19/01/05,14:54:47+18"
Privet

AT+CSCS="GSM" // выставить кодировку
OK

AT+CMGF=1 // текстовый формат

AT+CPWROFF // выключить модем


ATD*100# // баланс
ATD+79630749105; // позвонить
// команды расписаны тут: http://radiolaba.ru/microcotrollers/gsm ... eniya.html

*111*0887# // узнать номер телефона МТС

Код: Выделить всё

#include <SoftwareSerial.h>

SoftwareSerial gsm(7, 8); // RX, TX

void modemOFF(){
  digitalWrite(5, HIGH);
  delay(10);
  gsm.println("AT+CPWROFF");
}

void modemON(){
  digitalWrite(5, LOW);
  delay(10);
  //while(!gsm.find("+PBREADY")); 
}

void setup(){  
  Serial.begin(9600);
  Serial.println("Arduino ON");
  gsm.begin(9600);             /// незабываем указать скорость работы UART модема
  
  pinMode(5, OUTPUT);           /// нога BOOT на модеме
  pinMode(2, INPUT_PULLUP);     /// нога на растяжку
  pinMode(4, INPUT);   /// нога на датчик
  
  digitalWrite(5, LOW);         /// включаем модем, для проверки.
                                /// !!! при подачи питания, нужно надавить на ресет ардуины,
                                /// !!! модем при включении может просадить питание и ардуина не стартанет 
  while(!gsm.find("+PBREADY")); /// при включении ждем готовность модема 
    Serial.println("M590E ON");
  //modemOFF();                   /// и выключаем модем
}

void loop() {


  if (digitalRead(2) || digitalRead(4)){          /// если оборвали растяжку
      if (digitalRead(2)) Serial.println("OPEN_door_alarm");
      if (digitalRead(4)) Serial.println("RIP_sensor_alarm");
   modemON();                  /// включаем модема
   /* while(1){                   // ждем подключение модема к сети
          Serial.println("AT+COPS?");
        gsm.println("AT+COPS?");
        if (gsm.find("0")) break;
        delay(500);  
    }*/
    /////////////////////// звоним по указаному номеру
          Serial.println("call");
    gsm.println("ATD+79151911110;"); 
    delay(100);
    if (gsm.find("OK")) Serial.println("ATD+OK!");
    while(1){             // проверяем готовность модема, ждем сброс вызова
        gsm.println("AT+CPAS");
        if (gsm.find("0")) break;
        delay(100);  
    }


    
    /////////////////// и\или отправляем SMS
/*      gsm.println("AT+CMGF=1");
        delay(100);
        gsm.println("AT+CSCS=\"GSM\"");
        delay(100);
        gsm.println("AT+CMGS=\"79991112233\"");
        // даем команду на отправку смс    delay(100);
        gsm.print("111");             // отправляем текст
        gsm.print((char)26);          // символ завершающий передачу
        Serial.println("SMS ok");
        delay(100);
        while(1){             // проверяем готовность модема
        gsm.println("AT+CPAS");
        if (gsm.find("0")) break;
        delay(100);
        } */   

    delay(10000);
    Serial.println("FULL_OFF!");
    
    //modemOFF();                           /// выключаем модем,  
    while(digitalRead(2));                  /// останавливаем прогу 
    delay(1000);
    Serial.println("Alarm_ON!"); // 
  }
  
  if (gsm.available())
    Serial.write(gsm.read());
  if (Serial.available())
    gsm.write(Serial.read());
}

Ответить