ESP8266 - A02YYUW - Cuve récupérateur

Bonjour à tous,
J'ai cherché à faire un capteur de distance pour une cuve de récupération d'eau de pluie.
J'ai tenté avec un JSN-SR04T, mais il s'avère qu'à plus de 50 cm, il semblerait que le capteur ne fonctionne plus très bien dans une cuve étroite.

Je me suis commandé un module A02YYUW (https://fr.aliexpress.com/item/1005004673620129.html) mais le seul code que j'ai trouvé ici (A02YYUW Waterproof Ultrasonic Sensor Wiki - DFRobot) ne fonctionne pas et tombe en erreur (en remplaçant les PIN 10 et 11 par D6 et D7 pour mon ESP8266).

Auriez-vous un bout de code de votre côté qui fonctionne d'autant plus que je ne comprends tout le code ?

Merci par avance

hello, tu as pris cette lib? adaptée pour esp8266
ICI

Je vais essayé, mais ayant déjà utilisé la bibliothèque de base avec ESP8266 je n'avais pas rencontré de souci. J'essaie ce soir et je vous dit. merci

Je viens de tester, mais malheureusement ce n'est pas mieux.
Par contre, je suis étonné par l'appel de la bibliothèque est la même que celle d'origine (SoftwareSerial.h) même si j'ai changé le paramètre des ports
EspSoftwareSerial::UART mySerial(D6,D7); // RX, TX

Auriez-vous d'autres idées car je suis un peu perdu ?

Pourquoi est tu étonné, la librairie proposé par @dfgh permet d'avoir un port série gérer par logiciel.
que le point d'entrée s'appel SofwareSerial.h est plutôt logique?

Met ton code, cela donnera peut être des idées à certains ?

Bonjour,
Je suis étonné, car la bibliothèque "de base" porte le même nom que la bibliothèque proposé par @dfgh soit "SoftwareSerial.h"

Vous trouverez ci-dessous :

#include <SoftwareSerial.h>
EspSoftwareSerial::UART mySerial(D6,D7); // RX, TX
unsigned char data[4]={};
float distance;
void setup()
{
Serial.begin(57600);
mySerial.begin(9600);
}
void loop()
{
do{
for(int i=0;i<4;i++)
{
data[i]=mySerial.read();
}
}while(mySerial.read()==0xff);
mySerial.flush();
if(data[0]==0xff)
{
int sum;
sum=(data[0]+data[1]+data[2])&0x00FF;
if(sum==data[3])
{
distance=(data[1]<<8)+data[2];
if(distance>30)
{
Serial.print("distance=");
Serial.print(distance/10);
Serial.println("cm");
}else
{
Serial.println("Below the lower limit");
}
}else Serial.println("ERROR");
}
delay(1000);
}

A noter, cette librairie est installée automatiquement avec le package ESP8266.
Elle porte le même nom pour que le portage d'une application d'une carte AVR vers une carte ESP8266 soit transparent.

En faite non, ca c'est le fichier du point d'entrée et non son nom qui est EspSoftwareSerial.
Mais la librairie aurait aussi pu s'appeler exactement pareille et avoir un point d'entrée avec un autre nom :slight_smile:
Mais comme le dit @fdufnews, si tu veux que ce soit transparent, il est intéressant qu'elle porte le même nom, puisqu'elle a le même objectif.

OK, je comprends mieux. Merci à tous les deux.

Auriez-vous une idée sur l'origine de mon problème car je sèche complètement :pensive:

L'A02YYUW ne fera pas beaucoup mieux que le JSN-SR04T, le cône de mesure étant de 60 degrés au lieu de 75.

J'ai du mal à croire qu'il n'existe des solutions simples et étanches pour ce type d'utilisation qui est de plus en plus fréquent... Même en lisant votre blog (que je trouve au passage très intéressant et instructif), cette solution n'était pas exclue.

J'utilise le JSN-SR04T, mais le diamètre et la hauteur de mes cuves sont de 1m. Il y a fort à parier que la mesure soit perturbée si la cuve est presque vide.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.