Мини-гайд по MQTT. Управление светом на ESP8266.

Мини-гайд по MQTT. Управление светом на ESP8266.

GreenPanda

MQTT (Message Queue Telemetry Transport) — упрощённый сетевой протокол, работающий поверх TCP/IP. Используется для обмена сообщениями между устройствами по принципу издатель-подписчик(pub-sub).

Фичи

- Слишком простой. Протокол представляет собой программный блок без лишней функциональности, который может быть легко встроен в любую сложную систему;

- Шаблон проектирования издатель-подписчик удобен для большинства решений с датчиками. Дает возможность устройствам выходить на связь и публиковать сообщения, которые не были заранее известны или предопределены;

- Легок в администрировании;

- Снижена нагрузка на канал связи;

- Работа в условиях постоянной потери связи или других проблем на линии;

- Нет ограничений на формат передаваемого контента.

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

Принцип работы протокола

Начнем

Для начала нам нужен Broker(сервер, который будет обрабатывать запросы), тут есть пару вариантов:

1) Регистрируемся тут с ограничением в 10кб/с(чего собсна хватит), после чего нам выдаст все данные для входа

2)Ставим свой сервер на linux и запускаем.

apt-get install mosquitto
apt-get install mosquitto-clients

Сервер запущен! Теперь:

- качаем любую аппку для ведроида(например MQTT Dash).

- добавляем свой broker(указываем логин, пароль, хост, порт: 1883(по дефолту))

После этого нам надо создать кнопку и указать топик, в которой мы будем публиковать значение(вкл\выкл свет). Например, пусть это будет home/room1/light.

Кнопка Btn light с топиком home/room1/light и отправкой on или off

Теперь заливаем измененный скетч(перед этим ставим библиотеку), все прикреплено.

Папка с библиотекой и скетчем для ESP8266 в Arduino IDE.

P.S. С linux также можно управлять или подписываться таким образом:

mosquitto_pub -h <хост> -t <топик> -m <послание> // публикуем на <хост> в <топик> сообщение <послание>
mosquitto_sub -h <хост> -t <топик> // подписываемся

Я только учусь

Report Page