Мини-гайд по MQTT(Управление умным домом). Управление светом на ESP8266. MQTT (Message Queue Telemetry Transport) — упрощённый сетевой протокол, работающий поверх TCP/IP. Используется для обмена сообщениями между устройствами по принципу издатель-подписчик(pub-sub). Возможности(фичи): - Прост в использовании. Протокол представляет собой программный блок без лишней функциональности, который может быть легко встроен в любую сложную систему; - Шаблон проектирования издатель-подписчик удобен для большинства решений с датчиками. Дает возможность устройствам выходить на связь и публиковать сообщения, которые не были заранее известны или предопределены; - Легок в администрировании; - Снижена нагрузка на канал связи; - Работа в условиях постоянной потери связи или других проблем на линии; - Нет ограничений на формат передаваемого контента. Алгоритм работы системы следующий. Клиенты подключаются к серверу и сразу после подключения каждый из них осуществляет подписку на и интересующие его топики. Всё общение между клиентами проходит транзитом через сервер, который перенаправляет данные другим клиентам с учетом их подписок. Для начала нам нужен Broker(сервер, который будет обрабатывать запросы), тут есть пару вариантов: 1) https://www.cloudmqtt.com/ регистрируемся тут с ограничением в 10кб/с(вполне хватит для наших целей), после чего нам выдаст все данные для входа 2)Ставим свой сервер на linux (apt-get install mosquitto и apt-get install mosquitto-clients) и запускаем.(Я использовал этот вариант) Сервер запущен! Теперь: - качаем любую аппку для ведроида(например MQTT Dash). - добавляем свой broker(указываем логин, пароль, хост, порт: по умолчанию 1883) После этого нам надо создать кнопку и указать топик, в которой мы будем публиковать значение(вкл\выкл свет). Например, пусть это будет home/room1/light. (фото №4-5). Теперь заливаем измененный скетч(перед этим ставим библиотеку), все прикреплено. P.S. С linux также можно управлять или подписываться таким образом: mosquitto_pub -h <хост> -t <топик> -m <послание> // публикуем на <хост> в <топик> сообщение <послание> mosquitto_sub -h <хост> -t <топик> // подписываемся #mqtt@club_arduino #mosquitto@club_arduino

Теги других блогов: ESP8266 MQTT Управление умным домом