ESP32 (30 pin) avec afficheur ST7735 (7pin)

Bonjour,

Le matériel :

L’écran est le 1.3 Inch TFT Screen Blue (7 pin)

J’ai tenté plusieurs branchement et configuraration yaml avec ESPHome mais rien n’y fait, je n’arrive pas a afficher quoique ce soit sur l’écran, avec un écran « SSD1306 128x32 » je n’avais pas eu de problème.

Avant d’aller plus loin dans l’exposition de ma conf et branchement, quelqu’un aurait-il un schéma de branchement pour ce matériel et un yaml ESPHome fonctionnel ?

Merci
Bob

Ma configuration


System Information

version core-2022.11.5
installation_type Home Assistant OS
dev false
hassio true
docker true
user root
virtualenv false
python_version 3.10.7
os_name Linux
os_version 5.15.61-v8
arch aarch64
timezone Europe/Paris
config_dir /config
Home Assistant Community Store
GitHub API ok
GitHub Content ok
GitHub Web ok
GitHub API Calls Remaining 4188
Installed Version 1.28.4
Stage running
Available Repositories 1158
Downloaded Repositories 21
Home Assistant Cloud
logged_in false
can_reach_cert_server ok
can_reach_cloud_auth ok
can_reach_cloud ok
Home Assistant Supervisor
host_os Home Assistant OS 9.3
update_channel stable
supervisor_version supervisor-2022.11.2
agent_version 1.4.1
docker_version 20.10.18
disk_total 457.7 GB
disk_used 21.1 GB
healthy true
supported true
board rpi4-64
supervisor_api ok
version_api ok
installed_addons deCONZ (6.17.0), Let’s Encrypt (4.12.7), File editor (5.4.2), Samba share (10.0.0), Network UPS Tools (0.11.0), Spotify Connect (0.12.2), Terminal & SSH (9.6.1), Portainer (2.0.0), InfluxDB (4.5.0), Grafana (8.1.0), Node-RED (13.5.3), Studio Code Server (5.4.1), ESPHome (2022.11.4)
Dashboards
dashboards 2
resources 14
views 13
mode storage
Recorder
oldest_recorder_run 30 novembre 2022 à 19:48
current_recorder_run 6 décembre 2022 à 13:09
estimated_db_size 432.41 MiB
database_engine sqlite
database_version 3.38.5
Spotify
api_endpoint_reachable ok
___

Bonsoir,

Je pensais qu’avec cet écran ce serait sans souci mais même problème :

Branchement :

YAML :

esphome:
  name: esp32-ili9341-display

esp32:
  board: esp32dev
  framework:
    type: arduino

# Enable logging
logger:

# Enable Home Assistant API
api:
  encryption:
    key: "5O+wCWaqCvffffffffP+PIOvCIX1LpoqfOPeU6heGyo="

ota:
  password: "2543de8dppppppppbb615635b221b9fb"

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Esp32-Ili9341-Display"
    password: "LLG523Z764Zj"

captive_portal:

spi:
  clk_pin: GPIO18
  mosi_pin: GPIO23
  miso_pin: GPIO19

switch:
  - platform: gpio
    name: "LedBleuDisplay"
    pin: 2

font:
  - file: "fonts/arial-1.ttf"
    id: my_font
    size: 10

  - file: "fonts/comic-sans-ms.ttf"
    id: my_font2
    size: 16 

display:
  - platform: ili9341
    model: TFT 2.4
    cs_pin: GPIO22
    dc_pin: GPIO21
    #led_pin: 32  ### see note below ###
    reset_pin: GPIO17
    auto_clear_enabled: false
    update_interval: 1s
    id: my_display
    lambda: |-
      it.filled_rectangle(0, 0, it.get_width() - 1, it.get_height() - 1, Color(242, 140, 38));


#interval:
#  - interval: 5s
#    then:
#      - display.page.show_next: my_display
#      - component.update: my_display

#color:
#  - id: my_red
#    red: 100%
#    green: 0%
#    blue: 0%

Si vous avez une idée :wink:
Bonne soirée
Bob

Salut,

Je n’ai jamais utilisé ces écrans, mais es tu certain que les pins sur lesquels tu es branché sont les bons?

Bonsoir @AlexHass,

Pour le st7735 je doute car j’ai un afficheur à 7 pin et dans la majorité des exemples il y en a 8.
Pour le ILI9341, je ne sais pas trop en fait, je ne trouve jamais d’exemple complet branchement + yaml ESPHome.
La plus part du temps il y a des schémas de branchement mais avec du code Arduino et je souhaite utiliser ESPHome !
https://esphome.io/ est bien documenté mais parfois les exemples sont abstraits pour moi :

Exemple pour le st7735:

display:
  - platform: st7735
    model: "INITR_18BLACKTAB"
    reset_pin: D4
    cs_pin: D1
    dc_pin: D2

En plus le mien est BLUE :rofl:
D4, D1, D2, ça ne veut rien dire pour moi, ni dans le yaml, inconnu ! J’ai bien le pinout complet de L’ESP32, mais j’avoue que comme c’est si ouvert pour définir les GPIO SPI ou autres, que l’on ne trouve pas d’exemple ESPHome complet.
C’est pour ça que lorsque j’arrive à quelque chose je publie un tuto avec toutes les infos (un seul pour l’instant mais un autre va arriver).

J’ai 11 ESP32 fonctionnels, déjà content mais le côté affichage sur écran je trouve ça cool, un seul pour l’instant.

Avec les badges NFC j’ai galéré, avec les écrans ça passera aussi, ce que je trouve dommage c’est que les partages sont souvent uniquement yaml, le branchement en découle peut être pour tout le monde, pour moi pas toujours.
J’ai encore à apprendre sur les ESP32 (30 pin), je n’utilise que ça.

Je vais tenter encore :wink:
Merci
Bob

Dès que l’écran s’allumera, j’ajouterai un capteur ultrasonic HC-SR04, ça il n’y devrait pas y avoir de surprise :wink:

Lien branchement pour ST7735 :

Lien de branchement pour le ILI9341 :

Bob

Bon[jour/soir]
effectivement c’est pas toujours simple pour s’y retrouver au niveau hardware avec Esphome…
Pour ton écran ST7735 il faut que tu commence par définir un bus SPI et que tu relie les broches en fonction de la config SPI que tu a définie (clk_pin sur scl du screen et mosi_pin sur sda).
ensuite tu doit définir ton écran avec les broches reset_pin → res , cs_pin → cs et dc_pin → dc

Bonsoir,
Pour le ili9341 c’est OK, j’ai ajouté la ligne : led_pin: GPIO32 et le branchement qui me me semblait optionnel. Je repasserai sur le ST7735 après.
Je vais pouvoir m’amuser un peu, je mettrai tout ça dans un petit tuto prochainement, branchement et yaml.

Merci
Bob

2 « J'aime »

Bonjour,
Pour info depuis la dernière version de ESPHome, led_pin: GPIO32 est déprécié.

Ajouter ceci au yaml comme indiqué dans la doc :

# Define a PWM output on the ESP32
output:
  - platform: ledc
    pin: 32
    id: gpio_32_backlight_pwm

# Define a monochromatic, dimmable light for the backlight
light:
  - platform: monochromatic
    output: gpio_32_backlight_pwm
    name: "Display Backlight"
    id: back_light
    restore_mode: ALWAYS_ON

Je vais m’occuper du tactile maintenant :wink:

Bob