GSM сигнализация M590+Arduino

TrampSRV
Offline
Зарегистрирован: 10.09.2017

Baks пишет:
TrampSRV пишет:

Как то так   www.youtube.com/watch?v=rZYRJSVIz1o

Ссылка битая. Я всё-таки так и не понял что со схемой резервного питания делать. Можно ли так сделать как в образце и будет ли это правильно и надёжно?

 

А так?!   https://www.youtube.com/watch?v=rZYRJSVIz1o

smesharik
Offline
Зарегистрирован: 31.01.2016

TrampSRV пишет:

Ардуино молчит, а вот если ручками набирать это через USB TTL конвектор, то выкидывает это

at
OK
AT+CMGF=1
OK
AT+IFC=1,1
OK
AT+CPBS=SM
ERROR
AT+CPBS?
ERROR
AT+CNMI=1,2,2,1,0
OK
AT+CUSD=1
OK
ATD#100#
+CUSD: 0,"0032003800320440002E003004310430043B002E04280430043D0441043E043D00200022041D0435002004420440043E0433043004390020043E04410435043D044C00220020043D04300020043304430434043E043A002004370430002000340440002F04340021002000300037003700370034",72

OK

И почему ругается на симку? AT+CPBS=SM     Error

по ходу как и у меня +CUSD: шифрованное.

http://arduino.ru/forum/apparatnye-voprosy/gsm-a6-vopros-pro-ring

тут гляньте, я пробывал, мне не помогло 

ваш

0032003800320440002E003004310430043B002E04280430043D0441043E043D00200022041D0435002004420440043E0433043004390020043E04410435043D044C00220020043D04300020043304430434043E043A002004370430002000340440002F04340021002000300037003700370034

в 16bit UCS2

USSD/User Data without length information
Alphabet: UCS2

282р.0бал.Шансон "Не трогай осень" на гудок за 4р/д! 07774
Length: 58

http://autoit-script.ru/index.php?topic=9991.0

почитайте тут, может что и получится

kvolk
Offline
Зарегистрирован: 12.06.2017

Baks пишет:
TrampSRV пишет:

Как то так   www.youtube.com/watch?v=rZYRJSVIz1o

Ссылка битая. Я всё-таки так и не понял что со схемой резервного питания делать. Можно ли так сделать как в образце и будет ли это правильно и надёжно?

То, что в видео это лютый ад. С реле однозначно - нет. Без нагрузки ардуина переживёт переключение, с нагрузкой - нет.

Что касается двух диодов, да это рабочий вариант, но аккум будет циклически заряжаться до 4,25 В и  разряжаться до 4,05 В, это уже проверено, и так по несколько раз в день.

Используйте народный контроллер заряда - разряда TP4056 и схему из этого  поста https://mysku.ru/blog/ebay/43282.html#comment1789166 там проще некуда, работает как "часы".

 

ЗЫ Все китайские говномодули повышайки, в том числе и народный MT3608 будет выносить мозг вашему модему, постоянная потеря сети и тому подобные глюки.

pasha413
Offline
Зарегистрирован: 27.11.2016

А зачем вам
AT+CPBS=SM ?
Там по-моему SM в кавычках надо.
И через конвертор баланс не приходит???

smesharik
Offline
Зарегистрирован: 31.01.2016

pasha413 пишет:
А зачем вам AT+CPBS=SM ? Там по-моему SM в кавычках надо. И через конвертор баланс не приходит???

приходит у него вот так

15
ATD#100#
16
+CUSD: 0,"0032003800320440002E003004310430043B002E04280430043D0441043E043D00200022041D0435002004420440043E0433043004390020043E04410435043D044C00220020043D04300020043304430434043E043A002004370430002000340440002F04340021002000300037003700370034",72
17
 
18
OK

 

Gienekb
Offline
Зарегистрирован: 29.08.2017

pasha413 пишет:
Скорее всего из-за небольших отличий в АТ командах. Подправьте их и все будет работать

Я точно не описал проблему. В консоли все работает нормально. Если подключить сам модем и arduino (без ПК), сигнализация реагирует на отправленное SMS. Но он не отправляет SMS на контрольный телефон. После событий SMS также не отправляется. Я не знаю, почему это происходит.

Извините за мой русский

pasha413
Offline
Зарегистрирован: 27.11.2016

Я уже писал про шифрованные смс баланса, и код выкладывал.

pasha413
Offline
Зарегистрирован: 27.11.2016

Gienekb, мой код не работает?

TrampSRV
Offline
Зарегистрирован: 10.09.2017

pasha413 пишет:
Я уже писал про шифрованные смс баланса, и код выкладывал.

Ткните пожалуйста меня носом в это сообщение )

smesharik
Offline
Зарегистрирован: 31.01.2016

TrampSRV пишет:

pasha413 пишет:
Я уже писал про шифрованные смс баланса, и код выкладывал.

Ткните пожалуйста меня носом в это сообщение )

