# \[TUTORIEL\] Connaitre la capacité restante de sa cuve eau de pluie

**URL:** <https://community.gladysassistant.com/t/tutoriel-connaitre-la-capacite-restante-de-sa-cuve-eau-de-pluie/6272>\
**Category:** Tutoriels\
**Created:** [Avril 21, 2021, 9:11 UTC](https://community.gladysassistant.com/t/tutoriel-connaitre-la-capacite-restante-de-sa-cuve-eau-de-pluie/6272 "2021-04-21T21:11:26Z")\
**Posts on this page:** 10\
**Page:** 8

<div class="post-metadata">

**Author:** ![oli](https://gladys-assistant-community.b-cdn.net/letter_avatar_proxy/v4/letter/o/2bfe46/32.png) [@oli](https://community.gladysassistant.com/u/oli)\
**Post date:** [Janvier 28, 2024, 5:42 UTC](https://community.gladysassistant.com/t/tutoriel-connaitre-la-capacite-restante-de-sa-cuve-eau-de-pluie/6272/141 "2024-01-28T17:42:59Z")

</div>

bonjour.  
merci pour ce tuto ,mais âpres mise en œuvre rien ne fonctionne  
dans le moniteur série j’ai de point d’interrogation  
merci a celui qui prendra le temps d’y repondre

---

<div class="post-metadata">

**Author:** ![jerome](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/jerome/32/7030_2.png) [@jerome](https://community.gladysassistant.com/u/jerome)\
**Post date:** [Janvier 28, 2024, 8:08 UTC](https://community.gladysassistant.com/t/tutoriel-connaitre-la-capacite-restante-de-sa-cuve-eau-de-pluie/6272/142 "2024-01-28T20:08:27Z")

</div>

Bonjour @oli

Ton téléversement s’est bien passé ? tu es bien en 9600 bauds dans ton moniteur de série ? tu as que des points d’interrogations ou pleins de caractères différents ?

---

<div class="post-metadata">

**Author:** ![oli](https://gladys-assistant-community.b-cdn.net/letter_avatar_proxy/v4/letter/o/2bfe46/32.png) [@oli](https://community.gladysassistant.com/u/oli)\
**Post date:** [Janvier 29, 2024, 3:22 UTC](https://community.gladysassistant.com/t/tutoriel-connaitre-la-capacite-restante-de-sa-cuve-eau-de-pluie/6272/143 "2024-01-29T15:22:32Z")

</div>

bonjour @jerome  
voici mon televersement  
. Variables and constants in RAM (global, static), used 28728 / 80192 bytes (35%)  
║ SEGMENT BYTES DESCRIPTION  
╠══ DATA 1496 initialized variables  
╠══ RODATA 1312 constants  
╚══ BSS 25920 zeroed variables  
. Instruction RAM (IRAM\_ATTR, ICACHE\_RAM\_ATTR), used 60363 / 65536 bytes (92%)  
║ SEGMENT BYTES DESCRIPTION  
╠══ ICACHE 32768 reserved space for flash instruction cache  
╚══ IRAM 27595 code in IRAM  
. Code in flash (default, ICACHE\_FLASH\_ATTR), used 250036 / 1048576 bytes (23%)  
║ SEGMENT BYTES DESCRIPTION  
╚══ IROM 250036 code in flash  
esptool.py v3.0  
Serial port COM3  
Connecting…  
Chip is ESP8266EX  
Features: WiFi  
Crystal is 26MHz  
MAC: 34:94:54:8e:17:ce  
Uploading stub…  
Running stub…  
Stub running…  
Changing baud rate to 460800  
Changed.  
Configuring flash size…  
Auto-detected Flash size: 4MB  
Compressed 284592 bytes to 208993…  
Writing at 0x00000000… (7 %)  
Writing at 0x00004000… (15 %)  
Writing at 0x00008000… (23 %)  
Writing at 0x0000c000… (30 %)  
Writing at 0x00010000… (38 %)  
Writing at 0x00014000… (46 %)  
Writing at 0x00018000… (53 %)  
Writing at 0x0001c000… (61 %)  
Writing at 0x00020000… (69 %)  
Writing at 0x00024000… (76 %)  
Writing at 0x00028000… (84 %)  
Writing at 0x0002c000… (92 %)  
Writing at 0x00030000… (100 %)  
Wrote 284592 bytes (208993 compressed) at 0x00000000 in 4.9 seconds (effective 461.9 kbit/s)…  
Hash of data verified.

Leaving…  
Hard resetting via RTS pin…

---

<div class="post-metadata">

**Author:** ![oli](https://gladys-assistant-community.b-cdn.net/letter_avatar_proxy/v4/letter/o/2bfe46/32.png) [@oli](https://community.gladysassistant.com/u/oli)\
**Post date:** [Janvier 29, 2024, 3:24 UTC](https://community.gladysassistant.com/t/tutoriel-connaitre-la-capacite-restante-de-sa-cuve-eau-de-pluie/6272/144 "2024-01-29T15:24:28Z")

</div>

bonjour @jerome  
je suis bien en 9600 baud voici les messages

 ![image](https://gladys-assistant-community.b-cdn.net/uploads/default/original/2X/0/0bc2bd40e91bbb69e3880232fc7d5c206dac5878.png)

---

<div class="post-metadata">

**Author:** ![oli](https://gladys-assistant-community.b-cdn.net/letter_avatar_proxy/v4/letter/o/2bfe46/32.png) [@oli](https://community.gladysassistant.com/u/oli)\
**Post date:** [Janvier 29, 2024, 3:29 UTC](https://community.gladysassistant.com/t/tutoriel-connaitre-la-capacite-restante-de-sa-cuve-eau-de-pluie/6272/145 "2024-01-29T15:29:16Z")

</div>

bonjour @jerome  
voici mon code j’ai bien remplacer le ssid et mot de passe wifi ainsi que Gladys  
il y a juste le esp8266wifi que je n’ai pas trouver dans la bibliothèque  
donc j’ai installer  
 ![image](https://gladys-assistant-community.b-cdn.net/uploads/default/original/2X/4/48e75f48b6d3da57663ad1613b0ab63399042543.png)

#include \<ESP8266WiFi.h\>  
#include \<PubSubClient.h\>

/\* WIFI \*/

#define wifi\_ssid «&nbsp;…&nbsp;» // votre ssid wifi  
#define wifi\_password «&nbsp;…&nbsp;» // votre mot de passe wifi

/\* MQTT \*/

#define mqtt\_server «&nbsp;192.168.0.10&nbsp;»  
#define mqtt\_user «&nbsp;&nbsp;» // username  
#define mqtt\_password «&nbsp;&nbsp;» // mot de passe MQTT  
#define gladys\_topic «&nbsp;gladys/master/device/mqtt:garage:capteur-ultrason/feature/mqtt: garage:capteur-ultrason:quantite/state&nbsp;»  
#define mqtt\_cuve «&nbsp;mqtt:garage:capteur-ultrason&nbsp;» //Topic capteur cuve

/\* Buffer qui permet de décoder les messages MQTT reçus \*/

char message\_buff[100];

long lastMsg = 0; //Horodatage du dernier message publié sur MQTT  
long lastRecu = 0;  
bool debug = false; //Affiche sur la console si True

/\* Constantes pour les broches \*/

const byte TRIGGER\_PIN = 6; // Broche TRIGGER  
const byte ECHO\_PIN = 7; // Broche ECHO

/\* Constantes pour le timeout \*/

const unsigned long MEASURE\_TIMEOUT = 25000UL; // 25ms = ~8m à 340m/s

/\* Vitesse du son dans l’air en mm/us \*/

const float SOUND\_SPEED = 340.0 / 1000;

//Création des objets

WiFiClient espClient;  
PubSubClient client(espClient);

void setup() {

/\* Initialise le port serie \*/

Serial.begin(9600); //Facultatif pour le debug

/\* Initialise les broches \*/

pinMode(TRIGGER\_PIN, OUTPUT);  
digitalWrite(TRIGGER\_PIN, LOW); // La broche TRIGGER doit être à LOW au repos  
pinMode(ECHO\_PIN, INPUT);

setup\_wifi(); //On se connecte au réseau wifi  
client.setServer(mqtt\_server, 1883); //Configuration de la connexion au serveur MQTT  
}

//Connexion au réseau WiFi  
void setup\_wifi() {  
delay(10);  
Serial.println();  
Serial.print("Connexion a ");  
Serial.println(wifi\_ssid);

WiFi.begin(wifi\_ssid, wifi\_password);

while (WiFi.status() != WL\_CONNECTED) {  
delay(500);  
Serial.print(«&nbsp;.&nbsp;»);  
}

Serial.println(«&nbsp;&nbsp;»);  
Serial.println("Connexion WiFi etablie «&nbsp;);  
Serial.print(&nbsp;»=\> Addresse IP : ");  
Serial.print(WiFi.localIP());  
}

//Reconnexion  
void reconnect() {  
//Boucle jusqu’à obtenur une reconnexion  
while (!client.connected()) {  
Serial.print(«&nbsp;Connexion au serveur MQTT…&nbsp;»);  
if (client.connect(«&nbsp;ESP8266Client&nbsp;», mqtt\_user, mqtt\_password)) {  
Serial.println(«&nbsp;OK&nbsp;»);  
} else {  
Serial.print(«&nbsp;KO, erreur : «&nbsp;);  
Serial.print(client.state());  
Serial.println(&nbsp;» On attend 5 secondes avant de recommencer&nbsp;»);  
delay(5000);  
}  
}  
}

void loop() {  
if (!client.connected()) {  
reconnect();  
}  
client.loop();

long now = millis();

/_Envoi d’un message par minute_/

if (now - lastMsg \> 1000 \* 60) {  
lastMsg = now;

```
/* 1. Lance une mesure de distance en envoyant une impulsion HIGH de 10µs sur la broche TRIGGER */

digitalWrite(TRIGGER_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIGGER_PIN, LOW);

/* 2. Mesure le temps entre l'envoi de l'impulsion ultrasonique et son écho (si il existe) */

long measure = pulseIn(ECHO_PIN, HIGH, MEASURE_TIMEOUT);

/* 3. Calcul la distance à partir du temps mesuré */

int distance_mm = measure / 2.0 * SOUND_SPEED;
float c = 1750 - distance_mm; // TRES IMORTANT Remplacer 2000 par la hauteur de votre cuve
c = c / 2000;
c = c * 100;

//Inutile d'aller plus loin si le capteur ne renvoi rien
if ( isnan(c)) {
  Serial.println("Echec de lecture ! Verifiez votre capteur HRC-04");
  return;
}

if ( debug ) {
  Serial.print("Cuve : ");
  Serial.print(c);
}
client.publish(gladys_topic, String(c).c_str(), true); //Publie le % de la cuve sur le topic dans gladys

```

}  
}

---

<div class="post-metadata">

**Author:** ![jerome](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/jerome/32/7030_2.png) [@jerome](https://community.gladysassistant.com/u/jerome)\
**Post date:** [Janvier 30, 2024, 9:58 UTC](https://community.gladysassistant.com/t/tutoriel-connaitre-la-capacite-restante-de-sa-cuve-eau-de-pluie/6272/146 "2024-01-30T21:58:00Z")

</div>

Je pense que le problème vient de la bibliothèque en effet.

En regardant sur Google visiblement le problème est connu.

Par contre je ne suis pas un grand expert arduino et je pense que le code merite d’etre configuré de nouveau ou sinon il faut chercher le dossier zip de la bibliothèque pour l’intégrer directement.

---

<div class="post-metadata">

**Author:** ![jerome](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/jerome/32/7030_2.png) [@jerome](https://community.gladysassistant.com/u/jerome)\
**Post date:** [Janvier 30, 2024, 10:00 UTC](https://community.gladysassistant.com/t/tutoriel-connaitre-la-capacite-restante-de-sa-cuve-eau-de-pluie/6272/147 "2024-01-30T22:00:53Z")

</div>

Bonjour @pierre-gilles

Est-ce que dans la communauté il y a des personnes qui gèrent bien les codes arduino et qui pourrait regarder pour éventuellement modifier ou faire évoluer le code d’origine. Mes compétences sont trop limités.

---

<div class="post-metadata">

**Author:** ![GBoulvin](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/gboulvin/32/10006_2.png) [@GBoulvin](https://community.gladysassistant.com/u/GBoulvin)\
**Post date:** [Janvier 31, 2024, 5:13 UTC](https://community.gladysassistant.com/t/tutoriel-connaitre-la-capacite-restante-de-sa-cuve-eau-de-pluie/6272/148 "2024-01-31T17:13:13Z")

</div>

> [@jerome](#):
>
> le problème vient de la bibliothèque en effet

![image](https://gladys-assistant-community.b-cdn.net/uploads/default/original/2X/6/6a7e3ea0027f961c84fbe8e04c3a2467bf94d450.png)  
Et avec celle-là ?  
Je comptais me pencher sur le sujet car l’Arduino que j’utilisais pour cette fonction a pris l’eau et tant qu’à faire de le remplacer, je comptais mettre un Wemos. Je peux m’y pencher…  
Par contre, si je puis me permettre, Tasmota gère nativement ce genre de capteur sur un Wemos mais renverra juste une valeur en cm et non en % :

> **[HC-SR04 ultrasonic ranging sensor - Tasmota](https://tasmota.github.io/docs/HC-SR04/)**
>
> Documentation (Wiki) for Tasmota

Ca permet de tester facilement le montage en lui-même

---

<div class="post-metadata">

**Author:** ![Terdious](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/terdious/32/6316_2.png) [@Terdious](https://community.gladysassistant.com/u/Terdious)\
**Post date:** [Janvier 31, 2024, 7:30 UTC](https://community.gladysassistant.com/t/tutoriel-connaitre-la-capacite-restante-de-sa-cuve-eau-de-pluie/6272/149 "2024-01-31T19:30:52Z")

</div>

> [@GBoulvin](#):
>
> Par contre, si je puis me permettre, Tasmota gère nativement ce genre de capteur sur un Wemos mais renverra juste une valeur en cm et non en %

En ajoutant une règle il pourrait donner le % sur broker mqtt en cas de besoin

---

<div class="post-metadata">

**Author:** ![oli](https://gladys-assistant-community.b-cdn.net/letter_avatar_proxy/v4/letter/o/2bfe46/32.png) [@oli](https://community.gladysassistant.com/u/oli)\
**Post date:** [Février 1, 2024, 7:20 UTC](https://community.gladysassistant.com/t/tutoriel-connaitre-la-capacite-restante-de-sa-cuve-eau-de-pluie/6272/150 "2024-02-01T07:20:59Z")

</div>

merci pour votre réponse .  
je vais suivre le fil actualité , pour moi aussi mes compétences sont trop limitée pour modifier votre code

[Page précédente](https://community.gladysassistant.com/t/tutoriel-connaitre-la-capacite-restante-de-sa-cuve-eau-de-pluie/6272.md?page=7)
