Сборка ёмкостного датчика уровня воды для умного дома на ESP8266

Часть 1. Необходимые компоненты

Для реализации проекта потребуется приобрести следующие электронные компоненты и модули:

  • Микроконтроллер Wemos D1 Mini на базе ESP8266 – стоимостью примерно 150-200 рублей. Это плата с Wi-Fi, выступающая в роли управляющего ядра системы.
  • Ёмкостный датчик приближения XKC-Y25-NPN – стоимость около 500 рублей. Данный сенсор можно найти на популярных маркетплейсах. Его внешний вид представлен ниже.
  • Резистор номиналом 10 кОм – ориентировочная цена 5 рублей.
  • Набор соединительных проводов типа «папа-папа» – 5 рублей.
  • USB-кабель (Micro-USB или Type-C в зависимости от версии платы) для программирования и подачи питания – около 100 рублей.
  • Блок питания с выходным напряжением 5 В и током 1-2 А – стоимость в районе 400 рублей.

Таким образом, общая ориентировочная стоимость одного датчика уровня воды составляет примерно 1210 рублей. Существенную экономию можно получить, используя уже имеющиеся блоки питания и кабели.

Часть 2. Принцип действия датчика

Датчик XKC-Y25-NPN функционирует на основе ёмкостного метода измерения. Он генерирует слабое электрическое поле и фиксирует изменения ёмкости при попадании в зону чувствительности диэлектрического материала, например, воды. Это делает его превосходным решением для задач, где необходим бесконтактный контроль уровня жидкости, как в аквариумах или системах гидропоники. В отличие от механических поплавков, такой датчик не имеет движущихся частей, не загрязняется и не контактирует напрямую с жидкостью. Его достаточно закрепить на внешней стенке прозрачной ёмкости.

Ключевые условия корректной работы:

  • Датчик монтируется строго с наружной стороны резервуара.
  • Между чувствительной площадкой датчика и стенкой не должно быть воздушного зазора. Для обеспечения плотного прилегания используют оптический силиконовый гель или двусторонний скотч.
  • Чувствительность зависит от толщины и материала стенки. Встроенный подстроечный резистор позволяет выполнить калибровку. Для распространённых материалов, таких как стекло, акрил, ПВХ или полипропилен толщиной до 10 мм, работа, как правило, стабильна. Теоретически датчик может работать через тонкую керамику (около 5 мм) или дерево, однако в последнем случае возможны погрешности из-за гигроскопичности материала.
  • Через металлические стенки датчик работать не будет, так как металл экранирует электромагнитное поле.

Часть 3. Электрическая схема подключения

Схема коммутации компонентов отличается простотой:

  • Жёлтый провод датчика подключается к цифровому пину D5 на плате Wemos D1 Mini.
  • Коричневый провод (питание) соединяется с выводом 5V на плате.
  • Синий провод (земля) подключается к выводу GND.
  • Чёрный провод в данной конфигурации не используется.
  • Резистор 10 кОм устанавливается между пином D5 и шиной 5V (подтяжка к питанию).

После выполнения соединений аппаратная часть готова к работе.

Часть 4: Настройка в среде ESPHome

Для программирования микроконтроллера используется платформа ESPHome, интегрированная с Home Assistant. Общий процесс загрузки прошивки детально описан в соответствующих руководствах. Краткий алгоритм действий:

1) В интерфейсе ESPHome создаётся новое устройство для платформы ESP8266.
2) Необходимый конфигурационный файл (YAML) копируется из репозитория GitHub.
3) Содержимое файла полностью вставляется в конфигурацию нового устройства. Важно не забыть перенести параметр ota: password из автоматически сгенерированного шаблона.
4) Внимательно изучаются все комментарии в коде, особенно касающиеся первоначального тестирования и инверсии сигнала.
5) Для первой прошивки используется метод «Plug into this computer» через ESPHome Web. Плата на этом этапе должна быть подключена к компьютеру кабелем USB.
6) Все последующие обновления прошивки можно выполнять «по воздуху» (Wirelessly), при условии, что устройство включено и подключено к сети Wi-Fi.

Часть 5: Верификация работы в Home Assistant

После сборки, прошивки и подачи питания следует проверить работоспособность системы. В Home Assistant необходимо открыть лог созданного устройства. Для первичного тестирования чувствительности датчика можно использовать любую проводящую среду, например, поднести к нему руку. При срабатывании на датчике загорится светодиод, а в логах появится соответствующее сообщение об изменении состояния. Если тест пройден успешно, конфигурацию следует обновить согласно рекомендациям в коде (например, изменить уровень логирования и закомментировать отладочные блоки). В случае неудачи нужно проверить все этапы сборки и настройки.

Часть 7: Создание автоматизаций для Telegram

Для оперативного оповещения о критических состояниях настраиваются автоматизации в Telegram. Важно понимать принципиальное отличие ёмкостного датчика от, например, цифрового термометра DS18B20. Микроконтроллер определяет состояние датчика XKC-Y25 только по факту наличия или отсутствия тока через его выход. Таким образом, невозможно различить ситуацию «датчик неисправен» и «вода отсутствует», но для большинства сценариев контроля уровня обе эти ситуации являются критическими и требуют реакции.

Создаются две автоматизации:

1. Устранение проблемы. Триггером служит восстановление связи с устройством (датчик подключается) ИЛИ изменение состояния датчика уровня воды с «проблемного» на «Обнаружена». Действием является отправка в заданный Telegram-чат структурированного сообщения об устранении неполадки с данными об имени устройства и текущем статусе.

2. Обнаружение проблемы. Эта автоматизация дублирует первую, но с противоположными условиями. Триггеры настраиваются на отключение устройства (с задержкой в несколько минут для фильтрации кратковременных сбоев сети) и на переход датчика уровня в статус, указывающий на отсутствие воды. Сообщение в Telegram при этом будет сигнализировать о возникновении нештатной ситуации.

Для корректной настройки необходимо использовать точные entity_id датчиков, которые можно найти в разделе «Инструменты разработчика» → «Состояния» интерфейса Home Assistant.

Часть 8: Команды Telegram для ручной проверки статуса

Для удобства мониторинга можно добавить в Telegram-бота команды для запроса текущего состояния датчика. Это реализуется двумя основными способами в зависимости от типа используемого меню:

1) Добавление пункта «Наличие воды» с командой /water в основное меню бота и создание соответствующей автоматизации, реагирующей на callback-данные.
2) Добавление команды /water непосредственно в список команд бота (через BotFather) и создание автоматизации, срабатывающей на тип события telegram_command.

В обоих случаях в ответном сообщении будет выводиться актуальная информация об устройстве и датчике, скопированная из текста алертов.

Часть 9: Интеграция датчика на панель управления

Для визуализации данных датчик уровня воды добавляется на панель управления (Lovelace Dashboard) в Home Assistant. Используется карточка типа «Объекты» (Entities Card). В её настройках указываются entity_id самого датчика уровня, а также сенсора, отображающего время работы устройства (аптайм). Правильная организация пространства на панели, включая расстановку мебели и оборудования, так же важна для эффективного контроля, как и оптимальные планировки для малогабаритных кухонь. Грамотная компоновка элементов интерфейса и физических объектов значительно повышает удобство использования системы. В итоге на панели будет отображаться текущий статус наличия воды и время непрерывной работы контроллера.

Часть 10: Итоги проделанной работы

В рамках данного руководства был выполнен комплекс задач по созданию системы мониторинга уровня воды:

  • ✅ Собрано аппаратное устройство на базе Wemos D1 Mini и датчика XKC-Y25-NPN.
  • ✅ Написан и загружен конфигурационный код через ESPHome.
  • ✅ Настроены автоматические оповещения в Telegram о критических изменениях.
  • ✅ Реализованы команды для ручного запроса статуса через Telegram-бота.
  • ✅ Настроено меню взаимодействия в Telegram.
  • ✅ Данные с датчика интегрированы в общую панель управления умным домом.

Представленный сценарий покрывает основные потребности в мониторинге. При необходимости его можно расширить и доработать.

Часть 11: Планы на будущее

Направления для дальнейшего развития проекта могут включать:

1) Создание эстетичных и информативных дашбордов для комплексной визуализации данных.
2) Исследование и интеграцию альтернативных датчиков для контроля уровня жидкости в различных условиях.
3) Внедрение систем диагностики оборудования, например, по анализу вибрации или потребляемого тока.
4) Разработку систем автоматического управления мощными нагрузками на основе полученных данных.

Комментарии

?
4 + 2 = ?