Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- esphome:
- name: lilka
- friendly_name: lilka
- on_boot:
- priority: 600
- then:
- - output.turn_on: display_power
- - delay: 100ms
- esp32:
- board: esp32-s3-devkitc-1
- framework:
- type: esp-idf
- logger:
- api:
- encryption:
- key: "Yw3yq8lxsaze+jdggjAwxKpV4GD6gNZptvw4d6OPfOc="
- ota:
- - platform: esphome
- password: "bb198feb99159fdaefc8092f10039acd"
- wifi:
- ssid: !secret wifi_ssid
- password: !secret wifi_password
- ap:
- ssid: "Lilka Fallback Hotspot"
- password: "hnYImYM4O6I0"
- captive_portal:
- # Веб-сервер для моніторингу
- web_server:
- port: 80
- # Увімкнення живлення дисплея
- output:
- - platform: gpio
- pin: 46
- id: display_power
- inverted: false
- # Кнопки керування
- binary_sensor:
- # D-Pad (ліва група)
- - platform: gpio
- pin:
- number: 38
- mode: INPUT_PULLUP
- inverted: true
- name: "Button Up"
- id: button_up
- filters:
- - delayed_on_off: 50ms
- - platform: gpio
- pin:
- number: 41
- mode: INPUT_PULLUP
- inverted: true
- name: "Button Down"
- id: button_down
- filters:
- - delayed_on_off: 50ms
- - platform: gpio
- pin:
- number: 39
- mode: INPUT_PULLUP
- inverted: true
- name: "Button Left"
- id: button_left
- filters:
- - delayed_on_off: 50ms
- - platform: gpio
- pin:
- number: 40
- mode: INPUT_PULLUP
- inverted: true
- name: "Button Right"
- id: button_right
- filters:
- - delayed_on_off: 50ms
- # Кнопки A, B, C, D (права група)
- - platform: gpio
- pin:
- number: 5
- mode: INPUT_PULLUP
- inverted: true
- name: "Button A"
- id: button_a
- filters:
- - delayed_on_off: 50ms
- - platform: gpio
- pin:
- number: 6
- mode: INPUT_PULLUP
- inverted: true
- name: "Button B"
- id: button_b
- filters:
- - delayed_on_off: 50ms
- - platform: gpio
- pin:
- number: 10
- mode: INPUT_PULLUP
- inverted: true
- name: "Button C"
- id: button_c
- filters:
- - delayed_on_off: 50ms
- - platform: gpio
- pin:
- number: 9
- mode: INPUT_PULLUP
- inverted: true
- name: "Button D"
- id: button_d
- filters:
- - delayed_on_off: 50ms
- # Кнопки Start і Select (центральні)
- - platform: gpio
- pin:
- number: 4
- mode: INPUT_PULLUP
- inverted: true
- name: "Button Start"
- id: button_start
- filters:
- - delayed_on_off: 50ms
- - platform: gpio
- pin:
- number: 0
- mode: INPUT_PULLUP
- inverted: true
- name: "Button Select"
- id: button_select
- filters:
- - delayed_on_off: 50ms
- # Сенсор батареї
- sensor:
- - platform: adc
- pin: GPIO3
- name: "Battery Voltage"
- id: battery_voltage
- update_interval: 10s
- attenuation: 11db
- filters:
- - multiply: 1.33 # Дільник напруги R1=33kΩ, R2=100kΩ (1/0.7519)
- - platform: template
- name: "Battery Level"
- id: battery_level
- unit_of_measurement: "%"
- accuracy_decimals: 0
- update_interval: 10s
- lambda: |-
- float voltage = id(battery_voltage).state;
- // LiPo: 4.2V = 100%, 3.0V = 0%
- float percent = (voltage - 3.0) / (4.2 - 3.0) * 100.0;
- if (percent > 100) percent = 100;
- if (percent < 0) percent = 0;
- return percent;
- # SPI шина
- spi:
- clk_pin: 18
- mosi_pin: 17
- # Шрифти
- font:
- - file: "gfonts://Roboto"
- id: default_font
- size: 20
- - file: "gfonts://Roboto"
- id: small_font
- size: 14
- # Дисплей ST7789V
- display:
- - platform: mipi_spi
- model: ST7789V
- dc_pin: 15
- cs_pin: 7
- update_interval: 1s
- rotation: 270
- invert_colors: false
- color_order: RGB
- pixel_mode: 16bit
- dimensions:
- width: 240
- height: 280
- offset_width: 0
- offset_height: 0
- lambda: |-
- it.fill(Color::BLACK);
- // Головний текст по центру
- it.print(140, 120, id(default_font), Color::WHITE, TextAlign::CENTER, "Lilka Works!");
- // Відображення заряду батареї
- if (id(battery_level).has_state()) {
- it.printf(140, 90, id(small_font), Color(0, 255, 0), TextAlign::CENTER,
- "Battery: %.0f%%", id(battery_level).state);
- }
- // Відображення напруги
- if (id(battery_voltage).has_state()) {
- it.printf(140, 150, id(small_font), Color(255, 255, 0), TextAlign::CENTER,
- "Voltage: %.2fV", id(battery_voltage).state);
- }
Advertisement
Add Comment
Please, Sign In to add comment