Разбираемся, как связка ESP32 и ESPHome позволяет собрать датчик под любую задачу без программирования — и почему это дешевле и гибче коробочных решений.
ESP32 в связке с ESPHome — это, пожалуй, самый доступный способ собрать датчик для умного дома под конкретную задачу, не переплачивая за коробочное решение. Подходит тем, кто готов потратить вечер на настройку в обмен на полный контроль над тем, что происходит с данными и как устройство себя ведёт.
ESP32 — небольшой микроконтроллер с встроенными модулями Wi-Fi и Bluetooth. Производит его компания Espressif, и за несколько лет он стал стандартом де-факто для DIY-проектов в сфере умного дома: дёшево, мощно, огромное сообщество. Сам по себе ESP32 — просто «железо»; чтобы оно делало что-то полезное, нужна прошивка.
ESPHome — это прошивка и одновременно инструмент её создания. Вы описываете поведение устройства в простом YAML-файле: какой датчик подключён, к какому пину, как часто снимать показания, куда отправлять данные. ESPHome компилирует из этого описания готовый код и заливает его на ESP32. Никакого программирования на C++ — только конфигурация. Любопытно, что тот же подход работает и для старшего брата, ESP8266, но ESP32 за счёт двух ядер и большего объёма памяти заметно стабильнее при сложных сценариях.
Связка замыкается на Home Assistant — опенсорсную платформу управления умным домом. ESPHome изначально создавался как его дополнение, и интеграция между ними буквально однокнопочная: устройство появляется в интерфейсе Home Assistant автоматически, без ручной настройки MQTT или REST.
Двойной процессор и объём памяти. ESP32 работает на двух ядрах до 240 МГц и имеет несколько сотен килобайт оперативной памяти — этого хватает для одновременного опроса нескольких датчиков, работы с дисплеем и поддержки Wi-Fi-соединения без зависаний.
Большое число пинов ввода-вывода. Типичная плата предлагает 30–38 пинов, среди которых есть аналоговые входы, шины I2C и SPI, UART — можно подключить сразу несколько датчиков разных типов на одну плату.
Встроенный Bluetooth. В отличие от многих аналогов, ESP32 поддерживает как классический Bluetooth, так и BLE. На практике это позволяет, например, принимать данные с Bluetooth-термометров и ретранслировать их в Wi-Fi-сеть.
Энергопотребление в режиме глубокого сна. ESP32 умеет уходить в режим глубокого сна с потреблением около 10 мкА — критично для батарейных датчиков, которые должны работать месяцами без подзарядки.
Стоимость. Голая плата ESP32 в типовом исполнении стоит от 200 до 600 рублей в зависимости от форм-фактора и продавца. Это кратно дешевле любого коммерческого датчика с сопоставимыми возможностями.
Самый распространённый старт — датчик на базе DHT22 или BME280. Подключаете сенсор к ESP32, прописываете в ESPHome пару строк конфигурации, и через несколько минут в Home Assistant появляется карточка с показаниями. BME280 дополнительно измеряет атмосферное давление, что удобно для прихожей или метеостанции на балконе. По опыту пользователей, один ESP32 легко опрашивает два-три сенсора по шине I2C — это дешевле, чем покупать три отдельных устройства.
ESP32 в паре с сенсором CO₂ (например, MH-Z19 или SCD40) и датчиком частиц (PMS5003) даёт полноценную станцию мониторинга воздуха. ESPHome поддерживает оба сенсора «из коробки» — нужно лишь указать тип и пин подключения. Такую станцию часто размещают в детской или рабочем кабинете, где важно отслеживать концентрацию CO₂ и вовремя проветривать.
Резистивный датчик воды стоит буквально несколько рублей, но в связке с ESP32 и ESPHome превращается в систему оповещения с push-уведомлениями и возможностью автоматически перекрыть кран через умную розетку или реле. Устанавливают под стиральную машину, посудомойку или под раковину. Честно говоря, это один из случаев, когда DIY-решение работает ничуть не хуже коммерческого — и стоит в пять раз дешевле.
PIR-сенсор (например, HC-SR501) — простейший вариант для детектирования движения. Но интереснее — миллиметровый радар LD2410, который поддерживает ESPHome и умеет отличать движение от статичного присутствия: фиксирует человека, который просто сидит в кресле. Это меняет логику автоматизации: свет не гасится, пока в комнате кто-то есть, даже если не двигается.
С режимом глубокого сна ESP32 просыпается раз в несколько минут, снимает показания, отправляет их и снова засыпает. На батарее 18650 такой датчик живёт от нескольких недель до нескольких месяцев — зависит от частоты опроса и качества Wi-Fi-сигнала. Подходит для теплицы, гаража или почтового ящика с датчиком открытия.
Основной транспорт — Wi-Fi, и это одновременно сила и слабость. Сильная сторона: ESP32 c ESPHome работает с любой системой, которая понимает MQTT или HTTP. Слабая: Wi-Fi потребляет больше энергии, чем Zigbee или Z-Wave, и при плохом покрытии устройство может периодически выпадать из сети.
Нативная интеграция — с Home Assistant через протокол ESPHome API. Устройство обнаруживается автоматически, данные передаются в зашифрованном виде, OTA-обновления прошивки доступны прямо из браузера. Это работает без облака и без регистрации — всё локально.
Через MQTT ESPHome-устройства можно подключить к OpenHAB, Node-RED, ioBroker и другим платформам. Кстати, поддержка Matter в ESPHome появилась в экспериментальном режиме — это открывает путь к Apple Home и Google Home, хотя на момент написания статьи функция ещё не считается стабильной.
Thread и Zigbee ESP32 не поддерживает нативно — это принципиально другие радиопротоколы, для них нужны другие чипы. Если вам важна работа без Wi-Fi-инфраструктуры, ESP32 не лучший выбор.
Плюсы:
Минусы:
Форм-факторов ESP32 много: классический DevKit, компактный ESP32-C3, вариант с дисплеем M5Stack, версии с батарейным контроллером. Для стационарных датчиков подойдёт любой DevKit. Если планируете батарейное питание — ищите платы с разъёмом для Li-Ion и схемой управления зарядкой, иначе придётся добирать компоненты отдельно.
Сенсоры выбирайте из списка поддерживаемых компонентов ESPHome — он есть в официальной документации. Это гарантирует, что вам не придётся писать код с нуля. Обращайте внимание на интерфейс подключения: I2C-датчики удобнее всего, потому что требуют всего двух сигнальных проводов и легко объединяются по одной шине.
Нужно ли уметь программировать, чтобы работать с ESP32 и ESPHome? Базовые знания не обязательны — ESPHome использует YAML-конфигурацию, которую можно освоить за несколько часов по официальной документации. Писать код на C++ придётся только для нестандартных сценариев, которых нет в библиотеке компонентов.
Будут ли ESPHome-датчики работать без интернета? Да. ESPHome и Home Assistant работают полностью локально: данные не покидают домашнюю сеть. Интернет нужен только для первоначального скачивания прошивки и обновлений.
Как долго ESP32-датчик работает от батареи? Зависит от сценария. С режимом глубокого сна и опросом раз в 5 минут — от одного до нескольких месяцев на аккумуляторе 18650. При постоянной работе с Wi-Fi — дни или недели. Точные цифры сильно зависят от качества сигнала и типа сенсора.