Fehler mit Ultrasensor und Wemos D1 Mini pro

Hallo!
Wenn ich einen Ultrasensor an meinem Wemos D1 Mini pro anschließe bekomme ich über den Serial Monitor immer eine laufende Fehlermeldung wie folgt:
Fehlermeldung im Serial Monitor wenn ich den HC-SR04 anschließe:
Fatal exception (0):
epc1=0x40100038, epc2=0x00000000, epc3=0x00000000, excvaddr=0x00000000, depc=0x00000000
oder
Fatal exception (0):
epc1=0x4010000f, epc2=0x00000000, epc3=0x00000000, excvaddr=0x00000000, depc=0x00000000

Fehlermeldung im Serial Monitor wenn ich den jsn-sr04t anschließe:
Fatal exception (0):
epc1=0x4010000f, epc2=0x00000000, epc3=0x00000000, excvaddr=0x00000000, depc=0x00000000

Hier ein Ausschnitt von meinem Arduino Code (hoffe keinen wichtigen Teil vergessen zu haben):

#include <ESP8266WiFi.h>
#include <EEPROM.h>

//+ braun , - schwarz
int trigger = 0; //Gelb rx
int echo = 2;    // Grau tx
long dauer = 0;
long entfernung = 0;

void loop() {

  digitalWrite(trigger, LOW);
  delay(5);
  digitalWrite(trigger, HIGH);
  delay(10);
  digitalWrite(trigger, LOW);
  dauer = pulseIn(echo, HIGH);
  entfernung = (dauer / 2) / 29.1;

  Serial.println("dauer: "+ String(dauer));
  
  Serial.println("entferung: "+entfernung);

}

Ich verwende folgende Versionen und Einstellungen:

Arduino Version 1.8.13
Board: esp8266 Community Version 2.7.3 mit Lolin(Wemos)D1 mini Pro
Bei Voreinstellung Zusätzliche Boarverwalter-URLs: http://arduino.esp8266.com/stable/package_esp8266com_index.json

Hoffe es kann mir jemand weiter helfen.
Vielen Dank

Das Datenblatt, welches ich von dem US-Sensor besitze, besagt VCC=5V, also kannst du es nicht mit 3,3V betreiben.
Das wird wohl dein Fehler sein.

Bzw. die fehlende Initialisierung im Setup, welches komplett fehlt.

 void setup()
{
    Serial.begin(9600);                      // Die serielle Kommunikation starten
    pinMode(trigger, OUTPUT);                // Trigger Pin als Ausgang definieren
    pinMode(echo, INPUT);                    // Echo Pin als Eingang defnieren
}

Ein weiteres Problem sind die Pins 0 und 2 beim Wemos D1 mini. Diese sind nicht als normale GPIO zu nutzen. Auch da könnte dein Problem liegen.

Somit gleich 3 Fehler die du beseitigen solltest.

Vielen Dank für die Antwort.
Habe vergessen zu erwähnen, dass ich beim wemos auch bei 5v angeschlossen habe. Somit müsste es passen - oder?

Die Initialisierung habe vergessen zu posten. Verwende ich bereits.

Welche pins soll ich anstatt 0 und 2 verwenden?
Vielen Dank

Hallo!
Ich habe jetzt Pin 4 und 5 verwendet und jetzt funktioniert alles perfekt bei beiden Ultrasensoren.
Hoffe nur dass ich dann auch eine Reflektion auf Wasser bekomme, da ich diese für einen Wassertank verwenden möchte.
Danke

haiflosse:
Welche pins soll ich anstatt 0 und 2 verwenden?

Ich hatte das vor einiger Zeit am Laufen und habe die Pins D1 und D2 am Wemos mini genutzt. Achte darauf, dass das in der IDE die GPIO5 und GPIO4 sind. Das ist etwas verwirrend.

haiflosse:
Ich habe jetzt Pin 4 und 5 verwendet und jetzt funktioniert alles perfekt bei beiden Ultrasensoren.
Hoffe nur dass ich dann auch eine Reflektion auf Wasser bekomme, da ich diese für einen Wassertank verwenden möchte.

Ja, die Pins (GPIO) 4 und 5 sind ok.
Du musst dabei beachten, dass du bei Eingabe von Ziffern den GPIO ansprichst und nicht den "Arduino-Pin Dx".
Hier eine Aufstellung der ESP6288 Pins für div. Module.

Grundsätzlich funktioniert es mit Wasser.
Allerdings wirst du mit deinem US-Sensor nicht lange Freude haben.
Da solltest du einen wasserdichten US-Sensor nehmen.

Habe vergessen zu erwähnen, dass ich beim wemos auch bei 5v angeschlossen habe. Somit müsste es passen - oder?

Am Wemos ist 5V die Versorgungsspannung. Der Controller arbeitet mit 3,3V auch an den Pins. Da kann es mit 5V vom US-Snsor schon kritisch werden. Evtl. benötigst du einen Levelshifter. Das solltest du berücksichtigen und mal genau ausmessen.

haiflosse:
Hoffe nur dass ich dann auch eine Reflektion auf Wasser bekomme, da ich diese für einen Wassertank verwenden möchte.

Hoffentlich bekommst du nur Reflektionen vom Wasser und nicht von Seitenwänden.
Empfehlen kann mittlerweile die Flüssigkeitsstandssensoren https://amzn.to/2YrUUSn. Die ermitteln den Wasserstand über den Wasserdruck bzw. Differenz Wassersäule zum Luftdruck.

noiasca:
Hoffentlich bekommst du nur Reflektionen vom Wasser und nicht von Seitenwänden.
Empfehlen kann mittlerweile die Flüssigkeitsstandssensoren https://amzn.to/2YrUUSn. Die ermitteln den Wasserstand über den Wasserdruck bzw. Differenz Wassersäule zum Luftdruck.

Hallo noiasca,

hast du den Sensor selbst im Einsatz ?

Ok, kann man sicher noch optimieren. :wink:

Wichtig ist, es funktioniert erst mal und dann kann man sich an einen endgültigen Aufbau ran machen.

Wie sieht es denn mit der "Genauigkeit" aus ?
Der Sensor liegt hier auf dem Grund ?

Könnte tatsächlich eine gute Alternative zum US-Sensor sein, der bei mir in erner Zisterne schon ca. 5 Jahre funktioniert. da aber auch problemlos ohne Reflexionen der Seitenwände.

noiasca:
Welchen Durchmesser hat deine Zisterne?

Es ist ein liegender 3000 L. Tank mit einer 80 cm Öffnung.
Das funktioniert soweit prima.

Hallo!
Ich melde mich nochmals.
Ich habe bemerkt ,dass das ganze nur funktioniert wenn ich über den USB-Anschluß eine aktiven Stromzufuhr habe.
Wenn ich nur den Akku angeschlossen habe, wird der Akkustand immer mit 0 Liter übertragen. Auch kann ich beobachten wenn ich z.B. über den Resetknopf einen Neustart durchführe, dass beim Board des Ultrasensors kein blaues Licht aufleuchtet.
Sobald ich eine aktive Stromzufuhr beim Wemos über USB anschließe funktioniert es und es blinkt auch kurz beim Board des Ultrasensors ein blaues Licht auf.
Hoffe da kann mir hier nochmals jemand weiterhelfen.
Vielen Dank

Schaltbild und Foto des Aufbaus posten, dann können wir sehen, was du machst.

Vielen Dank für die Antwort.
Im Anhang einige Bilder, wie ich das ganze zusammengeschlossen habe.
Hoffe man kann alles erkennen.

Ich habe den Akku mit dem ph 2.0 Stecker am wemos Board angeschlossen.
Vom Wemos Board habe ich das Ultrasensor Board angeschlossen:
GND zu GND (braun)
5v zu 5v (weiß)
4 zu TX (grau)
5 zu RX (gelb)

Hier nochmals mein geänderter Code in Arduino:

#include <ESP8266WiFi.h>
#include <EEPROM.h>

//+ braun , - schwarz
int trigger = 5; //Gelb rx
int echo = 4;    // Grau tx
long dauer = 0;

long entfernung = 0;

void setup() {
  Serial.begin(74880);
  delay(10);
  pinMode(trigger, OUTPUT);
  pinMode(echo, INPUT);

}

void loop() {

  digitalWrite(trigger, LOW);
  delay(5);
  digitalWrite(trigger, HIGH);
  delay(10);
  digitalWrite(trigger, LOW);
  dauer = pulseIn(echo, HIGH);
  entfernung = (dauer / 2) / 29.1;

  Serial.println("dauer: "+ String(dauer));
  
  Serial.println(entfernung);

}

Hoffe ich habe nichts vergessen.
Vielen Dank für jede weitere Hilfe

Du bist da leider einem Irrtum aufgeflogen.

Wenn du dein System mit einem 3,7V Akku betreibst, hast du am 5V Pin des Controllers keine 5 Volt.
Sondern max. 3,7 V, sieh dir dazu das Schaltbild des Boards an.
Die 3,7 V reichen aber für den US-Sensor nicht aus.

Du kannst einen Stepup-Regler dazwischen schalten, der dann 5V aus den 3,7V macht.

Dann aber prüfen, ob nicht zu viel Spannung aus den Datenpins raus kommt. Nicht das der Controller stirbt.

Vielen Dank für die Antwort.
Leider bin ich da noch recht neu mit diesem Thema.
Kannst Du mir da helfen was für einen Setup Regler ich da benötige, wie ich diesen dann dazwischen schalten muss und wie ich diesen dann messen muss.
Vielen Dank

haiflosse:
Kannst Du mir da helfen was für einen Setup Regler ich da benötige, wie ich diesen dann dazwischen schalten muss und wie ich diesen dann messen muss.

Das Ding heißt "Stepup"-Regler.

Und empfehlen würde ich dir diesen Stepup-Regler. Der liefert bei 3,7 V Eingang immer 5Volt am Ausgang.

Mit seinen 3 Pins kann man nichts (fast) falsch machen.
Plus 3,7 Volt auf den Eingang und 5Volt kommen da raus.

Danke für die Antwort.
Bitte noch um die Info welche Ansnschlüsse von wo wohin angeschlossen werden sollen.
Danke

Das ist meist auf der Rückseite beschriftet.

Hier das Datenblatt dazu.

Danke für die Antwort.
Ich würde dann folgendes versuchen.
Gnd vom Wemos zum stepup Gnd.
5v vom Wemos zum stepup Vin.
5v vom Ultrasensor zum stepup vout.

Würde dies funktionieren?
Danke und lg

haiflosse:
Danke für die Antwort.
Ich würde dann folgendes versuchen.
Gnd vom Wemos zum stepup Gnd.
5v vom Wemos zum stepup Vin.
5v vom Ultrasensor zum stepup vout.

Würde dies funktionieren?
Danke und lg

So sollte es funktionieren.
Miss aber mal die Spannung, die am 5V Pin des Wemos ansteht.
Das werden vermutlich die 3,7V des Akku sein.