я что то не припомню

Gienekb
Offline
Зарегистрирован: 29.08.2017

Да, этот код из сообщения # 216

pasha413
Offline
Зарегистрирован: 27.11.2016

Да, извиняюсь, не я выкладывал, но я использовал. В 207 сообщении ссылка, далее мой код с проверкой баланса.

kvolk
Offline
Зарегистрирован: 12.06.2017

Рабочий вариант баланса для модемов M590, SIM800L, A6_Mini:

String BalanceNumber = "#100#";
...
  if ((val.indexOf( F ("money")) > -1)) {
    balance();
  }

... // ----- Команда запроса баланса 
void balance() {
  delay(1000); 
  mySerial.print(F("AT+CUSD=1,\"")); 
  mySerial.print(BalanceNumber); 
  mySerial.println("\",15"); 
} 

...
...
... 
} else if (val.indexOf( F ("+CUSD:")) > -1) { //Если пришел USSD ответ 
     Serial.print( F ("USSD query: ")); 
     if (val.indexOf("\"") > -1) { 
       SendSmsText = val.substring(String(val.indexOf("\"")).toInt() + 1, String(val.indexOf("\"")).toInt() + BalanceStringLen); 
     sms("+" + RingPhone); 
     delay(1000); 
     } 
   mySerial.println( F ("AT+CUSD=0")); 
   delay(200); 
}
 ...
 ...
 ...

 

pasha413
Offline
Зарегистрирован: 27.11.2016

kvolk, это из 16bit UCS2 конвертируете в норм вид?

smesharik
Offline
Зарегистрирован: 31.01.2016

pasha413 пишет:
kvolk, это из 16bit UCS2 конвертируете в норм вид?

это просто запрос

pasha413
Offline
Зарегистрирован: 27.11.2016

