Защита от протечек
Re: Защита от протечек
Хорошее и понятное описание как пользоваться пинами esp01 и как с ними работать: http://www.forward.com.au/pfod/ESP8266/ ... magic.html
Re: Защита от протечек
Прошивка eps01s переведена на ESPHome, так работает стабильнее и нативно интегрируется в HA:
PLATFORM: Espressif 8266 (3.2.0) > Espressif Generic ESP8266 ESP-01 1M
HARDWARE: ESP8266 80MHz, 80KB RAM, 1MB Flash
PACKAGES:
- framework-arduinoespressif8266 @ 3.30002.0 (3.0.2)
- tool-esptool @ 1.413.0 (4.13)
- toolchain-xtensa @ 2.100300.210717 (10.3.0)
Конфиг:
Компилиться в такое:
RAM: [==== ] 40.4% (used 33084 bytes from 81920 bytes)
Flash: [==== ] 40.9% (used 418633 bytes from 1023984 bytes)
PLATFORM: Espressif 8266 (3.2.0) > Espressif Generic ESP8266 ESP-01 1M
HARDWARE: ESP8266 80MHz, 80KB RAM, 1MB Flash
PACKAGES:
- framework-arduinoespressif8266 @ 3.30002.0 (3.0.2)
- tool-esptool @ 1.413.0 (4.13)
- toolchain-xtensa @ 2.100300.210717 (10.3.0)
Конфиг:
Код: Выделить всё
esphome:
name: water-alarm-tualet
esp8266:
board: esp01_1m
wifi:
ssid: "ваш ssid"
password: "ваш пароль к wifi"
reboot_timeout: 30s
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "Mike Esphome Fallback Hotspot"
password: "9S"
web_server:
port: 80
# создаем датчик, который следит за появлением нуля на пине, что означает срабатывание датчика протечки
binary_sensor:
- platform: gpio
id: id_water_alarm_tualet
name: "water alarm tualet pin"
pin:
number: GPIO0
inverted: true
mode:
input: true
pullup: true
# создаем датчик (только как выход по отношению к GPIO) только для управлением пищалкой (бузером)
output:
- platform: gpio
id: id_active_buzzer
pin:
number: GPIO2
inverted: true
# создаем "таймер" выполняющийся всегда с заданным интервалом. Используется именно он, т.к. остальные реализации это либо с помощью глобального времени синхронизируемого по ntp или блокирующий delay
interval:
- interval: 5s
then:
- logger.log: "Interval 5s executing"
- if: # если сработал датчик протечки, то пищим прерывисто
condition:
binary_sensor.is_on: id_water_alarm_tualet
then:
- logger.log: "Biip"
- output.turn_on: id_active_buzzer
- delay: 500ms
- output.turn_off: id_active_buzzer
- delay: 500ms
- output.turn_on: id_active_buzzer
- delay: 500ms
- output.turn_off: id_active_buzzer
- delay: 500ms
- output.turn_on: id_active_buzzer
- delay: 500ms
- output.turn_off: id_active_buzzer
- logger.log: "Biiiiiiiip"
else:
- output.turn_off: id_active_buzzer
captive_portal:
# Enable logging
logger:
# level: DEBUG
# Enable Home Assistant API
api:
reboot_timeout: 0s
ota:
RAM: [==== ] 40.4% (used 33084 bytes from 81920 bytes)
Flash: [==== ] 40.9% (used 418633 bytes from 1023984 bytes)