HA-ESP HOME-Flashage WT01-ETH0

Intro

J’utilise depuis longtemps des ESP32 ou ESP01 flashés avec ESP HOME. Ces petites bestioles sont très pratiques pour des petites conceptions DIY. Cependant celles-ci sont dépendantes du WIFI qui en terme de fiabilité et de disponibilité peut faire mieux.

Dernièrement j’ai utilisé un WT32-ETH01 qui permet de connecter l’ESP à un réseau ethernet câblé, pas en POE mais c’est déjà un premier pas vers la fiabilisation.

L’inconvénient, c’est qu’il n’embarque pas de port USB permettant de le flasher la première fois, il faut donc passer par un convertisseur USB/Port Série.

Autre inconvénient, le nom de pin utilisable est limité car beaucoup sont réservées au port Ethernet (en gris ci-dessous).

Premier Flashage

Il faut utiliser un convertisseur USB/Port série, perso j’utilise un FTDI232, le même que pour mes ESP01, je vous mets le lien vers Amazon ou Aliexpress mais Google peut vous aider: mot clef « FTDI232 ».

Il faut maintenant le raccorder au WT32.

  • FTDI232 <—-> WT32
  • GND <—-> GND
  • VCC <—-> +5v
  • TX <—-> RX0 la pin à coté de I00
  • RX <—-> TX0 la pin à coté de RX0
  • Faire un pont sur le WT32 entre I00 et un GND
  • Positionner le cavalier du FDTI 232 sur 5V

Puis Il faut vous rendre sur ESPHOME et déclarer votre WT32.

Vous trouverez ci-après un code en exemple (mesure de niveau d’eau dans un puit).

J’utilise ce type de capteur à ultrason commandé sur Ali. Pas cher et efficace.

Voici le code.

A vous de le personnaliser « device_name, adresse ip,..). Ne pas modifier la partie « Ethernet »

substitutions:
  device_name: esp144-test-wt32-eth01
  adress_ip: "192.168.0.144"
  friendly_name: esp144
  time_timezone: "Europe/Paris"
  
esphome:
  name: ${device_name}
  platform: ESP32
  board: esp-wrover-kit

# Enable logging
logger:

# Enable Home Assistant API
api:

web_server:
  port: 80


ethernet:
  type: LAN8720
  mdc_pin: GPIO23
  mdio_pin: GPIO18
  clk_mode: GPIO0_IN
  phy_addr: 1
  power_pin: GPIO16
  
  manual_ip:
    static_ip: ${adress_ip}
    gateway: 192.168.0.254
    subnet: 255.255.255.0

sensor:
  - platform: ultrasonic
    trigger_pin: GPIO2
    echo_pin: GPIO4
    name: "niveau puit"
    accuracy_decimals: 2
    id: niveau_eau
    update_interval: 60s
    filters:
      - lambda: return 3.5 - x;
      - sliding_window_moving_average:
          window_size: 5 # moyenne sur x lectures
          send_every: 5 # envoi toutes les x lectures
          send_first_at: 1 # envoi à la premiere lecture

# Calcul du niveau d'eau H total
# longueur du tube=2.3 m
# hauteur total puit=5.8 m
# d'ou 5.80-2.3=3.5

############### TEMPLATE  ######################"
# Calcul volume eau
  - platform: template
    name: "volume_puit"
    id: volume
    icon: mdi:flash
    unit_of_measurement: "m3"
    accuracy_decimals: 2
    lambda: |-
      return (id(niveau_eau).state*0.6*0.6*3.14159);



#Etat de la connection
binary_sensor:
  - platform: status
    name: "${friendly_name} Status"

switch:   
  - platform: restart
    name: "${friendly_name} Restart"
    

    

Apres avoir connecté votre FTDI232 à votre PC HA avec le cordon USB qui va bien, vous lancer « install »:

Dans mon cas je choisis l’option 3 « Plug into the computer running ESPHome Dashboard »:

Sélectionner le port USB correspondant à votre FDTI232, FT232R USB UART dans mon cas:

ESP HOME compile puis transfert vert le FTDI232:

Et voila c’est terminé.

Exploitation

Il suffit maintenant de débrancher le WT232, le connecter au réseau cablé et de l’alimenter en 5 ou 3.2 VCC.

Sur ESP HOME, si il est reconnu sur votre réseau, il est déclaré « ONLINE »:

Intégration dans HA

Normalement HA doit vous le proposer comme une nouvelle intégration

Cliquer sur configurer

Cliquer sur « Soumettre »

Choisir une pièce, c’est facultatif mais recommandé.

Vous le retrouver dans les intégrations/appareils.

Une fois intégré dans HA, vous pouvez visualiser les logs.

ou bien la page WEB embarquée

Si pas découvert automatiquement par HA, essayer de l’intégrer manuellement:

Cliquer sur « + Ajouter intégration« :

Chercher « ESPHOME », saisir l’adresse IP puis soumettre:

Cela devrait fonctionner, la cas échéant, vérifier votre adresse IP.

Mise à Jour

Une fois connecté à votre réseau, plus besoin d’utiliser le FTDI232, la mise à jour est à transférer comme d’habitude, via la « Wirelessly ».

Conclusion

J’en utilise un depuis quelque semaines et rien à signaler, il tourne comme une horloge.

N’hésitez par me faire part de vos commentaires.

4 Comments on “HA-ESP HOME-Flashage WT01-ETH0”

    1. Merci Bob. Sur les installations éloignées, avec un wifi hors de portée, le câble reste une solution pérenne, ce qui est mon cas pour mon puit au fond du jardin. Encore merci pour ton soutient

  1. hi,
    i consulted your article to flash a WT32-ETH01. It wasnt straight forward to me (most probably cause my lack of experience) however i finally made it and it’s now connected to my LAN through ethernet.
    I was wondering if you can help me on the following issue( only if it is easy enough for you, i mean dont spend your time)
    for test purposes i connected a dht11 (sensor is onboard pullup resistor embeded) on the wt32-eth01. i wired it as follows: (DHT11/WT32) -> VCC/ 3v3 , GND/GND, DATA/GPIO36. (previously i tried GPIO2, GPIO4, GPIO35 unsuccessfully). But i get no values.

    LOGS are :

    [16:52:48][C][dht:017]: DHT:
    [16:52:48][C][dht:018]: Pin: GPIO36
    [16:52:48][C][dht:020]: Auto-detected model: DHT11
    [16:52:48][C][dht:027]: Update Interval: 60.0s
    [16:52:48][C][dht:029]: Temperature ‘DHT11_Temp_on_WT32’
    [16:52:48][C][dht:029]: Device Class: ‘temperature’
    [16:52:48][C][dht:029]: State Class: ‘measurement’
    [16:52:48][C][dht:029]: Unit of Measurement: ‘°C’
    [16:52:48][C][dht:029]: Accuracy Decimals: 1
    [16:52:48][C][dht:030]: Humidity ‘DHT11_humi_on_WT32’
    [16:52:48][C][dht:030]: Device Class: ‘humidity’
    [16:52:48][C][dht:030]: State Class: ‘measurement’
    [16:52:48][C][dht:030]: Unit of Measurement: ‘%’
    [16:52:48][C][dht:030]: Accuracy Decimals: 0
    ….
    E (705054) gpio: gpio_set_level(226): GPIO output gpio_num error
    [16:53:31][D][esp-idf:000]: E (705056) gpio: io_num=36 can only be input
    [16:53:31][D][esp-idf:000]: E (705067) gpio: gpio_set_level(226): GPIO output gpio_num error
    [16:53:31][W][dht:169]: Requesting data from DHT failed!
    [16:53:31][W][dht:060]: Invalid readings! Please check your wiring (pull-up resistor, pin number) and consider manually specifying the DHT model using the model option.
    [16:53:31][D][sensor:127]: ‘DHT11_Temp_on_WT32’: Sending state nan °C with 1 decimals of accuracy
    [16:53:31][D][sensor:127]: ‘DHT11_humi_on_WT32’: Sending state nan % with 0 decimals of accuracy

    what am i missing?
    can i use any gpio on wt32-eth01? reading wt32 pinout diagram is chinese to me
    it seems that i cannot use any pins in grey area. not even power pins(3v3)?

    thanks in advance
    Elias

    1. Bonjour
      J’ai essayer avec un DHT22 et cela fonctionne (je n’ai pas de DHT11 sous la main)
      La pin DATA est relièe à IO2 Le VCC au 3.3V, GND à GND. j’ai testé avec ou sans résistance de 4.7 k entre DATA et VCC, cela fonctionne.
      Voici le code que j’utilise
      ***********************************
      substitutions:
      device_name: esp174-esp32-eth0-dimmer-ecs
      adress_ip: « 192.168.0.174 »
      friendly_name: esp174
      time_timezone: « Europe/Paris »

      esphome:
      name: ${device_name}
      platform: ESP32
      board: wt32-eth01 #esp-wrover-kit

      # Enable logging
      logger:

      # Enable Home Assistant API
      api:
      ota:
      web_server:
      port: 80

      ethernet:
      type: LAN8720
      mdc_pin: GPIO23
      mdio_pin: GPIO18
      clk_mode: GPIO0_IN
      phy_addr: 1
      power_pin: GPIO16

      manual_ip:
      static_ip: ${adress_ip}
      gateway: 192.168.0.254
      subnet: 255.255.255.0

      binary_sensor:
      #Etat de la connection
      – platform: status
      name: « ${friendly_name}_Status »
      sensor:
      – platform: dht
      pin: GPIO2
      model: DHT22
      temperature:
      name: « ${friendly_name} Temperature »
      humidity:
      name: « ${friendly_name} Humidity »
      update_interval: 5s
      ************************
      et voici le log:
      ******************************
      INFO Successfully connected to 192.168.0.174
      [16:28:33][I][app:102]: ESPHome version 2023.2.4 compiled on Mar 13 2023, 16:16:13
      [16:28:33][C][logger:293]: Logger:
      [16:28:33][C][logger:294]: Level: DEBUG
      [16:28:33][C][logger:295]: Log Baud Rate: 115200
      [16:28:33][C][logger:296]: Hardware UART: UART0
      [16:28:33][C][status:034]: Status Binary Sensor ‘esp174_Status’
      [16:28:33][C][status:034]: Device Class: ‘connectivity’
      [16:28:33][C][dht:017]: DHT:
      [16:28:33][C][dht:018]: Pin: GPIO2
      [16:28:33][C][dht:024]: Model: DHT22 (or equivalent)
      [16:28:33][C][dht:027]: Update Interval: 5.0s
      [16:28:33][C][dht:029]: Temperature ‘esp174 Temperature’
      [16:28:33][C][dht:029]: Device Class: ‘temperature’
      [16:28:33][C][dht:029]: State Class: ‘measurement’
      [16:28:33][C][dht:029]: Unit of Measurement: ‘°C’
      [16:28:33][C][dht:029]: Accuracy Decimals: 1
      [16:28:33][C][dht:030]: Humidity ‘esp174 Humidity’
      [16:28:33][C][dht:030]: Device Class: ‘humidity’
      [16:28:33][C][dht:030]: State Class: ‘measurement’
      [16:28:33][C][dht:030]: Unit of Measurement: ‘%’
      [16:28:33][C][dht:030]: Accuracy Decimals: 0
      [16:28:33][C][ethernet:167]: Ethernet:
      [16:28:33][C][ethernet:285]: IP Address: 192.168.0.174
      [16:28:33][C][ethernet:286]: Hostname: ‘esp174-esp32-eth0-dimmer-ecs’
      [16:28:33][C][ethernet:287]: Subnet: 255.255.255.0
      [16:28:33][C][ethernet:288]: Gateway: 192.168.0.254
      [16:28:33][C][ethernet:293]: DNS1: 0.0.0.0
      [16:28:33][C][ethernet:294]: DNS2: 0.0.0.0
      [16:28:33][C][ethernet:301]: MAC Address: 0C:B8:15:4A:D8:83
      [16:28:33][C][ethernet:306]: Is Full Duplex: YES
      [16:28:33][C][ethernet:311]: Link Speed: 100
      [16:28:33][C][ethernet:170]: Power Pin: 16
      [16:28:33][C][ethernet:172]: MDC Pin: 23
      [16:28:33][C][ethernet:173]: MDIO Pin: 18
      [16:28:33][C][ethernet:174]: Type: LAN8720
      [16:28:33][C][web_server:151]: Web Server:
      [16:28:33][C][web_server:152]: Address: 192.168.0.174:80
      [16:28:33][C][mdns:108]: mDNS:
      [16:28:33][C][mdns:109]: Hostname: esp174-esp32-eth0-dimmer-ecs
      [16:28:33][C][ota:093]: Over-The-Air Updates:
      [16:28:33][C][ota:094]: Address: 192.168.0.174:3232
      [16:28:33][C][api:138]: API Server:
      [16:28:33][C][api:139]: Address: 192.168.0.174:6053
      [16:28:33][C][api:143]: Using noise encryption: NO
      [16:28:38][D][dht:048]: Got Temperature=24.1°C Humidity=50.8%
      [16:28:38][D][sensor:127]: ‘esp174 Temperature’: Sending state 24.10000 °C with 1 decimals of accuracy
      [16:28:38][D][sensor:127]: ‘esp174 Humidity’: Sending state 50.80000 % with 0 decimals of accuracy
      [16:28:43][D][dht:048]: Got Temperature=24.1°C Humidity=50.3%
      [16:28:43][D][sensor:127]: ‘esp174 Temperature’: Sending state 24.10000 °C with 1 decimals of accuracy
      [16:28:43][D][sensor:127]: ‘esp174 Humidity’: Sending state 50.30000 % with 0 decimals of accuracy
      [16:28:48][D][dht:048]: Got Temperature=24.1°C Humidity=50.7%
      [16:28:48][D][sensor:127]: ‘esp174 Temperature’: Sending state 24.10000 °C with 1 decimals of accuracy
      [16:28:48][D][sensor:127]: ‘esp174 Humidity’: Sending state 50.70000 % with 0 decimals of accuracy
      ************************
      cela devrait fonctionner avec un DHT11
      J’espère vous avoir aider
      Cordialment

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *