Керування пристроями з сенсорними кнопками за допомогою ESPHome
Дайте відповідь на опитування Розумний Будинок 2024 🏠
У цьому топіку поділюсь досвідом Олександра, з української спільноти розумного будинку, як хакнути будь який побутовий пристрій на сенсорних кнопках (з пружинками на платі) за допомогою аналога fingerbot — зволожувачі, очисники повітря, витяжки тощо. Якщо сказати інакше ця збірка імітує натискання клавіш користувачем, без втручання у логіку роботи пристрою, такий собі fingerbot.
Ця модифікація дозволяє отримати цікаві та зручні девайси за дуже низьку ціну та створювати автоматизації для дистанційного керування ними (вмикання/вимикання з урахуванням часу, присутності людей, якості повітря, тощо). Наприклад Олександр поєднав такі кнопки з очисником повітря.

Монтажний набір:
- ESP 8266 D1 Mini;
- Резистор 100 Ом;
- Транзистор 2N3904;
- Частина мідної оплітки в двосторонньому скотчі; (довжина щоб обмотати пружину кнопки)
- Датчик струму та напруги INA226 (зворотній зв’язок щодо стану пристрою) Не рекомендую брати 219 — він працює некоректно


Сенсорні кнопки пристрою залишаються на місці. Додається мідний контактний резистивний шлейф, який обплітається навколо пружини кнопки та імітує фізичного натиснення на неї. Додатково, за допомогою сенсора напруги та струму зчитується стан приладу — увімкнено/вимкнено, після виконання команди фінгерботу

приклад обмотки пружини
substitutions:
AirPurifier_id: Airpurifier
updates: 5s
api_key: "your api"
ota_password: "your ota pass"
esphome:
name: airpurifier
friendly_name: Airpurifier
esp8266:
board: esp01_1m
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
manual_ip:
static_ip: 192.168.XX.XXX
gateway: 192.168.XX.X
subnet: 255.255.255.0
captive_portal:
logger:
level: DEBUG
api:
encryption:
key: ${api_key}
ota:
- platform: esphome
password: ${ota_password}
text_sensor:
- platform: wifi_info
ip_address:
name: ESP IP Address
ssid:
name: ESP Connected SSID
binary_sensor:
- platform: status
name: "Aircleaner Status"
i2c:
sda: 4 # pin 21 for an ESP32
scl: 5 # pin 22 for an ESP32
switch:
- platform: gpio
pin:
number: GPIO14
mode:
output: true
name: "Aircleaner touch button"
id: output_vcc
device_class: switch
restore_mode: RESTORE_DEFAULT_OFF
- platform: restart
name: "Aircleaner Restart"
button:
- platform: template
name: "Aircleaner Cycle mode"
on_press:
then:
- switch.toggle: output_vcc
- delay: 300ms
- switch.toggle: output_vcc
sensor:
#- platform: adc
#pin: GPIO17
#name: "Aircleaner Voltage"
#update_interval: 5s
#filters:
# - multiply: 1
- platform: wifi_signal
name: "WiFi signal percent:"
entity_category: diagnostic
id: wifi_sign
update_interval: 60s
filters:
- lambda: return x + 100.0;
unit_of_measurement: "%"
- platform: ina226
address: 0x40
shunt_resistance: 0.1 ohm
max_current: 3.2A
# adc time used for both, Bus Voltage and Shunt Voltage
adc_time: 140us
adc_averaging: 128
update_interval: 5s
current:
name: "Vent Current"
filters:
- multiply: 1
power:
name: "Vent Power"
bus_voltage:
name: "Vent Bus Voltage"
filters:
- multiply: 5
shunt_voltage:
name: "Vent Shunt Voltage"
Приклад як виглядає пристрій у інтерфейсі Home Assistant. Для керування пристроєм потрібно використовувати лише нижню кнопку з написом натиснути. З верхнього вимикача створена нижня кнопка з затримкою увімкнення в 300 мілісекунд.


Немає коментарів
Додати коментар Підписатись на коментаріВідписатись від коментарів