Интеграция датчика давления воды PT-506 (24В) с ESP8266 NodeMCU v3 и Home Assistant
Датчик давления воды PT-506 (24В) — это устройство, которое измеряет давление воды и предоставляет выходной сигнал в виде напряжения (10-33В постоянного тока). В этом руководстве мы рассмотрим, как подключить этот датчик к микроконтроллеру ESP8266 NodeMCU v3, настроить прошивку с помощью ESPHome и интегрировать устройство с Home Assistant для мониторинга давления воды.
Компоненты, необходимые для проекта:
- Датчик давления воды PT-506 (24В):
- Устройство, которое измеряет давление воды и выдает выходной сигнал в виде напряжения (10-33В).
- Микроконтроллер ESP8266 NodeMCU v3:
- Бюджетный микроконтроллер с Wi-Fi, который позволяет передавать данные с датчика в Home Assistant.
- Делитель напряжения:
- Резисторы для создания делителя напряжения (например, 10 кОм и 22 кОм), чтобы снизить напряжение до уровня, безопасного для ESP8266 (0-3.3В).
- Провода для подключения.
Шаг 1: Подключение датчика PT-506 к ESP8266
Датчик PT-506 выдает напряжение в диапазоне 10-33В, что превышает допустимый диапазон ESP8266 (0-3.3В). Поэтому необходимо использовать делитель напряжения, чтобы снизить напряжение до безопасного уровня.
Схема подключения:
- Подключите выходной сигнал датчика PT-506 к одному концу резистора R1 (например, 22 кОм).
- Другой конец резистора R1 подключите к аналоговому входу ESP8266 (например, A0).
- Подключите резистор R2 (например, 10 кОм) между аналоговым входом ESP8266 и GND.
- Подключите общий провод (GND) датчика и ESP8266.
Пример схемы:
PT-506 (Vout) --- [22 кОм] --- A0 (ESP8266) --- [10 кОм] --- GND
Шаг 2: Настройка прошивки с помощью ESPHome
ESPHome — это удобный инструмент для создания прошивки для устройств на базе ESP8266 и ESP32. Мы будем использовать его для настройки ESP8266 для работы с датчиком PT-506.
Установка ESPHome:
- Установите ESPHome в Home Assistant:
- Перейдите в “Настройки” > “Дополнения” > “Добавить сторонний репозиторий”.
- Введите URL репозитория ESPHome:
https://github.com/esphome/home-assistant-addon
. - Установите дополнение ESPHome.
- Откройте ESPHome через веб-интерфейс Home Assistant или командную строку.
Создание конфигурации ESPHome:
- Откройте ESPHome и создайте новый проект для вашего устройства.
- Выберите тип устройства: ESP8266.
- В разделе “Configuration” вставьте следующий код:
esphome:
name: water_pressure_sensor
platform: ESP8266
board: nodemcuv2
wifi:
ssid: "your_SSID"
password: "your_PASSWORD"
# Enable logging
logger:
# Enable Home Assistant API
api:
# ADC sensor configuration
sensor:
- platform: adc
pin: A0
name: "Water Pressure"
unit_of_measurement: "PSI"
filters:
- calibrate_linear:
- 0.0 -> 0.0 # Минимальное значение (настройте под свой датчик)
- 3.3 -> 150.0 # Максимальное значение (настройте под свой датчик)
update_interval: 10s
- Настройте параметры
calibrate_linear
в зависимости от диапазона вашего датчика. Например, если датчик измеряет давление от 0 до 150 PSI, а выходное напряжение меняется от 10 до 33В, используйте следующие значения:- 0.0 -> 0.0 (минимальное значение).
- 3.3 -> 150.0 (максимальное значение).
- Сохраните конфигурацию и загрузите её на ESP8266 через USB.
Шаг 3: Интеграция с Home Assistant
После загрузки прошивки ESPHome на ваше устройство, оно автоматически появится в Home Assistant.
Настройка дашборда в Home Assistant:
- Перейдите в “Настройки” > “Устройства и службы”.
- Найдите ваше устройство (например,
water_pressure_sensor
) и добавьте его. - Создайте дашборд для отображения данных с датчика:
- Перейдите в “Настройки” > “Дашборды” > “Создать дашборд”.
- Добавьте карточку “График” или “Число” для отображения давления воды.
Пример конфигурации дашборда:
type: picture-elements
image: /local/background.jpg
elements:
- type: gauge
entity: sensor.water_pressure
name: Давление воды
min: 0
max: 150
unit: PSI
style:
top: 50%
left: 50%
Шаг 4: Настройка автоматизаций
Вы можете создать автоматизации в Home Assistant для отправки уведомлений, если давление воды выходит за допустимые пределы.
Пример автоматизации:
alias: Low Water Pressure Alert
description: Отправить уведомление, если давление воды ниже 30 PSI
trigger:
- platform: numeric_state
entity_id: sensor.water_pressure
below: 30
action:
- service: notify.notify
data:
message: "Давление воды ниже нормы: {{ states('sensor.water_pressure') }} PSI!"
Также пример полезной автоматизации: это отключение насоса воды при отсутствии давления в системе более 10 сек. В данной автоматизации необходимо дополнительное устройство в виде wifi \ zigbee реле или din автомата для отключения конечного устройства.
Подробнее бы, какой датчик купить, какой 8266 использовался и на какую ногу цеплял. В коде указана пин 34, а на фотке вроде wemos d1 mini, у которого нет такой ноги.