Чтоб соединение не отлетало, нужно пинговать брокер (C0, 00) и контролироать соединение по ответам. Cоответствующие пакеты тоже подробно описаны в солюшне
2019-12-05 18:16:58: Log cleared by user
2019-12-05 18:17:08: New connection from 176.59.100.9 on port 11481.
2019-12-05 18:18:38: Client <unknown> has exceeded timeout, disconnecting.
и чудненько!!!
В каком смысле?
в том смысле, что повезло вашему мужу...понадобился к примеру ему MQTT и, тут как в известной песне...
"мне теперь не надо гладить брюки,
помощь мне прислуги не нужна, у меня для этой самой штуки,
есть своя законная жена ..."
2019-12-05 18:16:58: Log cleared by user
2019-12-05 18:17:08: New connection from 176.59.100.9 on port 11481.
2019-12-05 18:18:38: Client <unknown> has exceeded timeout, disconnecting.
и чудненько!!!
В каком смысле?
В прямом, сервер подождал 30 секунд данные и отключился. Я ж выше давал ссылку на описание и пример команд и там чёрным по русски было написано что в пакете connect указывать время соединения, будьте добры или данные отправлять каждые 20 секунд или переподключаться.
const word MQTT_Keep_Alive= 600;//10 минут
byte hiKA = highByte(MQTT_Keep_Alive); // старший байт
byte lowKA = lowByte(MQTT_Keep_Alive); // младший байт
SIM800.write(hiKA);//Keep Alive LSB
SIM800.write(lowKA);//Keep Alive LSB
Mqtt подразумевает работу в "интернет устройствах" соответственно отправил, принял, отсоеденился, где то я читал что рекомендуется делать короткий connect пакет, и отправлять пакеты ping каждые x секунд, контролировать ответ и если корректного ответа нет - переподключаться
я делал таймаут 20 минут. Посылал данные на брокер раз в 10 минут. и все равно с брокера выкидывало. Сделал отсылку данных на брокер раз в 2 минуты , проблема пропала.
Подскажите а как обрабатывать ответы от брокера. В монитор порта приходит символ квадратика и перекодировать не могу. Уже вычитал что командой AT+CIPHEAD=1 можно подставить заголовок +IPD, но и тут засада, не хочет записываться в переменную. Вернее в командном режиме все что приходит не от Sim 800, просто игнорируется. Разъясните плиз.
Потому что это байты меньше 0x20 или больше 0x7f, а обрабатывать согласно протокола mqtt, там все написано.
Тут тема есть
Снова MQTT
В ней много интересного
Чтоб соединение не отлетало, нужно пинговать брокер (C0, 00) и контролироать соединение по ответам. Cоответствующие пакеты тоже подробно описаны в солюшне
А чуть позже на сервере
и чудненько!!!
В каком смысле?
в том смысле, что повезло вашему мужу...понадобился к примеру ему MQTT и, тут как в известной песне...
"мне теперь не надо гладить брюки,
помощь мне прислуги не нужна,
у меня для этой самой штуки,
есть своя законная жена ..."
;-)))
А чуть позже на сервере
и чудненько!!!
В каком смысле?
Правильно ставлю время 10 минут?
Mqtt подразумевает работу в "интернет устройствах" соответственно отправил, принял, отсоеденился, где то я читал что рекомендуется делать короткий connect пакет, и отправлять пакеты ping каждые x секунд, контролировать ответ и если корректного ответа нет - переподключаться
я делал таймаут 20 минут. Посылал данные на брокер раз в 10 минут. и все равно с брокера выкидывало. Сделал отсылку данных на брокер раз в 2 минуты , проблема пропала.
а как же эксперименты?
Подскажите а как обрабатывать ответы от брокера. В монитор порта приходит символ квадратика и перекодировать не могу. Уже вычитал что командой AT+CIPHEAD=1 можно подставить заголовок +IPD, но и тут засада, не хочет записываться в переменную. Вернее в командном режиме все что приходит не от Sim 800, просто игнорируется. Разъясните плиз.
Потому что это байты меньше 0x20 или больше 0x7f, а обрабатывать согласно протокола mqtt, там все написано.
Тут тема есть
Снова MQTT
В ней много интересного