smesharik, уверены, а зачем:
else if (val.indexOf( F ("+CUSD:")) > -1) { //Если пришел USSD ответ

smesharik
Offline
Зарегистрирован: 31.01.2016

pasha413 пишет:
smesharik, уверены, а зачем: else if (val.indexOf( F ("+CUSD:")) > -1) { //Если пришел USSD ответ

в начале запрос с 18 строчки прием, и то .toInt (перевод в число из string)

наверно так, если я правильно осмыслил

у меня на SIM800L запрос вида AT+CUSD=1,#100#,15 не работает, выдает ошибку

работает только ATD#100#

kvolk
Offline
Зарегистрирован: 12.06.2017

smesharik пишет:

pasha413 пишет:
smesharik, уверены, а зачем: else if (val.indexOf( F ("+CUSD:")) > -1) { //Если пришел USSD ответ

в начале запрос с 18 строчки прием, и то .toInt (перевод в число из string)

наверно так, если я правильно осмыслил

SendSmsText = val.substring(String(val.indexOf("\"")).toInt() + 1, String(val.indexOf("\"")).toInt() + BalanceStringLen);

Это всего лишь копирование подстроки из строки и присвоение переменной SendSmsText значения этой подстроки, чтобы потом отправить получателю. 

Аналогично этому коду

        int p1 = val.indexOf(F("\""));         // начало строки
        int p2 = val.lastIndexOf(F("\""));     // конец строки
        val = val.substring(p1+1,p2);

Баланс должен приходить на латинице, уточняйте у оператора номер запроса баланса с ответом на латинице и будет вам счастье. Ну нет у вас столько памяти чтобы конвертировать локализации.

kvolk
Offline
Зарегистрирован: 12.06.2017

smesharik пишет:

ботает, выдает ошибку

работает только ATD#100#

Не верю, у меня работает, на 3 устройствах. Код для всех модемов одинаковый.

smesharik
Offline
Зарегистрирован: 31.01.2016

kvolk пишет:

Баланс должен приходить на латинице, уточняйте у оператора номер запроса баланса с ответом на латинице и будет вам счастье. 

а это уже решение проблемы

ATD#100# еще раз перепроверю

TrampSRV
Offline
Зарегистрирован: 10.09.2017

Использую этот код (сейчас симка билайна)

#include <SoftwareSerial.h>

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



String inputstr;

void setup() {
  Serial.begin(9600);  //Скорость порта для связи Arduino с компьютером
  Serial.println("Start module");
  
  gsm.begin(9600);  //Скорость порта для связи Arduino с GSM модулем

  Serial.println("Wait connect to GSM...");
      while(1){                             // ждем подключение модема к сети

        gsm.println("AT+COPS?");

        if (gsm.find("+COPS: 0")) break;
        
  
  }
  Serial.println("GSM FIND OK");

  gsm.println("AT+CLIP=1");
  delay(200); // даём время на усваивание команды
  gsm.println("AT+CMGF=1");
  delay(200); // даём время на усваивание команды
  gsm.println("AT+CNMI=2,2");
  delay(200); // даём время на усваивание команды
  gsm.println("AT+CUSD=1");
  delay(200); // даём время на усваивание команды
  gsm.println("ATD#102#");
  delay(200); // даём время на усваивание команды
  inputstr = "";
}
void loop()
{
  while(gsm.available())
  {
    char ch=gsm.read();
    if( ch == '\r' )
    {
      //ответ на USSD запрос AT+CUSD=1,#111#,15
      if(inputstr.indexOf(F("+CUSD:"))>-1)
      {
        //анализируем строку
        int p1 = inputstr.indexOf(F("\"")); //начало строки
        int p2 = inputstr.lastIndexOf(F("\"")); //конец строки
        inputstr = inputstr.substring(p1+1,p2);
        Serial.println("");
        Serial.println("Input string:");
        Serial.println(inputstr);
        String decodestr;
        Decode7bit(inputstr, decodestr);
        Serial.println("");
        Serial.println("Decode string:");
        Serial.println(decodestr);
      }

      inputstr = "";
    }
    else
    {
      inputstr+=ch;
    }
    Serial.write(ch);
  } 

  if (Serial.available())
    gsm.write(Serial.read());
}

void Decode7bit(String &instr, String &outstr){
  byte reminder = 0;
  int bitstate = 7;
  for(int i=0; i<instr.length(); i++)
  {
    byte b = instr[i];
    byte bb = b << (7 - bitstate);
    char c = (bb + reminder) & 0x7F;
    outstr += c;
    reminder = b >> bitstate;
    bitstate--;
    if(bitstate == 0)
    {
      char c = reminder;
      outstr += c;
      reminder = 0;
      bitstate = 7;
    }
  }
}

Выдает вообще белеберду, ну для меня это белеберда )

Start module
Wait connect to GSM...
GSM FIND OK
,X	•••jФиjрAT+CLIP=1

OK
AT+CMGF=1

OK
AT+CNMI=2,2

OK
AT
+CUSD: 0,"00200056006100730068002000620061006C0061006E007300200032002E0035003000200072002E000A0045007300740027002000620061006E006B006F00760073006B0061007900610020006B0061007200740061003F0020004E0061007300740072006F006A007400650020004100760074006F006F0070006C00610074007500210020006100760074006F006F0070006C006100740061002E006200650065006C0069006E0065002E00720075",15
Input string:
00200056006100730068002000620061006C0061006E007300200032002E0035003000200072002E000A0045007300740027002000620061006E006B006F00760073006B0061007900610020006B0061007200740061003F0020004E0061007300740072006F006A007400650020004100760074006F006F0070006C00610074007500210020006100760074006F006F0070006C006100740061002E006200650065006C0069006E0065002E00720075

Decode string:
0`HL6`@17f@c0d@F
0`X	C`@16
Asf0d@f0`H)L5`@2`@sF0dL 0`P)L3`@9C2n@#0lHFM0`X)B`@1c7l@sf0lFM0`\I1`@6Ac&0nHf
0`X	LF`@4
Ac&0nLf
0`\F`@17h@c&
0d@M0`\1L4`@1c6As0lFM0`\!L5`@2`@c&0nXf
0`X1F`@96Ac&0nPFM0`H)2`@1S6j@cf0ldFM"0`X)E`@9#7j


OK

И что это за фигня в 04 строчке ,X •••jФиjрAT+CLIP=1 ?!

kvolk
Offline
Зарегистрирован: 12.06.2017

TrampSRV пишет:

И что это за фигня в 04 строчке ,X •••jФиjрAT+CLIP=1 ?!

Это сделали?

В файл SoftwareSerial.h (C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SoftwareSerial\src\SoftwareSerial.h) необходимо внести изменения

было так:

#define _SS_MAX_RX_BUFF 64 

стало так:

#define _SS_MAX_RX_BUFF 192

 

TrampSRV
Offline
Зарегистрирован: 10.09.2017

kvolk пишет:

TrampSRV пишет:

И что это за фигня в 04 строчке ,X •••jФиjрAT+CLIP=1 ?!

Это сделали?

В файл SoftwareSerial.h (C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SoftwareSerial\src\SoftwareSerial.h) необходимо внести изменения

было так:

#define _SS_MAX_RX_BUFF 64 

стало так:

#define _SS_MAX_RX_BUFF 192

 

 

 

Спасибо, поправил. Но ничего не изменилось.

pasha413
Offline
Зарегистрирован: 27.11.2016

TrampSRV, а смс пробовали принимать модемом?
Команду AT+CSCS=GSM добавьте еще

TrampSRV
Offline
Зарегистрирован: 10.09.2017

pasha413 пишет:
TrampSRV, а смс пробовали принимать модемом? Команду AT+CSCS=GSM добавьте еще

AT+CSCS=GSM
 
ERROR
AT+CSCS?
 
+CSCS: "UCS2"
 
OK
 
Это как и что делать?
 
 
 
 
Как то переключил
AT+CSCS="GSM"
 
OK
AT+CSCS=?
 
