Есть такая интересная штука в интернете как "серый" IP. Это все интернет соединения по GPRS. Что 1G, что 4G без разницы. А прикол в том, что интернет работает в одном направлении от клиента в сеть, и пока клиент поддерживает связь она работает. После окончания клиентской сессии если вы захотите обратится к своему устройству - не получиться, нет реального IP адреса у устройства.
Но решение есть! MQTT. По простому - ваше устройство с заданной периодичностью кладет заранее оговоренные данные (по умному - топики) на специальную полочку у специального брокера в интернете и соответственно забирает там ответные данные. Все просто до безобразия и практически в текстовом формате.
Ну например :
Вот вид топика - login/hostname/метрика xxx
login - это логин или emal , который используется для доступа к MQTT брокеру(серверу).
hostname - это имя модуля, устройства.
метрика - это имя датчика или устройства, или же номера GPIO
xxx - это само значение
Устройство нам шлет - login/hostname/датчик температуры 25 = температура 25 град.
А мы ему можем послать - login/hostname/GPIO 1 = переключи GPIO на 1
Вот так все просто и понятно устройство нам сообщает температуру, а мы ему говорим включить или выключить отопление.
Теперь о брокере. Что за зверь ? Да специальный сервер который имеет реальный IP адрес и всегда доступен. Может быть где угодно в интернете или даже на соседнем компьютере в локальной сети. Есть платные, есть бесплатные, есть свой!
Для однозначной идентификации ваших устройств необходима регистрация на брокере.
А как устройство шлет топики и принимает их? Вот тут маленькая проблема, но маленькая. Ваше устройство должно программно уметь это делать самостоятельно. В нем должны быть запрограммированы все топики которыми устройство обменивается с брокером. Но если устройство поддерживает протокол MQTT - то там это точно есть!!!
ВНИМАНИЕ ! Никогда, слышите ? Никогда не ставьте галочку в окне Retain !!!
Пока не узнаете зачем это вам нужно.
А как мы шлем/читаем команды - да элементарно, с мобильного телефона или с компьютера.
Есть специальные программы для этого .....
А теперь подробности - смотрим как сделать настройки на примере ESP8266 с прошивкой WiFi-IoT (во всех программах настройки брокера и топиков аналогичные, но нужна внимательность) :
Рассмотрим хорошего брокера - Сlusterfly.ru - Российский бесплатный брокер – “мы предоставляем доступ к бесплатному mqtt серверу для всех желающих”. Авторизация и регистрация на сервисе возможна через социальные сети. Затем в личном кабинете можно узнать логин и пароль для подключения.
Регистрируемся у брокера и получаем логин и пароль
Для начала рекомендую подключиться к серверу srv2.clusterfly.ru через порт 9991
На данном брокере Login и пароль вы получите автоматически и не надо запрашивать новый пароль, иначе придется перенастраивать модули.
Обязательно записываем пароль для доступа, позже он будет скрыт. Отмечу, что длина пароля больше 10 символов .... это надо учесть в прошивке.
В прошивке модуля ограничение длины поля логина - 20 символов, пароля - 10 символов. В данный момент увеличить длину пароля можно через дополнительную настройку в шестеренке опции... (настройки слетят )
В общем все настройки на брокере на этом и закончились. Осталось ввести в нашем устройстве данные полученные от брокера.
Напоминаю, что во всех примерах используется прошивка WiFi IoT в которой уже встроены поля для настройки.
Заходим во вкладку Servises и заполняем соответствующие поля. Параметры брокера мы уже получили.
НАПОМИНАЮ !!! на главной странице настроек нашего модуля имя устройства должно быть написано латинскими буквами
Config module: Host name:
Вот вид топика - login/hostname/метрика xxxВнимание! Не включайте в настройках MQTT JSON клиент,
пока не узнаете зачем он вам нужен.
После заполнения и сохранения настроек модуля его необходимо перезапустить.
Теперь все данные которые отслеживаются модулем отправляются автоматически по каналу MQTT.
Как проверить ?
На телефоне -
Програмка MQTT Terminal очень простенькая, но красиво показывает топики у брокера. Если указать в поле Subscribe - login/# то программа отобразит весь список существующих модулей и топиков, и самое главное - можно будет увидеть как правильно они пишутся . Если написать login/hostname/# - получим все топики данного модуля, login/hostname/rssi - получим значение RSSI
Итак - запускаем программу и через плюсик в правом нижнем углу переходим в настройки
Так же как и на модуле ESP вводим данные для подключения к srv2.clusterfly.ru
Теперь переходим на поле Subscribe (Подписка на топики) и прописываем волшебные - login/#
Сохраняем настройки и видим все топики которые нам присылает модуль ESP.
Для дальнейшей жизни лучше использовать более удобные для управления программы типа - Mqtt Dashboard куда при настройке нужно прописать увиденные выше топики.
На компьютере-
запустим на компьютере программу для просмотра информации на брокере mqtt-explorer
И видим список всех наших модулей и соответственно их топики.
Не забываем что полный формат наших топиков - login/hostname/метрика xxx
Смотрим как изменяются значения
Итак все работает! Бинго.
|
Есть вопрос по работе Mqtt Dash. Как с Вами связаться, может поможите?
ОтветитьУдалитьsmol1965@gmail.com
ОтветитьУдалитьflyhub не работает
ОтветитьУдалитьИ где тут про него ????
Удалить