Exemple d'un afficheur I2C et d'un thermomètre

Câblage pour l'utilisation

Installation dans Home Assistant

  • 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

esphome:
  name: esp-mini-d1
  friendly_name: Esp-mini-D1

esp8266:
  board: esp01_1m

# Enable logging
logger:

# Enable Home Assistant API
api:
  encryption:
    key: « kDSYSzLmUdfWWw5Joccic7owTUyzROD4WVjFe1WSfL8= »

ota:
  – platform: esphome
    password: « 9473ce2c81a0949895574ee4debcb263 »

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

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: « Esp-Mini-D1 Fallback Hotspot »
    password: « biAKuiq60K2D »

captive_portal:

i2c:
  sda: GPIO0
  scl: GPIO2

font:
  – file: « BebasNeue-Regular.ttf »
    id: BebasNeue_20
    size: 20
  – file: « BebasNeue-Regular.ttf »
    id: BebasNeue_25
    size: 25
  – file: « BebasNeue-Regular.ttf »
    id: BebasNeue_30
    size: 30
  – file: « BebasNeue-Regular.ttf »
    id: BebasNeue_45
    size: 45
  – file: « gfonts://Roboto »
    id: roboto_15
    size: 15
  – file: « gfonts://Roboto »
    id: roboto_20
    size: 20
  – file: « gfonts://Roboto »
    id: roboto_25
    size: 25
  – file: « gfonts://Roboto »
    id: roboto_30
    size: 30

sensor:
  – platform: dht
    model: DHT22
    pin: GPIO1
    temperature:
      id: « temp »
      name: « T° Buffet-Mini D1 »
    humidity:
      id: « Humid »
      name: « H% Buffet »
    update_interval: 30s

  – platform: wifi_signal
    name: Signal WiFi
    update_interval: 300s
    filters:
      – delta: 10%

  – platform: homeassistant
    id: Elevation
    entity_id: sun.sun
    attribute: elevation

  – platform: homeassistant
    id: Azimuth
    entity_id: sun.sun
    attribute: azimuth

time:
  – platform: homeassistant
    id: esptime

text_sensor:
  # Expose WiFi information as sensors
  – platform: wifi_info
    ip_address:
      name: Adresse IP
    mac_address:
      name: Adresse MAC
    
display:
  – platform: ssd1306_i2c
    model: « SSD1306 128×64 »
    #rotation: 270°
    address: 0x3C
    contrast: 10%

    id: my_display
    pages:
      – id: page1
        lambda: |-
          it.print(63, 7, id(roboto_15), TextAlign::CENTER, « – Horo -« );
          it.strftime(63, 31, id(BebasNeue_20), TextAlign::CENTER, « %d/%m », id(esptime).now());
          it.strftime(63, 55, id(BebasNeue_30), TextAlign::CENTER, « %H:%M », id(esptime).now());
      – id: page2
        lambda: |-
          it.print(63, 7, id(roboto_15), TextAlign::CENTER, « – Soleil -« );
          it.printf(63, 31, id(BebasNeue_25), TextAlign::CENTER, « %.0f° », id(Elevation).state);
          it.printf(63, 55, id(BebasNeue_25), TextAlign::CENTER, « %.0f° », id(Azimuth).state);
      – id: page3
        lambda: |-
          it.print(63, 7, id(roboto_15), TextAlign::CENTER, « – Buffet -« );
          it.printf(63, 42, id(BebasNeue_45), TextAlign::CENTER, « %.1f° », id(temp).state);

# For example cycle through pages on a timer
interval:
  – interval: 2s
    then:
      – display.page.show_next: my_display
      – component.update: my_display