+CSCS: ("IRA","GSM","PCCP437","8859-1","UCS2","HEX","SYNC")
 
OK
ATD#102#
 
+CUSD: 0," Vash balans 2.50 r.
Est' bankovskaya karta? Nastrojte Avtooplatu! avtooplata.beeline.ru",15
 
 
тепеь четко шлет в GSM на латинице и не нужно его дешифровывать. А как правельно записать в коде строчку с ковычками? gsm.println("AT+CSCS=”GSM"");
 
 
 
Все, и здесь все понял. СПС всем))
 
kvolk
Offline
Зарегистрирован: 12.06.2017

TrampSRV пишет:

А как правельно записать в коде строчку с ковычками? gsm.println("AT+CSCS=”GSM"")

Так:
 
mySerial.println( F ("AT+CSCS=\"GSM\"")); //Режим кодировки текста

 

 

Gienekb
Offline
Зарегистрирован: 29.08.2017

pasha413, Все ясно. Проблема была в этой процедуре: mySerial.println( F ("AT+CSCS=\"GSM\"")); //Режим кодировки текста

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

После исправления все работает нормально.
kvolk
Offline
Зарегистрирован: 12.06.2017

Вот тут лежит последний открытый скетч сигнализации https://drive.google.com/drive/folders/0B7HZegEx_LSuZ0RaQ1JkMzNzUnM

И там этого косяка нет, посмотрите свой первый пост с моим скетчем, там есть экранирующие слэши, зачем вы их убрали - не ясно.

Паш, не обижайтесь, но если берёте за основу скетч, берите и допиливайте, а не копипастом по кускам из интернетов. Реально в скетче столько косяков которые вам ещё долго покоя давать не будут. Скоро начнутся проблемы с нехваткой памяти, это будет ещё тот цирк.

 

pasha413
Offline
Зарегистрирован: 27.11.2016

kvolk пишет:

И там этого косяка нет, посмотрите свой первый пост с моим скетчем, там есть экранирующие слэши, зачем вы их убрали - не ясно.

непонял, какого косяка?

smesharik
Offline
Зарегистрирован: 31.01.2016

"AT+CSCS=\"GSM\""  --->   "AT+CSCS=GSM"

отсутствие \

kvolk
Offline
Зарегистрирован: 12.06.2017

pasha413 пишет:

непонял, какого косяка?

Пост 216, строка в коде 668:

mySerial.println(F("AT+CSCS=GSM"));

а должно быть:

mySerial.println( F ("AT+CSCS=\"GSM\""));

 

pasha413
Offline
Зарегистрирован: 27.11.2016

Ок, посмотрю

Umka
Umka аватар
Offline
Зарегистрирован: 19.10.2012

Долго вы скобку еще обсуждать будете? :)

kvolk
Offline
Зарегистрирован: 12.06.2017

Umka пишет:
Долго вы скобку еще обсуждать будете? :)

Что там с ИБП для этого устройства из повербавнка? Домой ещё не доехали? :)

PS. Мы тут не скобку обсуждаем, а пытаемся затавить работать этого "франкенштейна" как надо.

Baks
Baks аватар
Offline
Зарегистрирован: 11.01.2016

И все равно я не пойму что и как делать с ИБП, нормально ли будет работать схема по ссылке приведенной чуть выше или же все таки она губительная для аккумулятора будет. Совсем не хочется каждый месяц покупать новые аккумуляторы.

Baks
Baks аватар
Offline
Зарегистрирован: 11.01.2016

Dell

smesharik
Offline
Зарегистрирован: 31.01.2016

По ИБП, получается не совсем бюджетно но все же

использовать Бастион СКАТ 12v и все дела, https://bast.ru/media/bastion/manuals/skat_1200u.pdf

готовый девайс, на вторичке можно по дешевке купить, на авито глянул, по 500р отдают, без аккумика + 700р аккумик новый

b707
Offline
Зарегистрирован: 26.05.2017

kvolk пишет:

Это сделали?

В файл SoftwareSerial.h (C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SoftwareSerial\src\SoftwareSerial.h) необходимо внести изменения

было так:

#define _SS_MAX_RX_BUFF 64 

стало так:

#define _SS_MAX_RX_BUFF 192

 

Kvolk, а нафига? все и так работает.

Этим вы просто выкидываете 128 байт оперативки, а ее и так немного.

Gienekb
Offline
Зарегистрирован: 29.08.2017

pasha413 - Вы не думали о программном мониторинге сетевого напряжения с уведомлении SMS при пропадании/появлении  ?

Можно контролировать косвенно, проверяя напряжение + 5 В. Это поможет сэкономить время работы батареи.

kvolk
Offline
Зарегистрирован: 12.06.2017

b707 пишет:

Kvolk, а нафига? все и так работает.

Работает потому что от модема ещё не "прилетело" данных больше чем сам буфер, как только это произойдёт вы без труда сможете понять для чего увеличивается этот буфер. На 590 модеме "мусора" от модема прилетет меньше чем на SIM800L или A6_Mini, поэтому вам буфера хватает.

Пример тут: https://mysku.ru/blog/ebay/43282.html#comment2174532

b707 пишет:

Этим вы просто выкидываете 128 байт оперативки, а ее и так немного.

Вы ошибаетесь.

kvolk
Offline
Зарегистрирован: 12.06.2017

Gienekb пишет:

Можно контролировать косвенно, проверяя напряжение + 5 В. Это поможет сэкономить время работы батареи.

Каким образом это сэкономит время работы батареи?

kvolk
Offline
Зарегистрирован: 12.06.2017

Baks пишет:
И все равно я не пойму что и как делать с ИБП, нормально ли будет работать схема по ссылке приведенной чуть выше или же все таки она губительная для аккумулятора будет. Совсем не хочется каждый месяц покупать новые аккумуляторы.

Чего не понятно-то?:

kvolk пишет:

Используйте народный контроллер заряда - разряда TP4056 и схему из этого  поста https://mysku.ru/blog/ebay/43282.html#comment1789166 там проще некуда, работает как "часы".

Тут ещё почитайте:

https://mysku.ru/blog/ebay/43282.html#comment1788706

https://mysku.ru/blog/ebay/43282.html#comment2180035

ЗЫ, с бастионом тоже нормальное решение вам расписали, только после бастиона с 12 до 5 Вольт напряжение понизить надо будет, но зато можно к 12 Вольтовому выходу сирену подцепить. Для дачи я бы выбрал такой вариант, но дома мне сирена не нужна, использую народный контроллер с доработкой.

pasha413
Offline
Зарегистрирован: 27.11.2016

Gienekb, да, в скором будущем. Сейчас на даче нет эл-ва, питание сигналки от авто аккума.

Gienekb
Offline
Зарегистрирован: 29.08.2017

kvolk пишет:

Gienekb пишет:

Можно контролировать косвенно, проверяя напряжение + 5 В. Это поможет сэкономить время работы батареи.

Каким образом это сэкономит время работы батареи?

Я написал не так. Нет экономики, но мы будем знать, что устройство работает на самом аккумуляторе. Если это условие длительное, батарея разрядится.

kvolk
Offline
Зарегистрирован: 12.06.2017

Gienekb пишет:

Если это условие длительное, батарея разрядится.

И чего, 60 часов не хватит? Часто у вас более чем на 60 часов электроэнергию отключают? Если отключают целенаправлено перед вскрытием двери, то 60 часов выжидать никто не будет.

Как разрядится, так и зарядится. После подачи электроэнергии за 2-6 часов, в зависимости от токозадающего  резистора на плате контроллера заряда-разряда на TP4056, аккумулятор 18650 будет полностью заряжен.

Gienekb
Offline
Зарегистрирован: 29.08.2017

kvolk пишет:

Gienekb пишет:

Если это условие длительное, батарея разрядится.

И чего, 60 часов не хватит? Часто у вас более чем на 60 часов электроэнергию отключают? Если отключают целенаправлено перед вскрытием двери, то 60 часов выжидать никто не будет.

Как разрядится, так и зарядится. После подачи электроэнергии за 2-6 часов, в зависимости от токозадающего  резистора на плате контроллера заряда-разряда на TP4056, аккумулятор 18650 будет полностью заряжен.

Это одно. Во-вторых, если мы знаем, что нет сетевого напряжения, тогда мы также будем знать, что другие устройства с питанием от сети не работают.

kvolk
Offline
Зарегистрирован: 12.06.2017

Gienekb пишет:

pasha413 - Вы не думали о программном мониторинге сетевого напряжения с уведомлении SMS при пропадании/появлении  ?

Велосипед вы тут изобретаете, просто оставлю это здесь:

Открытый скетч:
Скетч от 18.11.2016. Добавлена sms — команда запроса баланса Money и добавлен тревожный пин (описание в скетче). Занято 73% SRAM;

Скетч от 19.11.2016. Теперь sms — команды не чувствительны к регистру (Info=InFo=INFo=infO). Оптимизация памяти — занято 55% SRAM;

Скетч от 23.11.2016. Добавлен инверсный тревожный пин. Настройки которые могут быть изменены с помощью sms — команд теперь сохраняются при отключении питания устройства. Добавлена команда Reset — сброс на «заводские» установки. Занято 56% SRAM;

Скетч от 24.11.2016. Исправлены некоторые ошибки. Снятие с охраны и постановка на охрану теперь так же сохраняются после отключения питания устройства. Занято 56% SRAM;

Скетч от 02.12.2016. Исправлен баг SYSTEM:AUTO GUARD ON. Теперь команда SmsOff работает правильно. Команда Clear заменена командой ClearSms. Команда Reset заменена командой ResetConfig. Занято 54% SRAM;


