Цветной IPS TFT дисплей на ST7735S SPI, 80х160 0.96" мелкий экран. Нужно учитывать что у него есть смещение.
Подключение к esp8266 из интернета. Я подключал к esp32 c3
Добавление фотографии на экран с поворотом на 90 гр. Выравнивание по центру + белый по бокам
что бы изображение повернуть нужно поменять местами размеры картинки + местами разрешение экрана + отступ
spi:
clk_pin: GPIO4
mosi_pin: GPIO6
image:
- file: "test544.jpg" # Путь к файлу относительно папки проекта
id: my_image # Уникальный идентификатор для обращения к изображению
resize: 160x80 # Новый размер, чтобы картинка соответствовала активной области дисплея
type: RGB565 # Режим цвета (для ST7735 обычно используется RGB565)
display:
- platform: ili9xxx
model: "ST7735"
dimensions:
width: 160
height: 80
offset_width: 0
offset_height: 24
cs_pin: GPIO7
dc_pin: GPIO3
reset_pin: GPIO10
invert_colors: false
color_order: bgr
show_test_card: false
transform:
swap_xy: true
mirror_x: true
mirror_y: false
update_interval: 1s
lambda: |-
// Вычисляем центр экрана
int center_x = (it.get_width() - id(my_image).get_width()) / 2;
int center_y = (it.get_height() - id(my_image).get_height()) / 2;
// Заливаем фон
it.fill(Color(255, 255, 255));
// Размещаем изображение по центру
it.image(center_x, center_y, id(my_image));
output:
- platform: ledc
pin: GPIO5
id: backlight_pwm
light:
- platform: monochromatic
name: "Display Backlight"
output: backlight_pwm
restore_mode: RESTORE_DEFAULT_ON
font:
- file: "gfonts://Roboto"
id: small_font
size: 12
Что бы подходило под экран, нужно четко соблюсти соотношение!
Вертикальные фото и настройки. Изображение зеркалим через mirror_x: и mirror_y
spi:
clk_pin: GPIO4
mosi_pin: GPIO6
image:
- file: "test66.jpg" # Путь к файлу относительно папки проекта
id: my_image # Уникальный идентификатор для обращения к изображению
resize: 180x160 # Новый размер, чтобы картинка соответствовала активной области дисплея
type: RGB565 # Режим цвета (для ST7735 обычно используется RGB565)
display:
- platform: ili9xxx
model: "ST7735"
dimensions:
width: 80
height: 160
offset_width: 24
offset_height: 0
cs_pin: GPIO7
dc_pin: GPIO3
reset_pin: GPIO10
invert_colors: false
color_order: bgr
show_test_card: false
transform:
swap_xy: false
mirror_x: true
mirror_y: true
update_interval: 5s # 5 кадров в секунду
lambda: |-
// Вычисляем центр экрана
int center_x = (it.get_width() - id(my_image).get_width()) / 2;
int center_y = (it.get_height() - id(my_image).get_height()) / 2;
// Заливаем фон
it.fill(Color(255, 255, 255));
// Размещаем изображение по центру
it.image(center_x, center_y, id(my_image));
output:
- platform: ledc
pin: GPIO5
id: backlight_pwm
light:
- platform: monochromatic
name: "Display Backlight"
output: backlight_pwm
restore_mode: RESTORE_DEFAULT_ON
font:
- file: "gfonts://Roboto"
id: small_font
size: 12
Пробую крутить Экран в горизонтали Все равно остаемся полоска по бокам.
resize: 160x80
width: 160
height: 80
offset_width: 0
offset_height: 24
transform:
swap_xy: true
mirror_x: false
mirror_y: false