Bonjour sais-tu joindre quelques photos de ton montage. Il faut savoir aussi que suivant les capteurs ultrason il y en a à 4 bornes et d'autres à 5 bornes. Et enfin très important les bibliothèques il faut avoir les dernières mises à jour mais ce n'est pas tout certains modifient eux-même les bibliothèques officielles il faut alors impérativement charger leur bibliothèque et pas l'officielle.
Après tous ces contrôles on peut seulement s'attaquer au code...
didiersee:
Bonjour sais-tu joindre quelques photos de ton montage. Il faut savoir aussi que suivant les capteurs ultrason il y en a à 4 bornes et d'autres à 5 bornes. Et enfin très important les bibliothèques il faut avoir les dernières mises à jour mais ce n'est pas tout certains modifient eux-même les bibliothèques officielles il faut alors impérativement charger leur bibliothèque et pas l'officielle.
Après tous ces contrôles on peut seulement s'attaquer au code...
Fil rouge : VCC sur le capteur et Wemos
Fil noir : GND sur le capteur et Wemos
Fil blanc : Trigger sur le capteur et D5 sur Wemos
Fil jaune : Echo sur le capteur et D6 sur Wemos
Le tout est alimenté en USB.
Voici mon code :
J'ai essayé de mettre D5 et D6 sur les PINs.
#include <ESP8266WiFi.h>
#include <WiFiClient.h>
#include <ESP8266WebServer.h>
// WIFI
const char* ssid = "monssid";
const char* password = "password";
IPAddress ip(monIP);
IPAddress gateway(monIP);
IPAddress subnet(255,255,255,0);
ESP8266WebServer server(80);
// defines pins numbers trigger and echo
const int trigPin = 14; //Digital port D5
const int echoPin = 12; //Digital port D6
// defines variables
long duration;
float distance;
float Mdistance;
const int led = LED_BUILTIN;
void setup(void){
pinMode(led, OUTPUT);
pinMode(trigPin, OUTPUT); // Sets the trigPin as an Output
pinMode(echoPin, INPUT); // Sets the echoPin as an Input
digitalWrite(led, 0);
Serial.begin(115200);
WiFi.begin(ssid, password);
WiFi.config(ip, gateway, subnet);
Serial.println("");
// Wait for connection
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print("...");
}
Serial.println("");
Serial.print("Connected to ");
Serial.println(ssid);
Serial.print("IP address: ");
Serial.println(WiFi.localIP());
server.on("/", webserver);
server.onNotFound(handleNotFound);
server.begin();
}
void loop(void){
server.handleClient();
distanceData();
delay(500);
Serial.print("Distance: ");
Serial.print(distance);
Serial.println(" cm");
}
void distanceData(){
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
// Sets the trigPin on HIGH state for 10 micro seconds
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
// Reads the echoPin, returns the sound wave travel time in microseconds
duration = pulseIn(echoPin, HIGH);
// Calculating the distance
distance= (duration*0.034)/2;
}
void webserver() {
digitalWrite(led, !digitalRead(led));
distanceData();
String content = "<html> <head> <meta http-equiv='refresh' content='1'> </head><body>";
content += "<center><h2>The distance is: ";
content += distance;
content += " cm </h2></center> </body></html>";
server.send(200, "text/html", content);
}
void handleNotFound(){
digitalWrite(led, 1);
String message = "File Not Found\n\n";
server.send(404, "text/plain", message);
digitalWrite(led, 0);
}
D’après ce que je vois sur ce site
le 5v alimente le wemos mais pas le capteur ultrason. Le plus simple est de mesurer avec un voltmètre si tu as bien du 5v sur ton capteur sinon tu alimentes ton wemos avec la prise usb et tu prends une autre alimentation de 5v pour ton capteur ATTENTION tu ne dois pas mettre les alimentations en parallèle mais bien les GND et uniquement les GND donc les masses.
A bientôt
On dirait que les pins ne sont pas soudées sur la carte. Est ce qu'elles sont affectivement bien soudées ?
Bonjour,
Je n'ai rien soudé. Je pensais qu'en utilisant une breadboard, ce n'était pas nécessaire.
Je pense que le problème vient de là. Si je joue un peu avec les fils, j'obtiens des valeurs, mais aléatoires et erronées
As tu vérifié au voltmètre que les tensions sur les pins du Wemos ont bien la tension attendue ?
Est-ce que tu peux renvoyer une nouvelle photo du câblage.
Sur l'ancienne je ne sais pas quoi penser à cause de l'effet de parallaxe mais des connexions me semblaient douteuses.
Pour éviter ce défaut essaye de prendre la photo bien au dessus de la plaque en tenant l'appareil bien horizontal.
Le mieux est de reprendre le test matériel depuis le début et avancé ainsi de suite avec le wifi en plus etc.
Commence par faire un test simple de ton capteur en procédant comme ceci bien sûr adapte les bons numéros de pin sur ta carte avec le code.
Si ça fonctionne on passera à l'étape suivante.
didiersee:
Commence par faire un test simple de ton capteur
+1
Branchez le hc-sr04 sur 3.3V ou utilisez un convertisseur 5V-3.3V.
La pin D5 (ECHO) a pris du 5V alors que le Wemos ne tolère que 3.3V. Choisissez-en une autre. Je changerais la pin du TRIGGER aussi, pour recommencer propre.
didiersee:
Le mieux est de reprendre le test matériel depuis le début et avancé ainsi de suite avec le wifi en plus etc.
Commence par faire un test simple de ton capteur en procédant comme ceci bien sûr adapte les bons numéros de pin sur ta carte avec le code.
Si ça fonctionne on passera à l'étape suivante.