Закрытый код:
GSM_03_12_2016-14-38.hex — исправлена работа устройства с модемом M590.

GSM_05_12_2016-13-45.hex — добавлена консольная команда memtest, оптимизация использования оперативной памяти.

GSM_2016_12_06-15-43.hex — добавлен вывод результатов команд в консоль, оптимизация памяти. Занято: 49% SRAM.

GSM_2016_12_07-10-59.hex — теперь телефонные номера добавляются и удаляются правильно. Занято: 49% SRAM, 74% Flash Memory.

GSM_2016_12_07-15-38.hex — добавлена возможность подключения датчика движения HC-SR501, подключается к пину A0 (в данном случае пин A0 используется как цифровой). Добавлены смс — команды PIROn, PIROff. Занято: 48% SRAM, 76% Flash Memory.

GSM_2016_12_08-13-53.hex — Теперь после успешного выполнения команды, которая в ответ не отправляет смс сообщение, устройство однократно мигает синим светодиодом. Теперь после некорректного выполнения команды, которая в ответ не отправляет смс сообщение, устройство дважды мигает синим светодиодом. Теперь после инициализации параметров устройства, если включен «тихий» режим (SendSms = 0), устройство в течение 2 секунд часто мигает синим светодиодом. Исправлена ошибка из-за которой номер не всегда удалялся из памяти командой DeletePhone. Занято: 48% SRAM, 78% Flash Memory.

GSM_2016_12_11-09-12.hex — Добавлены консольные команды AddPhone и DeletePhone, синтаксис аналогичен смс-командам. Оптимизация памяти. Занято: 43% SRAM, 79% Flash Memory.

GSM_2017_01_03-22-51.hex — Реализована поддержка модуля и ему подобных расширителей портов ввода/вывода на чипе PCF8574, для подключения дополнительных 8 датчиков, в том числе герконов. Автоматический поиск адреса и автоматическая настройка модуля. Стандартные названия датчиков и логический уровень их срабатывания изменяется с помощью команды EditSensor. Изменены содержания тревожных смс для основного датчика (пин D0) «Alarm! Main sensor!» и датчика движения (пин A0) «Alarm! PIR sensor!». Добавлены команды EditSensor и I2CScan. Занято: 66% SRAM, 92% Flash Memory.

GSM_2017_01_15-23-26.hex — Поддержка модема A6_Mini. Контроль наличия внешнего питания (пин D7). Добавлены смс команды WatchPowerOn, WatchPowerOff. Добавлены консольные команды ListConfig, ListSensor. Теперь смс команда EditSensor работает правильно. Незначительно «урезан» вывод отладочной информации в монитор порта. Занято: 66% SRAM, 95% Flash Memory.

GSM_2017_01_16-23-54.hex — Теперь в ответном сообщении на смс команду «Info» так же сообщается состояние датчика движения. Исправлена ошибка из-за которой иногда отправлялись пустые ответные смс сообщения. Теперь устройство оповещает не только об отключении, но и о возобновлении внешнего питания. Все модемы стали «меньше болтать», теперь в мониторе порта стало немного чище. Занято: 66% SRAM, 95% Flash Memory.

GSM_2017_02_04-20-23.hex — Исправлена ошибка «Watch the power on». Теперь после снятия с охраны, выключается «тревожный пин». Теперь после удаления номера в консоль выводится правильная информация. Возможно исправлена ошибка из-за которой иногда отправлялись пустые ответные смс сообщения. Занято: 66% SRAM, 90% Flash Memory.

GSM_2017_02_14-00-03.hex — Теперь по умолчанию отправляются смс сообщения, параметр SendSms снова равен 1. Теперь при замыкании контактов основного герконового датчика (закрытии двери) устройство мигает синим светодиодом в течение 2 секунд, сигнализируя о нормальной работе датчика. Занято: 66% SRAM, 90% Flash Memory.

GSM_2017_03_01-23-37.hex — Команда WatchPowerOn удалена. Добавлена консольная команда WatchPowerOff, идентична смс команде. Добавлены команды WatchPowerOn1, WatchPowerOn2. WatchPowerOn1 — мониторинг внешнего питания включен если сигнализация поставлена на охрану, WatchPowerOn2 — мониторинг внешнего питания включен всегда. Реализована функция постановки на охрану и снятия с охраны внешними устройствами, для этого используются выводы A1(D15) и A2(D16). Сигнализация ставит/снимает охрану при появлении на выводе A1(D15) высокого уровня +5В или на выводе A2(D16) низкого уровня GND. Вывод A1(D15) подтягивается к GND, вывод A2(D16) подтягивается к +5V через резисторы 20 (10) кОм. Добавлены команды GuardButtonOn и GuardButtonOff. Теперь после постановки на охрану мигает красный светодиод, пока не будет проверена целостность контура основного герконового датчика. Если контур целый загорается красный светодиод. Занято: 66% SRAM, 95% Flash Memory.

