Prototypage ESP32 avec sonde de température et afficheur

De Wiki de Mémoire Vive
Aller à la navigation Aller à la recherche

Montage pour tester un esp32-C3 avec un afficheur et une sonde de température. J'ai branché le VCC de l'afficheur sur le 5V. Un instabilité de connexion WiFi détectée sur un exemplaire de ESP32, résolue en changeant d'exemplaire.

On retrouve bien les valeurs de température et d'humidité dans HA. Le module s'intègre tout seul à condition de bien avoir la connexion WiFi.

Pour débugger, penser à la commande esphome logs monfichier.yaml

Une vidéo explicative si besoin, https://www.youtube.com/watch?v=DZK776JjMdI

Un lien pour afficher certains caractères, https://api-docs.esphome.io/tm1637_8cpp_source

Par exemple, on obtient le symbole ° avec le caractère '~'

0b01100011,           // '~', ord 0x7E (degree symbol)

Le code pourra être complété pour afficher l'humidité, ou toute autre valeur présente dans HA.

Le code,

esphome:
  name: esp32c3-dht22-aff # nom sur le reseau, attention = pas d'underscore
  friendly_name: "Capteur Température & Humidité DHT22 avec afficheur" # nom dans esphome

esp32:
  board: lolin_c3_mini
  variant: esp32c3
  framework:
    type: arduino

logger:

api:
  encryption:
    key: "vV6Ej2+P8RiKZqNJXaj7p8XAZPqQ5fz3+Tziw7YxXWc="  # Tu peux le générer automatiquement via l'assistant ESPHome

ota:
- platform: esphome

wifi:
  networks:
    - ssid: "2.4GHz-MEMOIRE-VIVE"
      password: "memoirev*****"
    - ssid: "SFR_CF08"
      password: "bra******"
    - ssid: "OpenWrt-2,4Ghz"
      password: "pet******"      
  ap:
    ssid: "ESP32C3-DHT22 Fallback"
    password: "fallbackmdp"

captive_portal:

sensor:
  - platform: dht
    pin: GPIO0
    model: DHT22
    temperature:
      name: "Température"
      id: temperature_sensor
    humidity:
      name: "Humidité"
      id: humidity_sensor
    update_interval: 30s
display:
  - platform: tm1637
    clk_pin: GPIO3
    dio_pin: GPIO2
    update_interval: 60s
    length: 4
    intensity: 0
    lambda: |-
      if (!isnan(id(temperature_sensor).state)) {
        it.printf("%2.1f", id(temperature_sensor).state);
      }