Esp32 + solaire + batterie + deepsleep + niveau de cuve

Hello,

Tjs en cours de réalisation

à base d’un capteur ultrason JSN-SR04T fonctionnel, cela va me permettre d’explorer certaines parties que je ne connais pas trop ensemble, à savoir charge solaire, batterie, deep sleep

Schéma de base opérationnel

début des tests solaire

et assemblage de l’ensemble, faut pas se planter dans l’ordre d’assemblage des éléments :smiley:

le nouveau schéma sur lequel je suis parti suivra

cdt

Re,

Pas encore complet mais on n’est pas loin

cdt

2 « J'aime »

Bonjour, pour le code tu utilises esphome?
J’ai ajouté une mesure de tension sur le GPIO34 avec un diviseur de pont.
Ça marche bien cependant ce n’est pas très stable comme le montre mon historique :

En tout cas voici mon code si ça peut aider.

Je suis aussi preneur du tien si tu veux bien pour comparer.

Mon code esphome.

esphome:
  name: esp-cuve
  friendly_name: ESP-Cuve

esp32:
  board: esp32dev
  framework:
    type: arduino

wifi:
  ssid: box
  password: secret

  
logger:

api:

ota:
  platform: esphome

# Active le proxy Bluetooth pour Home Assistant
esp32_ble_tracker:

bluetooth_proxy:

# Capteur de distance ultrasonique
sensor:
  - platform: ultrasonic
    trigger_pin: GPIO17
    echo_pin: GPIO18
    name: "Distance eau brut"
    update_interval: 900s
    unit_of_measurement: "m"
    accuracy_decimals: 3
    id: distance_eau_brut

  # Hauteur d’eau (calculée)
  - platform: template
    name: "Hauteur d'eau"
    unit_of_measurement: "m"
    accuracy_decimals: 2
    update_interval: 900s
    lambda: |-
      const float hauteur_totale = 0.94;
      if (isnan(id(distance_eau_brut).state)) return NAN;
      float distance = id(distance_eau_brut).state;
      return (distance > hauteur_totale) ? 0 : hauteur_totale - distance;

  # Niveau en litres
  - platform: template
    name: "Niveau cuve en litres"
    unit_of_measurement: "L"
    accuracy_decimals: 0
    update_interval: 900s
    lambda: |-
      const float hauteur_totale = 0.94; // m
      const float longueur = 1.10;       // m
      const float largeur = 0.90;        // m
      if (isnan(id(distance_eau_brut).state)) return NAN;
      float hauteur_eau = hauteur_totale - id(distance_eau_brut).state;
      if (hauteur_eau < 0) hauteur_eau = 0;
      float volume_m3 = hauteur_eau * longueur * largeur;
      return volume_m3 * 1000.0;

  # Mesure de tension de la batterie 12V
  - platform: adc
    pin: GPIO34
    name: "Tension batterie"
    unit_of_measurement: "V"
    update_interval: 900s
    attenuation: 12db
    accuracy_decimals: 2
    filters:
      - multiply: 4.3
    id: tension_batterie

Je cherche aussi à faire cela avec un esp32-h2 en zigbee, pour voir si c’est pas un problème de wifi mais bon là j’ai trop du mal à déjà juste faire le build avec ide-espressif.

En tout ça merci pour ton partage.

Jobe

1 « J'aime »

Re,

J’ai plusieurs « chantiers » en cours du coup je swappe de l’un à l’autre… je reviens bientôt sur ce projet :wink:

merci pour ton partage également :+1:

cdt

1 « J'aime »

Re,

Je viens de penser qu’en attendant tu peux ajouter un sensor pour surveiller le wifi

sensor:
  - platform: wifi_signal
    name: "WiFi Signal Strength"
    update_interval: 60s

il faudra sans doute adapter le temps de remontée

Et oui j’utilise esphome ( je n’avais pas pensé de répondre )

cdt

1 « J'aime »

Merci bonne idée, je vais essayer avec le sensor

Re,

Début des tests du circuit de charge du TP4056 sur 1 batterie ( les 2 sont à 2.92V ) pendant 1h je changerai de batterie au bout de 1h temps couvert et sous la tonnelle

les panneaux sont des 6V câblés en //, sortie de panneaux j’ai une tension de

sortie du régulateur de charge, il est censé me donner 4.2V max pour charger des batteries de 3.7V

« en charge » led rouge allumée, à confirmer au bout de 1h

j’ai mis un panneaux transparent au dessus des panneaux qui ne sont pas protégés par une résine
je perds 0.04V sortie de panneau

cdt