GSM_2017_03_12-20-04.hex — Теперь в консоли стало ещё чище, но если включен тестовый режим «TestOn», то в консоль выводится дополнительная информация. Исправлен баг «Sent!», теперь в консоль правильно выводится информация об отправке сообщений. Исправлен баг «повторного ложного вызова». Теперь запрос баланса должен работать корректно на всех модемах. Занято: 67% SRAM, 95% Flash Memory.

GSM_2017_04_16-12-00.hex — Исправлен баг с тревожным пином. Теперь команды Info и Money всегда будут присылать ответное смс. Команда GuardButtonOn заменена командами GuardButtonOn1 и GuardButtonOn2. Занято: 67% SRAM, 99% Flash Memory.

GSM_2017_04_21-09-43.hex — не рекомендуется к использованию, только в качестве тестирования, спасибо за выявленные ошибки :) — Теперь параметр sendsms не влияет на отправку смс сообщений мониторинга электросети. Добавлена смс команда DelayBeforeGuard отвечающая за задержку при постановке на охрану, значение не может превышать 255 секунд. Добавлена смс команда DelayBeforeAlarm отвечающая за задержку отправки уведомлений и включение «тревожного пина» при срабатывании датчиков, значение не может превышать 255 секунд. Удалены команды ClearSMS, теперь сообщения удаляются автоматически после получения. Занято: 68% SRAM, 100% Flash Memory.

GSM_2017_04_22-20-42.hex — Исправлены множественные ошибки. Команды ClearSMS снова присутствуют в прошивке. Оптимизация памяти. Занято: 68% SRAM, 98% Flash Memory.

GSM_2017_04_23-17-50.hex — Теперь запрос баланса должен работать корректно на всех модемах. Постановка и снятие с охраны внешними устройствами теперь работает правильно. Ответные сообщения смс команды Info не должны быть пустыми. Оптимизация памяти. Занято: 68% SRAM, 98% Flash Memory.

GSM_2017_04_24-13-22.hex — Теперь передача консольных команд в GSM модуль производится только если включен тестовый режим. Теперь нет разделения на смс команды и консольные команды, все существующие команды можно передавать как через смс, так и через консоль. Возможно исправлен баг с командой Info. Оптимизация памяти. Занято: 68% SRAM, 94% Flash Memory.

GSM_2017_04_25-20-54.hex — Исправлен баг при котором команда ListConfig меняла значение последнего события. Теперь при вводе команд через косоль не отправляются ненужные смс сообщения. Возможно исправлен баг с командой Info. Оптимизация памяти. Занято: 66% SRAM, 94% Flash Memory.

GSM_2017_04_30-12-57.hex — Временно включён вывод дополнительной информации в консоль при отправке смс сообщений и формировании ответа на команду Info. Возможно исправлен баг с командой Info. Оптимизация памяти. Занято: 66% SRAM, 92% Flash Memory.

GSM_2017_05_06-11-52.hex — Исправлен баг с функцией DelayBeforeAlarm. Занято: 66% SRAM, 93% Flash Memory.

GSM_2017_05_23-21-27.hex — Незначительно изменён вывод информации в консоль. Добавлена поддержка модулей расширения портов на PCF8574A c адресами от 0x38 до 0x3f включительно. Исправлен баг c AlarmPinTime. Теперь устройство перезагружается автоматически после команд FullReset, ResetConfig, ResetPhone и в случае успешного выполнения команды MemTest. Добавлена команда WatchPowerTime. Теперь возможно установить время, по истечении которого будет отправлено смс сообщение об отключении внешнего источника питания. Занято: 67% SRAM, 94% Flash Memory.

GSM_2017_05_26-20-22.hex — Исправлена инициализация памяти датчиков платы расширения. Изменён синтаксис команды AddPhone. Добавлена команда EditMainPhone. Изменен принцип работы системы уведомлений, при срабатывании датчика сначала будут отправлены sms сообщения, после чего будут совершены голосовые вызовы. Тревожные sms сообщения будут отправлены на телефонные номера с признаком «S» (SMS). Голосовые вызовы будут совершены на номера с признаком «R» (Ring). Сообщения об отключении/включении внешнего источника питания будут отправлены на телефонные номера с признаком «P» (Power). Добавлена команда RingTime. Теперь возможно установить длительность тревожного голосового вызова, параметр может иметь значение от 10 до 255 секунд. Теперь команда RingOn/RingOff глобально включает/отключает оповещение голосовыми вызовами. Добавлена команда ResetSensor. Занято: 68% SRAM, 99% Flash Memory.

GSM_2017_06_02-17-43.hex — Командам AddPhone и EditMainPhone добавлен параметр «I» (Info), отвечающий за sms уведомление о постановке или снятии устройства с охраны. Теперь после добавления основного номера устройство автоматически перезагружается. Теперь можно вносить в память устройства одинаковые номера. При добавлении второго и последующих дублирующихся номеров с них автоматически будут сняты атрибуты «M», «S», «P» и «I». Эти номера будут использованы для повторного голосового вызова при срабатывании датчиков. Исправлен баг кривого вывода в консоль после выполнения команды AddPhone, теперь информация не выводится автоматически после добавления номера. Добавлена команда Reboot. Занято: 69% SRAM, 99% Flash Memory.

