Протокол MQTT и Wi-Fi модули ESP
Это был долгий период времени, когда я пытался разобраться, по каким принципам работает управление устройствами по Wi-Fi и какие инструменты использовать для этого.
Протокол MQTT
Для экспериментов я выбрал протокол MQTT. Он был разработан для общения умных устройств и принцип его работы похож на Youtube.
Все устройства коннектятся к Wi-Fi и подключаются к MQTT серверу (брокеру). Брокер отвечает за доставку сообщений между клиентами.
С одной стороны у нас есть устройства, которым есть что рассказать. Они делают свои каналы и постят туда контент. Например, датчик температуры каждую минуту отправляет в свой канал актуальную температуру.
С другой стороны есть устройства, поведение которых зависит от внешних данных. Они подписываются на нужные каналы и ждут обновлений. Это могут быть не только данные с датчиков, но и команды типа включить/выключить, повернуть, поехать определенное количество метров.
Также связь может быть не односторонней. Устройства может принять команду, выполнить какие-то действия и отправить данные в ответ.

MQTT брокер можно установить как на компьютере в локальной сети, так и на сервере в интернете. Для того, чтобы попробовать работу протокола я купил Wi-Fi точку с OpenWRT и поставил на нее свой первый MQTT брокер. Взял 2 телефона и настроил на них одинаковые каналы и интерфейсы. Изменяя параметры на одном телефоне, я видел как они тут же меняются на втором. Я был поражен как быстро и стабильно это всё работает!

Модули ESP8266
После того как стало понятно, как передавать данные, осталось выяснить, как сделать устройства, которые будут реагировать на эти данные. Я выбрал модули на базе чипов ESP из-за их большого разнообразия и доступности. Кроме плат разработки была еще куча готовых устройств, которые тоже можно прошить под свои задачи.



Я написал первую прошивку с MQTT клиентом, попробовал отправлять и получать данные. А потом подключил к плате все датчики для Arduino, которые нашел у себя дома. Подключал реле и моторы. Прошил все устройства Sonoff, которые смог купить и попробовал кучу разных готовых прошивок.






И каждый раз меня поражало как быстро и надёжно срабатывает передача данных!
Собрал пару стендов для демонстрации работы модулей:
Демонстрационный стенд





Другие статьи


