ESP8266 V3 Module Node-Mcu pour niveau cuve de pluie

Bonjour à tous,

J’ai un projet de détection du niveau d’eau de cuve mais j’ai quelques soucis. Je débute totalement avec les ESP.

produits :

Mon premier souci c’est la detection USB du fimware

J’ai ajouté une device comme ci-dessous :
image

Puis installé les drivers ci-dessous :
image
+

ensuite :

puis
image

Je ne comprend pas :frowning: J’ai essayé avec 2 boards…
Merci d’avance !

Salut

Déja il faut éclaircir quelques points:
HA tourne dans quelle configuration et sur quoi comme matériel ?
cela veut dire quoi ESPHome est connecté à Windows 11 ?
Le flashage à travers le browser ne marche qu’avec Chrome ou similaire (pas supporté par Firefox entre autre).
As-tu essayé en branchant l’ESP en USB sur la machine qui fait tourner HA et ESPHome et en choisissant « Plug in the computer running ESPHome Dashboard » ?

Vincèn

1 « J'aime »

Ah oui en effet
Alors ha est sur un pc dédié sur un proxmox.
En effet je branche sur mon pc portable donc logique que cela soit pas détecté

mon esp8266 est branché physiquement sur mon pc portable (pas celui de HA) mais pourtant sur
image

pourtant je suis bien sur web.esphome.io (donc rien à voir avec HA) pour essayer de flasher mon .bin. généré dans HA

Si c’est un PC dédié pourquoi avoir mis Proxmox au lieu d’installer directement HAOS ? Ça serait beaucoup plus simple et source de beaucoup de problèmes en moins :wink:

Non pas la peine de t’embêter avec web.esphome.io, tu flashes directement depuis ESPHome dans HA (il faut que tu installes le module complémentaire dans HA, et tu le démarres et tu auras alors ESPHome dans HA qui te permettra de flasher directement tes ESP :wink:

1 « J'aime »

ok j’avance,
en effet en plugant l’usb sur proxmox et en faisant, « installer via le pc ou y’a esp, ha et tout », cela fonctionne

par contre maintenant en collant le code de : Sign in to your account
venant de https://www.makeuseof.com/build-water-level-sensor-using-ultrasonic-sensor-and-home-assistant/

J’ai cette erreur

image

mon code yaml :

esphome:
  name: waterlevelsensor
  friendly_name: waterlevelsensor

esp8266:
  board: nodemcuv2

# Enable logging
logger:

# Enable Home Assistant API
api:
  encryption:
    key: "c+SATU1ejyXFcJyf27KXQpAp4cOvYD7EBUj2o71kRj4="

ota:
  - platform: esphome
    password: "5ac71d30b5ce7010d9ad9febe6913ae6"

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

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Waterlevelsensor"
    password: "aZPnhmLgjCJD"

captive_portal:

# Water Level Sensor
    
sensor:
  - platform: wifi_signal
    name: "WiFi Signal Sensor"
    update_interval: 60s          #to display WiFi signal strength
    
  - platform: ultrasonic
    trigger_pin: D5
    echo_pin: D6
    unit_of_measurement: "%"
    icon: "mdi:water-percent"
    accuracy_decimals: 0
    update_interval: 300000ms
    name: "Sweet Water storage"              #You may change the tank name
    
    # tank height: 1.20m
	  # distance between sensor and water brim 0.10m
    # full tank: tank height-0.10m = 1.10m
    # current reading: x
    # used = (x - 0.10m)
    # remaining = (1.10m - used)
    # percent = (remaining / 1.10m) * 100
    
    filters:
      - lambda: return (1-((x-.20)/1.20))*100;
      - filter_out: nan
      
  - platform: ultrasonic
    trigger_pin: D5
    echo_pin: D6
    update_interval: 1200000ms     #5 minutes. You can change this value
    name: "Remaining Water in Tank"
    unit_of_measurement: "l"
    accuracy_decimals: 0
    
    filters:
      - lambda: return (1-((x-.20)/1.20))*1000;
      - filter_out: nan

Ok j’ai réussi.
Pour ceux que cela intéresse. voici comment j’ai fait. (peut-être que c’est à améliorer/modifier je débute)

Projet : Domotiser niveau d’eau d’une cuve enterrée

Ma config et produits utilisés :

  • https://amzn.to/4eCRkKD : ESP8266MOD V3 Module Node-Mcu
  • https://amzn.to/4eAWjvm : Geroosaty 1 JSN-SR04T IntéGré Module Ultrasonique Capteur
  • Pc avece proxmox et HA à jour avec accès duckdns
  • module ESPhome officiel
  • Drivers cités plus haut
  • Installer ESPhome officiel
  • Brancher le ESP8266MOD sur le pc proxmox (et déclarer le port usb)
  • ajouter une device et configurer le wifi
  • décocher « Use recommended settings » et choisir 8266
  • dans la liste choisir NodeMCU 1.0 (ESP-12E Module) (déclaré comme « nodemcuv2 »)
  • faire l’installation et paf :slight_smile:

Pour info l’erreur de mon post précédent c’était une double déclaration de gpio
et ce qui est de ce plan → https://www.makeuseof.com/build-water-level-sensor-using-ultrasonic-sensor-and-home-assistant/
Les pin sont pas bons :
il faut mettre : GPIO3 et GPIO1

esphome:
  name: waterlevelsensor
  friendly_name: waterlevelsensor

esp8266:
  board: nodemcuv2

# Enable logging
logger:

# Enable Home Assistant API
api:
  encryption:
    key: "c+SATU1ejyXFcJyf27KXQpAp4cOvYD7EBUj2o71kRj4="

ota:
  - platform: esphome
    password: "5ac71d30b5ce7010d9ad9febe6913ae6"

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

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Waterlevelsensor"
    password: "aZPnhmLgjCJD"

captive_portal:

sensor:
  - platform: wifi_signal
    name: "WiFi Signal Sensor"
    update_interval: 60s          #to display WiFi signal strength
    
  - platform: ultrasonic
    trigger_pin: GPIO3
    echo_pin: GPIO1
    unit_of_measurement: "%"
    icon: "mdi:water-percent"
    accuracy_decimals: 0
    update_interval: 60s
    name: "Sweet Water storage"              #You may change the tank name
    filters:
    - lambda: return (1-((x-.20)/1.20))*100;
    - filter_out: nan

Hello,

J’ai écumé les forum pour un souci de timeout… quelqu’un aurait une idée ?
le yaml est plus haut
Merci d’avance

[17:40:53][D][ultrasonic.sensor:036]: 'Sweet Water storage' - Distance measurement timed out!
[17:41:01][D][sensor:093]: 'WiFi Signal Sensor': Sending state -60.00000 dBm with 0 decimals of accuracy
[17:41:03][D][ultrasonic.sensor:036]: 'Sweet Water storage' - Distance measurement timed out!
[17:41:13][D][ultrasonic.sensor:036]: 'Sweet Water storage' - Distance measurement timed out!
[17:41:17][I][safe_mode:041]: Boot seems successful; resetting boot loop counter
[17:41:23][D][ultrasonic.sensor:036]: 'Sweet Water storage' - Distance measurement timed out!
[17:41:33][D][ultrasonic.sensor:036]: 'Sweet Water storage' - Distance measurement timed out!
[17:41:43][D][ultrasonic.sensor:036]: 'Sweet Water storage' - Distance measurement timed out!
[17:41:53][D][ultrasonic.sensor:036]: 'Sweet Water storage' - Distance measurement timed out!
[17:42:01][D][sensor:093]: 'WiFi Signal Sensor': Sending state -60.00000 dBm with 0 decimals of accuracy
[17:42:03][D][ultrasonic.sensor:040]: 'Sweet Water storage' - Got distance: 1.006 m
[17:42:03][D][sensor:093]: 'Sweet Water storage': Sending state 71.86878 % with 0 decimals of accuracy
[17:42:13][D][ultrasonic.sensor:040]: 'Sweet Water storage' - Got distance: 1.006 m
[17:42:13][D][sensor:093]: 'Sweet Water storage': Sending state 71.86878 % with 0 decimals of accuracy
[17:42:23][D][ultrasonic.sensor:036]: 'Sweet Water storage' - Distance measurement timed out!
[17:42:33][D][ultrasonic.sensor:036]: 'Sweet Water storage' - Distance measurement timed out!
[17:42:43][D][ultrasonic.sensor:036]: 'Sweet Water storage' - Distance measurement timed out!
[17:42:53][D][ultrasonic.sensor:040]: 'Sweet Water storage' - Got distance: 1.002 m
[17:42:53][D][sensor:093]: 'Sweet Water storage': Sending state 72.12603 % with 0 decimals of accuracy
[17:43:01][D][sensor:093]: 'WiFi Signal Sensor': Sending state -59.00000 dBm with 0 decimals of accuracy
[17:43:03][D][ultrasonic.sensor:036]: 'Sweet Water storage' - Distance measurement timed out!

Le code ESPhome fonctionne bien pour les capteurs avec un émetteur et un récepteur séparés. Beaucoup moins bien avec ton capteur étanche d’après mes rapides essais.

C’est probablement parce que l’intervalle de temps entre le trigger et l’émission des ultrasons est bien plus grande avec ton capteur et que la valeur de timeout: (2m par défaut, unité ridicule, en fait c’est une durée) intègre malheureusement cette intervalle.

Augmente timeout: et tout devrait rentrer dans l’ordre.
Je te conseille de vérifier à l’air libre si les valeurs de distances remontées sont correctes.
Les echos sont très perturbés dans une cuve fermée.

Pour ma part, j’ai du utiliser un capteur classique non étanche (1 transducteur pour l’émetteur et un autre pour le récepteur) en réduisant son angle de détection avec 2 tubes de 8cm autour de chaque transducteur (idée trouvé ici dans je ne sais plus quel fil).
Je n’ai jamais réussi à avoir une mesure correcte avec le capteur étanche à transducteur unique, pas moyen de réduire son angle de détection donc de faux échos.

Et un filtre quantile: est un excellent moyen de se débarrasser des fausses mesures qui arrivent de temps en temps.

Salut merci pour l’info
Je vais tester avec un timeout a 4m voir.
Je test a l’air libre en effet pour le moment :+1:

ok ça fonctionne beaucoup mieux. Merci !

D’ailleurs, j’ai revu la formule de calcul lambda car elle n’était pas bonne

Distance du capteur du fond de la cuve : 1.8m
Distance du capteur et du niveau max de l’eau : 0.5m
Soit niveau max de l’eau 1.3m

#Water
sensor:
  - platform: wifi_signal
    name: "WiFi Signal Sensor"
    update_interval: 60s          
    
  - platform: ultrasonic
    trigger_pin: GPIO14
    echo_pin: GPIO12
    unit_of_measurement: "%"
    icon: "mdi:water-percent"
    accuracy_decimals: 0
    update_interval: 60s
    timeout: 6m
    name: "Sweet Water storage"              #You may change the tank name
    filters:
    - lambda: return ((1.8 - x) / 1.3) * 100;
    - filter_out: nan