GSM_2017_06_11-00-07.hex — Теперь вновь при замыкании контактов основного герконового датчика (закрытии двери) устройство мигает синим светодиодом в течение 2 секунд, сигнализируя о нормальной работе датчика, при этом не учитывается поставлено или снято устройство с охраны. Команды RingOn/RingOff удалены. Теперь устройство можно снять с охраны во время тревожного вызова, теперь они совершаются в фоновом режиме. Занято: 69% SRAM, 99% Flash Memory.

GSM_2017_07_04-21-52.hex — Теперь команда Pause не присылает ответное смс. Удалены команды TestOn и TestOff. У всех номеров удалён признак Management. Занято: 68% SRAM, 96% Flash Memory.

GSM_2017_07_24-12-02.hex — Добавлены команды ReedSwitchOn/ReedSwitchOff для мониторинга основного герконовго датчика, теперь его можно включать/отключать так же как и датчик движения. Исправлен баг команды Info. Команды TestOn и TestOff снова присутствуют в прошивке. Занято: 68% SRAM, 96% Flash Memory.

GSM_2017_07_26-10-03.hex — Добавлена команда ModemID. Автоматическое определение модема осуществляется только если значение этого параметра равно 0. После установки значения параметра равным 0 производится автоматическая перезагрузка устройства. Занято: 68% SRAM, 98% Flash Memory.

GSM_2017_08_03-22-03.hex — Теперь сигнализация может управлять внешними устройствами. Для управления используется аналоговый выход A3 (D17 — используется как цифровой). Логический уровень выхода (+5В или GND) может быть изменен, после изменения уровня через команду настройки устройство автоматически будет перезагружено. Длительность сигнала управления внешним устройством может быть изменена. Добавлены команды ExtDeviceLevelLow, ExtDeviceLevelHigh, ExtDeviceTime, Open. Некоторые изменения в логике работы команд управления. Оптимизация памяти. Занято: 68% SRAM, 99% Flash Memory.

GSM_2017_08_10-12-17.hex — Удалены команды SmsOn/SmsOff, ReedSwitchOn/ReedSwitchOff, PIROn/PIROff и всё что с ними связано. Команда DelayBeforeAlarm заменена расширенными командами. Изменён вывод команды Info. Оптимизирован вывод команды ListConfig в консоль. Теперь к пинам D6 и A0 могут быть подключены любые цифровые датчики с высоким или низким уровнем срабатывания, в том числе герконы. Пины D6 и A0 должны быть притянуты к земле (GND) через сопротивление 10 (20) кОм. Если датчик настроен на низкий уровень срабатывания (включен в режиме геркона), то проверяется целостность цепи. Логический уровень срабатывания по входам D6 и A0 (+5В или GND) может быть изменен, после изменения логического уровня устройство автоматически будет перезагружено. Для каждого из датчиков (main, second, PCF-платы расширения) при срабатывании может быть установлено своё время по истечение которого будет осуществлено уведомление (смс и/или голосовой вызов). «PIR Sensor» переименован в «Second sensor». Исправлена работа платы расширения, ошибка из-за которой устройство всегда уведомляло о срабатывании датчиков, вне зависимости от того поставлено устройство на охрану или нет. Теперь можно выбрать режим работы при котором устройство может мониторить датчики платы расширения как во включенном режиме охраны (GuardOn), так и при выключенном режиме (GuardOff). Добавлены команды PCFForceOn/PCFForceOff, MainSensorLevelHigh/MainSensorLevelLow/MainSensorLevelOff, SecondSensorLevelHigh/SecondSensorLevelLow/SecondSensorLevelOff, MainDelayBeforeAlarm, SecondDelayBeforeAlarm, PCFDelayBeforeAlarm. Занято: 68% SRAM, 99% Flash Memory.
pasha413
Offline
Зарегистрирован: 27.11.2016

kvolk, спасибо за hex, я их ужевидел .
arduino открытая платформа с открытым кодом и архитектурой, а вы не хотите поделиться исходниками. А они могли бы быть образцами для других проектов!

kvolk
Offline
Зарегистрирован: 12.06.2017

pasha413 пишет:
kvolk, спасибо за hex, я их ужевидел . arduino открытая платформа с открытым кодом и архитектурой, а вы не хотите поделиться исходниками. А они могли бы быть образцами для других проектов!

Возможно выложу, но не скоро :(

smesharik
Offline
Зарегистрирован: 31.01.2016

kvolk пишет:

при такой загруженности памяти, у вас адекватно работает?!

у меня когда SRAM к 70% подходил, перестовал модем присылать сообщения, то пустое, по пару слов