Exemple d'un afficheur SPI
Pour tester un afficheur OLED sur Home Assistant, j’ai fait un petit programme qui affiche l’élévation et l’azimuth du soleil.
Pour cela, j’ai pris un ESP32 DEVKITV1 et un afficheur OLED 1306 SPI
Câblage pour l'utilisation
Câblage pour l'utilisation
Installation dans Home Assistant
(Celle que j’ai faite le 29/10/2024)
- Tout d’abord, copier la police « BebasNeue-Regular.ttf » dans le répertoire « CONFIG/esphome/ ».
- Ouvrir l’onglet ESPHome dans Home Assistant.
- Dans le cadre de l’entité choisie, cliquer sur « EDIT« .
- Ajouter le programme suivant à la fin du « de base » (après « captive_portal:« ).
- Cliquer sur « SAVE », puis sur « INSTALL ».
- Dans la fenêtre qui s’ouvre, choisir « Wirelessly ».
- Si tout va bien, cela doit fonctionner !!!
Le programme final après ajout de la partie spécifique
# Example configuration entry
spi:
clk_pin: GPIO18
mosi_pin: GPIO23
font:
– file: « gfonts://Roboto »
id: roboto_20
size: 20
– file: « gfonts://Roboto »
id: roboto_30
size: 30
sensor:
– platform: homeassistant
id: Elevation
entity_id: sun.sun
attribute: elevation
– platform: homeassistant
id: Azimuth
entity_id: sun.sun
attribute: azimuth
display:
– platform: ssd1306_spi
model: « SSD1306 128×64 »
update_interval: 10s
cs_pin: GPIO5
dc_pin: GPIO4
reset_pin: GPIO22
lambda: |-
it.print(0, 7, id(roboto_20), « Elev. »);
it.print(0, 43, id(roboto_20), « Azim. »);
it.printf(it.get_width(), 0, id(roboto_30), TextAlign::TOP_RIGHT, « %.1f° », id(Elevation).state);
it.printf(it.get_width(), 36, id(roboto_30), TextAlign::TOP_RIGHT, « %.0f° », id(Azimuth).state);