Dopo numerosi test e ricerche, sono finalmente riuscito a individuare la configurazione adatta tramite ESPHOME per il dispositivo acquistato su AliExpress ( ESP32 Arduino LVGL WIFI e scheda di sviluppo Bluetooth 2.8 “240*320 schermo intelligente modulo TFT LCD da 2.8 pollici con Touch WROOM – AliExpress ). Si tratta di un ESP32-2432s028Rv3 (Revisione 3), contraddistinto dalla presenza di uno schermo ST7789, diverso dalle configurazioni standard presenti in rete come il Lili4xxx. Inoltre, è da notare che questo dispositivo dispone sia di un connettore Type C che di uno MicroUSB (Vedi Foto)
una caratteristica non comune nelle configurazioni tradizionali. La mia ricerca è stata facilitata grazie al contributo prezioso dello sviluppatore rzeldent, il quale ha gentilmente fornito il file JSON relativo al dispositivo su GitHub ( GitHub – rzeldent/platformio-espressif32-sunton: Board definitions for the Sunton Smart display boards (CYD Cheap Yellow Display). These definitions contain not only contain the CPU information but also the connections and devices present on the board. ). Utilizzando questo file come base, ho quindi convertito l’intera configurazione in formato YAML, garantendo così la piena compatibilità con ESPHOME.
Ecco un codice di esempio in YAML da modificare e ampliare per ESPHOME con i dati corretti del dispositivo.
esp32:
board: esp32dev
framework:
type: arduino
logger:
level: DEBUG
logs:
component: ERROR
# Enable Home Assistant API
api:
# Allow Over-The-Air updates
ota:
# Allow provisioning Wi-Fi via serial
improv_serial:
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
# Set up a wifi access point
# ap: {}
# In combination with the `ap` this allows the user
# to provision wifi credentials to the device via WiFi AP.
# captive_portal:
# dashboard_import:
# package_import_url: github://esphome/example-configs/esphome-web/esp32.yaml@main
# import_full_config: true
# Sets up Bluetooth LE (Only on ESP32) to allow the user
# to provision wifi credentials to the device.
# esp32_improv:
# authorizer: none
# To have a “next url” for improv serial
web_server:
font:
– file: “Arial-Black.ttf”
id: font2
size: 20
binary_sensor:
– platform: status
name: “Node Status”
id: system_status
– platform: touchscreen
name: Test
x_min: 30
x_max: 90
y_min: 20
y_max: 80
– platform: touchscreen
name: Music
x_min: 150
x_max: 210
y_min: 20
y_max: 80
text_sensor:
– platform: wifi_info
ip_address:
# name: ESP IP Address
id: ip_address
# spi:
# clk_pin: GPIO14
# mosi_pin: GPIO13
# power_supply:
# – id: ‘power_supply1’
# pin: 1
spi:
– id: lcd
clk_pin: GPIO14
mosi_pin: GPIO13
miso_pin: GPIO12
– id: touch
clk_pin: GPIO25
mosi_pin: GPIO32
miso_pin: GPIO39
color:
– id: my_red
red: 100%
green: 0%
blue: 0%
– id: my_orange
red: 100%
green: 50%
blue: 0%
– id: my_yellow
red: 100%
green: 100%
blue: 0%
– id: my_green
red: 0%
green: 100%
blue: 0%
– id: my_blue
red: 0%
green: 0%
blue: 100%
– id: my_teal
red: 0%
green: 100%
blue: 100%
– id: my_gray
red: 70%
green: 70%
blue: 70%
– id: my_white
red: 100%
green: 100%
blue: 100%
– id: my_black
red: 0%
green: 0%
blue: 0%
time:
– platform: homeassistant
id: esptime
display:
– platform: ili9xxx
# auto_clear_enabled: True
# power_supply: power_supply1
model: st7789v
spi_id: lcd
dimensions: 240×320
reset_pin: 3
# backlight_pin: GPIO21
dc_pin: GPIO2
cs_pin: GPIO15
spi_mode: mode3
data_rate: 2000000.0
rotation: 90
#width: 240
#height: 320
#offset_height: 0
#offset_width: 0
#eightbitcolor: True
# update_interval: 1s
lambda: |-
it.rectangle(0, 0, it.get_width(), it.get_height(), id(my_red));
it.print(0, 0, id(font2), “Hello World!”);
if (id(system_status).state) {
it.print(it.get_width()-5, 5, id(font2), id(my_green), TextAlign::TOP_RIGHT, “Online”);
}
else {
it.print(it.get_width()-5, 5, id(font2), id(my_red), TextAlign::TOP_RIGHT, “Offline”);
}
it.strftime((240 / 2), (320 / 3) * 2 + 5, id(font2), id(my_red), TextAlign::CENTER, “%H:%M:%S”, id(esptime).now());
output:
– platform: ledc
pin: GPIO21
id: former_led_pin
– platform: ledc
id: output_red
pin: GPIO4
inverted: true
– platform: ledc
id: output_green
pin: GPIO16
inverted: true
– platform: ledc
id: output_blue
pin: GPIO17
inverted: true
touchscreen:
platform: xpt2046
spi_id: touch
cs_pin: GPIO33
interrupt_pin: GPIO36
# update_interval: ms
# threshold: 400
# calibration_x_min: 3860
# calibration_x_max: 280
# calibration_y_min: 340
# calibration_y_max: 3860
light:
– platform: monochromatic
output: former_led_pin
name: “Display Backlight”
id: back_light
restore_mode: ALWAYS_ON
– platform: rgb
name: LED
red: output_red
id: led
green: output_green
blue: output_blue
restore_mode: ALWAYS_OFF
switch:
– platform: restart
name: esphome-web-eff560 Restar
Spero di essere stato utile a molti miei seguaci commentate e condividete l’articolo!
Scopri di più da TuttoeOltre.it - Blog di idee in rete
Abbonati per ricevere gli ultimi articoli inviati alla tua e-mail.