ВВЕДЕНИЕ
Реализация автоматизации жилого помещения предполагает большое количество датчиков, которые следят за состоянием в помещении: датчики движения, освещения, температурные и т. д. Когда «умный дом» имеет сравнительно небольшие размеры, монтаж и настройка такой системы выглядят достаточно простыми операциями, основанными на открытых решениях (MQTT, OpenHAB и т. д.) [1].
MQTT (Message Queuing Telemetry Transport) представляет из себя упрощённый сетевой протокол для обмена сообщениями между устройствами по принципу брокер-подписчик [2]. Брокер создает топик (канал передачи сообщений) и отсылает значения по выбранным топикам. Подписчик, в свою очередь, получает значения по выбранным топикам.
Для реализации умного дома нужны следующие компоненты:
1. Плата ESP32.
2. Светодиод.
3. Датчик температуры и влажности DHT22.
4. SPI адаптер (нужен для SD карт).
Объединим компоненты по схеме, представленной на рис. 1.
На стороне клиента будет использоваться смартфон с приложением IoT MQTT [3]. На стороне сервера используем реализацию MQTT server Mosquitto. Для отслеживания всех топиков в сети используем команду:

Чтобы опубликовать топик:

При подключении устройства к MQTTброкеру используются топики вида:
1. smart/bedroom/lamp (значение представляет собой либо «1», либо «0», соответственно вкл. или выкл. состояния светодиода).
2. smart/bedroom/temp (значением является число с плавающей запятой, обозначающее температуру в помещении).
Сценарий, работающий на сервере, загружает список топиков из /smart/, ищет устройства, которых нет в OpenHAB, и создает для них конфиг. файлы. Посредством смартфона будем публиковать топик 1 и принимать значения топика 2. Плата ESP32, в свою очередь, будет принимать значения топика 1 и публиковать топик 2.
ВЫВОДЫ
Код выполняет соединение к Wi-Fi точкедоступа в квартире и подключается к брокеру [4]. Значения отсылаются раз в 3 секунды. Брокер устроен так, что на смартфон будут отправлены только те значения топиков, на которые он подписан. Таким образом данные не перегружают сеть.
В приложении на смартфоне нужно ввести IP-адрес брокера и соответствующий топик. Количество датчиков может дополнятся, нужно лишь интегрировать датчик в схему и добавить топик.

Рис. 1. Схема интеграции платы ESP32