Ви можете створити повністю функціональний датчик температури та вологості, інтегрований з Home Assistant, менш ніж за годину, навіть не знаючи C++ або Python.
Контекст і проблема
Розробка розумного дому часто вимагає написання коду, що створює бар’єр для багатьох ентузіастів. Прості завдання, такі як збір даних з датчиків та їх передача в систему автоматизації, можуть займати години програмування, особливо якщо ви не знайомі з мікроконтролерами ESP32 та ESP8266. Навіть використання Arduino IDE вимагає розуміння базової структури скетчів та бібліотек.
Практична реалізація
ESPHome – це фреймворк, який дозволяє конфігурувати пристрої на ESP32/ESP8266 за допомогою YAML-файлів, позбавляючи вас від необхідності писати код. Ми створимо простий датчик температури та вологості, який буде передавати дані в Home Assistant.
Перший крок – встановлення Home Assistant та ESPHome add-on. Завантажте та встановіть Home Assistant Supervised на будь-яку платформу (Raspberry Pi, віртуальна машина, тощо). Далі, в Home Assistant, перейдіть до Add-on Store та встановіть ESPHome.
# esphome.yaml
esphome:
name: my_temperature_sensor
platform: ESP32
board: esp32dev
wifi:
ssid: "YOUR_WIFI_SSID"
password: "YOUR_WIFI_PASSWORD"
api:
password: "YOUR_API_PASSWORD"
sensor:
- platform: dht
pin: GPIO4
model: DHT22
update_interval: 60s
name: "Temperature & Humidity"
unit_of_measurement: "°C"
accuracy_decimals: 1
filters:
- sliding_window_moving_average:
window_size: 60
weighting: 0.5
logger:
level: INFO
status_led:
pin: GPIO2
У цьому YAML-файлі ми визначаємо ім’я пристрою (`my_temperature_sensor`), платформу (`ESP32`), назву дошки (`esp32dev`), налаштування Wi-Fi, API для віддаленого доступу та датчик DHT22, підключений до GPIO4. `update_interval` встановлює інтервал оновлення даних у 60 секунд. `filters` застосовує ковзне вікно для згладжування даних. Переконайтесь, що замінили `YOUR_WIFI_SSID`, `YOUR_WIFI_PASSWORD` та `YOUR_API_PASSWORD` на ваші власні значення.
Наступний крок – завантаження файлу `esphome.yaml` на ESP32. Ви можете завантажити файл через веб-інтерфейс ESPHome в Home Assistant або за допомогою CLI. Після завантаження ESPHome скомпілює конфігурацію та прошиє пристрій.
Типові помилки
- Неправильний SSID/Пароль Wi-Fi: Пристрій не підключиться до мережі, і ви не побачите його в Home Assistant. Перевірте SSID та пароль на предмет помилок. Помилка часто проявляється у вигляді помилок з’єднання у логах ESPHome.
- Неправильний вибір дошки: Якщо ви використовуєте іншу дошку ESP32, ніж `esp32dev`, датчик може не працювати правильно або взагалі не працювати. Виберіть правильну дошку для вашого пристрою в конфігурації.
- Неправильний номер піна датчика: Датчик DHT22 може бути підключений до іншого піна. Переконайтесь, що номер піна у файлі `esphome.yaml` відповідає реальному підключенню.
Результат
Після успішного прошивання пристрій з’явиться в Home Assistant. Ви зможете бачити дані температури та вологості в реальному часі та використовувати їх для автоматизації. Наприклад, ви можете створити сповіщення, якщо температура перевищить 25°C, або автоматично ввімкнути кондиціонер, якщо вологість стане занадто високою. Час від першого YAML файлу до відображення даних у Home Assistant – в середньому 10-15 хвилин, включаючи час компіляції та прошивки.
Спробуйте зараз – завантажте Home Assistant, ESPHome та створіть свій перший пристрій!