Обработка команд от SIM800

Тема в разделе "Arduino & Shields", создана пользователем Irinka, 27 окт 2019.

  1. Irinka

    Irinka Нерд

    Да, именно сим800, потому как есть дистанционные устройства (сигнализация у мужа в гараже), которая работает на основании, так сказать, кода из первого сообщения.
    Хочется привести все к одному правильному алгоритму обработки команд.
     
  2. SergeiL

    SergeiL Оракул Модератор

    СМС-очки?
    Дорого и непрактично.
    Нужно все под интегратор сводить. OpenHAB, Domoticz или подобные.
    OpenHAB работает с 2015-го, только плюсы.
    Сегодня, пока ехал в Финляндию, пришло около 200 пушей по поводу попыток подбора пароля на домашний компьютер.
    Пуши - бесплатно, а считаем сколько это в СМС ?
     
  3. Irinka

    Irinka Нерд

    У меня СМС безлимит, модуль только принимает сообщения и вызовы, поэтому деньги не тратятся.
    Только раз в три месяца делаю исходящий вызов и беру трубку, чтобы было списание, а то сим блокируют.
     
  4. Irinka

    Irinka Нерд

    Была идея сделать на MQTT, но не особо разобралась с протоколом и трафика почему-то тратится многовато, наверно у оператора учёт идёт килобайт по 100 при каждом подключении/отключении
     
  5. SergeiL

    SergeiL Оракул Модератор

    Когда устройство одно - можно и SMS.
    А когда их много - MQTT без вариантов.
    Для MQTT нужен либо один белый IP адрес, для брокера, либо публичный брокер.
    Я устройство с SIM800 делал для машины. Там нет роутера с WiFi.
    Дома порядка 15 устройств с WiFi, подключены к OpenHAB по MQTT.
    Туда же подключаются устройства с дачи, работы, дачи жены.
    Физика разная. WiFi, проводной Ethernet.
     
  6. Irinka

    Irinka Нерд

    А что скажите по моему коду?
     
  7. SergeiL

    SergeiL Оракул Модератор

    Хотите изобретать велосипед?
     
  8. SergeiL

    SergeiL Оракул Модератор

    А что там можно сказать...
    Это тест модуля модема?
    Там же нет обработок "не ответов", таймаутов, ошибок...
     
  9. Irinka

    Irinka Нерд

    Это не тест. Мне нужно чтобы модуль не пропускал незапрашиваемые команды.
    Команда RING приходит при звонке чуть раньше, чем в трубке звучит гудок.
    С моим кодом может быть и два и три гудка перед тем, как модуль увидит это самое сообщение RING.
    То же самое и с СМС. Может пропустить входящее сообщение, а при втором или третьем уже пишетчто их несколько
     
  10. DetSimen

    DetSimen Guest

    тут надо быть очень осторожным и оч. хорошо продумывать лагаритм. Если распашные ворота, которые нужно открыть, находятся в прямой видимости, лучше открывать пультом, если хочется открывать по звонку, не видя ворот, надо следить, чтоб никто не стоял перед ними. Я так один раз попал, мне такие "умные ворота" бочину помяли 7 лет назад, я теперь осторожно всегда возле любых ворот останавливаюсь. Вдруг оне "умные". :)
     
    parovoZZ и SergeiL нравится это.
  11. Irinka

    Irinka Нерд

    Ворота открываются вверх, не знаю как правильно называются, по потолку ездят.
     
  12. parovoZZ

    parovoZZ Гуру

    Роллетные, подъемные...

    ворота? Они что курят?
     
  13. Irinka

    Irinka Нерд

    Ну вот, обсмеяли.
     
    Andrey12 нравится это.
  14. SergeiL

    SergeiL Оракул Модератор

    Ну а что тут скажешь?
    Задача же не просто помигать светодиодом.
    Событий много, их нужно обрабатывать. И это не два экрана кода.
    Поэтому и писал, что проще поискать что-то уже рабочее, и его переделывать под себя.
     
  15. Andrey12

    Andrey12 Гик

    Ну совет то дали хороший, уходите с СМС управления, у меня тоже пока этот анахронизм, очень много времени уходит пока модуль СМС отправит, пока обработает, все остальное ждет.
    То есть тут систему надо както строить с разделением приоритета процессов, но это очередное ограничение.
     
    SergeiL нравится это.
  16. Irinka

    Irinka Нерд

    Модуль только принимает.
    Чуть позже покажу код.
    Дело в том, что пара условий в коде и ардуино не успевает следить за входящими командами от модуля, или модуль притормаживает, если выполняет одну команду и в этот момент на него осуществляется звонок, мне нужно понять кто из них виновник этих тормозов.
     
  17. DetSimen

    DetSimen Guest

    Программист, кто ж еще.
    И, памойму, кому-то пора спать.
     
    Andrey12 нравится это.
  18. Irinka

    Irinka Нерд

    Меня за флуд не выгонят отсюда? :)
    Давно бы уже код выложила, и поверила бы давно все что надумала, сил нет терпеть как за компьютер сесть хочется (да-да, кому чего...) , а поезд все едет и едет... :D:D:D
     
  19. DetSimen

    DetSimen Guest

    Я - нет.
     
  20. Irinka

    Irinka Нерд

    Сразу вопрос по #define
    Есть массив String[] ={"text", "text1", "text2" }
    String потому что использую startsWith и другие строковые команды.
    String занимает больше памяти. Этот массив у меня не меняется в скетче, константа. Можно его как-то в define "вложить"?