Files
esphome-configs/mcu-m5paper.yaml

182 lines
3.4 KiB
YAML

substitutions:
device: m5paper
name: M5Paper
area: DEV
comment: "${area} | M5Paper"
esphome:
name: mcu-${device}
area: ${area}
comment: ${comment}
esp32:
board: m5stack-core2
framework:
# type: arduino
type: esp-idf
psram:
external_components:
# - source: github://pr#4027
# refresh: 0s
# components:
# # - bm8563
# - gt911
# - it8951e
# - m5paper
# - spi
- source:
type: git
url: https://github.com/Passific/m5paper_esphome
ref: main
components:
- bm8563
- gt911
- it8951e
- m5paper
- spi
# external_components:
# - source: components
packages:
common: !include common/common.yaml
time:
- platform: homeassistant
id: ha_time
timezone: Europe/Bratislava
on_time_sync:
- bm8563.write_time
- platform: bm8563
id: rtc_time
sleep_duration: 3600000ms
m5paper:
battery_power_pin: GPIO5
main_power_pin: GPIO2
update_interval: 10s
battery_voltage:
name: "${name} Battery"
# 0x44 SHT30
# 0x50
# 0x51
# 0x5D GT911
i2c:
- id: i2c_main
sda: 21
scl: 22
scan: true #false
# - id: i2c_a
# sda: 25
# scl: 32
# scan: true #false
# - id: i2c_b
# sda: 26
# scl: 33
# scan: true #false
# - id: i2c_c
# sda: 18
# scl: 19
# scan: true #false
spi:
clk_pin: 14
miso_pin: 13
mosi_pin: 12
binary_sensor:
- platform: gpio
name: ${name} Button UP
id: button_up
pin:
number: 37
inverted: true
on_press:
- component.update: m5paper_display
on_release:
- component.update: m5paper_display
- platform: gpio
name: ${name} Button Press
id: button_press
pin:
number: 38
inverted: true
- platform: gpio
name: ${name} Button Down
id: button_down
pin:
number: 39
inverted: true
- platform: touchscreen
name: ${name} Top Left Touch Button
id: top_left_touch_button
touchscreen_id: gt911_touchscreen
internal: true
x_min: 0
x_max: 100
y_min: 0
y_max: 100
on_press:
# Example of applying the sleep duration and shutting down to the lowest power mode
- bm8563.apply_sleep_duration
- delay: 1s
- m5paper.shutdown_main_power
font:
- file: "gfonts://Roboto"
id: font_default
size: 20
- file: "gfonts://Roboto"
id: roboto_32
size: 32
- file: "gfonts://Roboto"
id: roboto_24
size: 24
- file: "gfonts://Roboto"
id: roboto_12
size: 12
display:
- platform: it8951e
id: m5paper_display
display_cs_pin: GPIO15
reset_pin: GPIO23
busy_pin: GPIO27
rotation: 90
reversed: False
update_interval: "never"
lambda: |-
it.printf(25, 25, id(roboto_32), "%.1f°", id(current_temperature).state);
it.strftime(350, 25, id(roboto_32), "%H:%M:%S", id(rtc_time).now());
touchscreen:
- platform: gt911
display: m5paper_display
id: gt911_touchscreen
interrupt_pin: GPIO36
# display:
# - platform: waveshare_epaper
# cs_pin: 15
# model: 2.90in
# full_update_every: 30
# lambda: |-
# it.print(0, 0, id(font1), "Hello World!");
sensor:
- platform: sht3xd
temperature:
name: "${name} Temperature"
id: current_temperature
humidity:
name: "${name} Humidity"
address: 0x44
update_interval: 60s
# touchscreen:
# - platform: gt911
# interrupt_pin: 36