По всем вопросам звоните:

+7 495 274-22-22

Реализация «умного дома» на ESP32 через протокол MQTT

В статье рассматриваются актуальные вопросы реализации «умного дома» посредством платы контроллера ESP32. Авторы предоставляют полную инструкцию по настройке и сборке схемы для отслеживания данных состояния помещения.

Литература:

1. Говорухина Т.Н. Алгоритмы управления и обработки информации адаптивными реконфигурируемыми модулями / А.А. Бурмака, Т.Н. Говорухина, А.В. Михайлов // Вестник компьютерных и информационных технологий. – 2015. – № 9 (135). – С. 49–54.

2. Ефремова И.Н. Информационные системы обработки и сжатия текста / В.В. Ефремов, И.Н. Ефремова, В.В. Серебровский, А.А. Черепанов // Научные ведомости Белгородского государственного университета. Серия: Экономика. Информатика. – 2014. – № 1 (172). – С. 182–184.

3. Петрик Е.А. Продукционная модель для параллельной обработки знаний / Е.А. Титенко, Е.А. Петрик, Д.А. Воронин, И.В. Атакищева // Информационно-измерительные и управляющие системы. – 2011. – Т. 9. – № 11. – С. 81–86.

4. Емельянов С.Г., Кобелев Н.С., Алябьева Т.В., Кобелев В.Н., Щедрин П.Ю., Маматов А.А. Патент на изобретение RU 2411437 C2, 10.02.2011. Заявка № 2008152986/06 от 31.12.2008.

ВВЕДЕНИЕ

Реализация автоматизации жилого помещения предполагает большое количество датчиков, которые следят за состоянием в помещении: датчики движения, освещения, температурные и т. д. Когда «умный дом» имеет сравнительно небольшие размеры, монтаж и настройка такой системы выглядят достаточно простыми операциями, основанными на открытых решениях (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