ESP8266 ESPEasy mit HC-SR04

OP #5516807
Lesenswert?

Hallo zusammen,

ich hab den ESP8266 mit der Firmware ESPEasy_R120 geflasht und versuche 
den o.g. Ultraschallsensor mit einzubinden, leider ohne Erfolg. Der 
ESP8266 läuft mit 3,3V, der Sensor mit 5V. Der GPIO0 geht über einen 
Levelshifter auf den Sensor-Trigger und der GPIO2 ebenfalls über einen 
Levelshifter auf den Sensor-Echo. M.E. habe ich alle Einstellungen die 
notwendig sind richtig gemacht, doch ich bekomme einfach keinen Wert 
angezeigt. Um die Fehler einzugrenzen habe ich alle Komponenten einzeln 
getestet. Der Sensor reagiert bei Trigger und ich bekomme ein Echo 
zurück. Der Levelshifter "shiftet" von 3,3V auf 5V und umgekehrt. Bei 
den ESP8266 bin ich mir nicht so ganz sicher. Der GPIO0 der als Trigger 
fungiert gibt laut Osszi keinen Mucks von sich. Ich gehe davon aus, dass 
er zyklisch ein Signal zum triggern des Sensor liefern sollte, was aber 
nicht der Fall ist.  Wenn ich den GPIO2 auf den Echo des Sensors lege 
(über den Levelshifter), leuchte die blaue LED durchgängig, was auch 
immer das bedeuten mag. Ich hab auch testweise die Pins getauscht, ohne 
Erfolg. Selbst wenn ich den Sensor von aussen über einen Rechteck 
trigger und nur den Echo auf den GPIO2 lege, bleibt der Wert bei 0. Wo 
ist mein Fehler ? Ist es tatsächlich der ESP8266 der eine Macke hat oder 
doch ich ?

Gruss
Angehängte Dateien:
Gast #5516830
Lesenswert?

Ist vermutlich ein ESP01...weil GP0 und GP2 verwendet werden. Besser 
ESP12F verwenden, weil GP0 und GP02 von Espeasy bzw. vom ESP01 intern 
verwendet werden. Hatte die selbe Erfahrung gemacht. Besser ESP12F und 
andere GP Pins verwenden.
Gast #5516904
Lesenswert?

Du kannst die ESP-01 verwenden. Ob das mit ESPEasy geht, weiß ich nicht.

Vielleicht funktioniert dein Levelshifter nicht gut. Es wäre gut 
gewesen, von dem ganzen Aufbau wenigstens einen Block-Schaltplan zu 
zeigen und die konkreten Produkte zu benennen.

Von welcher blauen LED schreibst du? Woran ist sie angeschlossen?

Es wäre sicher auch hilfreich, die Bilder vom Oszilloskop zu zeigen, 
anstatt sie so vage zu beschreiben.

GPIO0 und GPIO2 müssen beim Start (Reset) bestimmte Pegel haben, damit 
die Firmware überhaupt ausgeführt wird: 
http://stefanfrings.de/esp8266/index.html#fwupdate

Den Ultrashall Sensor kannst du mit 3,3V triggern, das genügt ihm. 
Dessen Echo Ausgang kannst du über einen Spannungsteiler (Beispiel siehe 
meine Homepage) mit einem Eingang vom ESP verbinden.
OP #5517078
Lesenswert?

Stefanus F. schrieb:
> Vielleicht funktioniert dein Levelshifter nicht gut. Es wäre gut
> gewesen, von dem ganzen Aufbau wenigstens einen Block-Schaltplan zu
> zeigen und die konkreten Produkte zu benennen.

Hallo Stefan, wie schon geschrieben habe ich die einzelnen Komponenten 
getestet. Mit den Levelshifter hab ich den ESP auch neu geflasht. So 
viel gibt da nicht zu sehen.

Stefanus F. schrieb:
> Von welcher blauen LED schreibst du? Woran ist sie angeschlossen?

Die Diode auf dem ESP.

Stefanus F. schrieb:
> Es wäre sicher auch hilfreich, die Bilder vom Oszilloskop zu zeigen,
> anstatt sie so vage zu beschreiben.

Ich trigger und bekomme ein Impuls als Echo, was für ein Osszibild 
erwartest du denn ? ich kann gerne ein bild machen, ich weiß nur nicht 
wie das helfen soll meine Fragen zu beantworten.

Stefanus F. schrieb:
> GPIO0 und GPIO2 müssen beim Start (Reset) bestimmte Pegel haben, damit
> die Firmware überhaupt ausgeführt wird:
> http://stefanfrings.de/esp8266/index.html#fwupdate

Ja, das ist doch schon abgeschlossen. Es ging doch jetzt darum zu klären 
wie ich die GPIO nach dem flashen nutzen kann.
Gast #5517278
Lesenswert?

> habe ich die einzelnen Komponenten getestet

Aber nicht zusammen. Bzw. du testest sie gerade zusammen und sie 
funktionieren eben NICHT.

> So viel gibt da nicht zu sehen.

Ich kann Dir helfen, aber nur wenn mir klar ist, was du da machst. Für 
mich gibt es da eine Menge zu sehen. Zeige dein Blockschaltbild und 
bitte auch Fotos vom Aufbau. Es kann ja sein, dass dein Aufbau nicht dem 
Plan entspricht. Das soll kein Vorwurf von Doofheit sein, sondern 
basiert einfach auf Erfahrung. Je mehr Augen drauf schauen, umso eher 
wird der Fehler gefunden.

Solange du alles schön und gut beschreibst, ist kein Fehler erkennbar. 
Wenn in deiner Beschreibung ein Haken wäre, hättest du ihn selbst 
erkannt.

> ich weiß nur nicht wie das helfen soll meine Fragen zu beantworten.

Ich möchte sehen, ob die Form und Pegel der Impulse gut sind und ob das 
Timing dem Soll entspricht.

Alternativ könntest du mit einem erprobten Programm vergleichen. Ich 
nehme an, dass du auch AVR Mikrocontroller vorliegen hast. Dann probiere 
mal das:
http://stefanfrings.de/hc-sr04/index.html

Du hast noch nicht verraten, welches ESP Modul und welchen Levelshifter 
du verwendest.
OP #5521156
Lesenswert?

Anbei ein Blockschaltbild, Fotos vom Aufbau und vom Sensortest (roter 
Kanal Trigger und der gelbe das Echo). Ich benutze den ESP01 mit 
ESPEasy_R120 geflasht. Das ist der Levelshifter 
https://www.ebay.de/itm/5Pcs-4-Channel-IIC-I2C-Logic-Level-Converter-Bi-Directional-Module-5V-to-3-3V/272810240638?ssPageName=STRK%3AMEBIDX%3AIT&_trksid=p2057872.m2749.l2648, 
Blockschaltbild ebenfalls angehangen.
#5521301
Lesenswert?

Hab mir Deine Bilder nicht im Detail angesehen, aber was mich etwas 
stutzig macht ist die Beschreibung des LevelKonverters:

"Each level converter has the capability of converting 4 pins on the 
high side to 4 pins on the low side with two inputs and two outputs 
provided for each side."

Versuchs mal ohne Level-Konverter:
Der HC04 braucht zwar 5V Versorgungsspannung, aber triggern kannst ihn 
auch mit 3,3V
Und die Rückmeldung vom HC04 hat zwar 5V, aber die Verträgt der ESP8266 
am Eingang
Gast #5521321
Lesenswert?

Der Levelshifter ist für den I²C Bus gedacht, aber ich denke, das ist 
gerade nicht dein Hauptproblem.

> Und die Rückmeldung vom HC04 hat zwar 5V, aber die
> Verträgt der ESP8266 am Eingang

Nur mit Glück. Wer sich nicht auf Glück verlässt, liest das Datenblatt.

Falls Dir der Levelshifter suspekt ist, kannst du dein Ultrashallmodul 
wirklich mal direkt mit dem 3,3V Signal triggern und dessen Echo Ausgang 
über einen simplen Spannungsteiler auf 3,3V runter bringen:
1
               1k Ohm
2
5V Signal o---[===]---+-------> 3,3V 
3
                      |
4
      GND |---[===]---+
5
               2,2k Ohm

Was zeigt das Oszilloskop-Bild?

Ich würde gerne mal die beiden Signale (Echo und Trigger) am jeweiligen 
Ausgang des Levelshifters sehen. Am Besten beide zusammen in einem Bild, 
so dass man zuerst den Trigger Impuls und dann danach den Echo-Impuls 
sehen kann.
Beide Kanäle sollen bitte so eingestellt sein, das sie bei wirklichen 
Null Volt (also GND) auch auf der Null-Linie stehen.

Noch ein Tipp zum Aufbau: Sieht gut aus, bis auf eine Kleinigkeit: Das 
ESP Modul benötigt einen Elko mit 100µF oder 220µF direkt ans Modul 
gelötet (nicht an den Adapter), damit es zuverlässig funktioniert.
#5521354
Lesenswert?

Stefanus F. schrieb:
> Nur mit Glück. Wer sich nicht auf Glück verlässt, liest das Datenblatt.

Das ist ein alter Übersetzungsfehler der sich immer noch hartnäckig 
hält:

hier die Stellungnahme vom Espressiv-Chef:

Teo Swee Ann i can reply officially here: it is 5V tolerant at the IO. 
while the supply voltage is at 3.3V.

https://www.facebook.com/groups/1499045113679103/permalink/1731855033731442/?hc_location=ufi
Gast #5521378
Lesenswert?

Ja, diese angebliche Stellungnahme wird immer wieder zitiert. Ist 
sortiere sie als klassische Fake News ein.

Abgesehen davon, schau mal wie viele Revisionen des Datenblattes NACH 
diesem Statement herausgegeben wurden. Im aktuellen Datenblatt Kapitel 
5.1 steht unmissverständlich:

> I/O VIH max 3,6V

Da gibt es nichts falsch zu übersetzen.

Wenn du meinst, auf 5V gehen zu können und mit dieser Methode deine 
Firma zu Grunde richtest, kannst du ja mal Espressif um Aushilfe bitten. 
Die werden sich vor Lachen auf den Boden werfen.
OP #5526132
Lesenswert?

Stefanus F. schrieb:
> Ich würde gerne mal die beiden Signale (Echo und Trigger) am jeweiligen
> Ausgang des Levelshifters sehen. Am Besten beide zusammen in einem Bild,
> so dass man zuerst den Trigger Impuls und dann danach den Echo-Impuls
> sehen kann.

So hab ich gemacht. Rot = Trigger und Ausgang vom Levelshifter. Gelb = 
Echo und Ausgang vom Levelshifter.

Versteh das bitte nicht falsch ich bin echt froh, dass sich einer soviel 
Mühe gibt und versucht zu helfen. Nur ich verstehe gerade die 
Vorgehensweise nicht so ganz. Ich hatte doch schon gesehen, dass der 
ESP01 gar kein Trigger-Signal rausgibt und so auch kein Echo zurück 
kommen kann. Warum untersuche ich dann jetzt den Levelshifter, wenn 
damit schon eigentlich klar ist, dass der ESP01 das Problem sein muss ?


Manfred Scheer schrieb:
> Ist vermutlich ein ESP01...weil GP0 und GP2 verwendet werden. Besser
> ESP12F verwenden, weil GP0 und GP02 von Espeasy bzw. vom ESP01 intern
> verwendet werden. Hatte die selbe Erfahrung gemacht. Besser ESP12F und
> andere GP Pins verwenden.

Manfred hatte doch schon geschrieben, dass die Eingänge auch für andere 
Zwecke gebraucht werden, was meine Vermutung wieder stützt, dass der 
ESP01 das Problem ist und ich deshalb auch kein Triggersignal bekomme. 
Eine Alternative für mich wäre entweder den vorgeschlagenen ESP12F zu 
benutzen oder für den ESP01 eine Firmware drauf zu spielen, welche die 
GPIO's ich die dafür brauche für die Zwecke auch benutzt. Das ESPEasy 
kann das anscheinend nicht. Ich würde fast schon die erste Alternative 
bevorzugen, da ich hier das Rad nicht neu erfinden will, indem ich eine 
komplett neue Firmware dafür schreibe.
Angehängte Dateien:
Gast #5526392
Lesenswert?

Das Triggersignal hat auf jeden Fall die falsche Form. Es soll ein 
kurzer Impuls sein.

Außerem gefällt mir das gelbe Signal nicht. Dein Levelshifter hebt es 
nicht auf 5V, mit der gezeigten Spannung ist es reine Glückssache ob der 
High Pegel als High erkannt wird.
OP #5528439
Lesenswert?

Stefanus F. schrieb:
> Das Triggersignal hat auf jeden Fall die falsche Form. Es soll ein
> kurzer Impuls sein.

Ich hatte doch schon geschrieben, dass ich kein Trigger vom ESP bekomme 
und das manuell auslösen muss.

Stefanus F. schrieb:
> Außerem gefällt mir das gelbe Signal nicht. Dein Levelshifter hebt es
> nicht auf 5V, mit der gezeigten Spannung ist es reine Glückssache ob der
> High Pegel als High erkannt wird.

Gelb = Echo und Ausgang vom Levelshifter. Das Echo hat 5V vom Sensor und 
wird mit den Levelshifter für den ESP auf 3,3V gebracht. Was ist daran 
verkehrt ?

P. F. schrieb:
> Versteh das bitte nicht falsch ich bin echt froh, dass sich einer soviel
> Mühe gibt und versucht zu helfen. Nur ich verstehe gerade die
> Vorgehensweise nicht so ganz. Ich hatte doch schon gesehen, dass der
> ESP01 gar kein Trigger-Signal rausgibt und so auch kein Echo zurück
> kommen kann. Warum untersuche ich dann jetzt den Levelshifter, wenn
> damit schon eigentlich klar ist, dass der ESP01 das Problem sein muss ?

Was sagst Du denn zu meinen Einwand ?
Gast #5528548
Lesenswert?

> Gelb = Echo und Ausgang vom Levelshifter. Das Echo hat 5V
> vom Sensor und wird mit den Levelshifter für den ESP auf
> 3,3V gebracht. Was ist daran verkehrt ?

Sorry, ich habe da was durcheinander gebracht. Facepalm. Da ist nichts 
verkehrt.
OP #5565315
Lesenswert?

Manfred Scheer schrieb:
> Ist vermutlich ein ESP01...weil GP0 und GP2 verwendet werden. Besser
> ESP12F verwenden, weil GP0 und GP02 von Espeasy bzw. vom ESP01 intern
> verwendet werden. Hatte die selbe Erfahrung gemacht. Besser ESP12F und
> andere GP Pins verwenden.

So, ich hab jetzt auf einen ESP12 gewechselt. Das Ergebnis ist jedoch 
das selbe ? Wo ist mein Denkfehler ?
Angehängte Dateien:
OP #5567278
Lesenswert?

Stefanus F. schrieb:
> P. F. schrieb:
>> Die teile sind doch schon 100fach in Benutzung
>
> Da wäre ich Dir nicht ganz so sicher.
>
> Ich bezweifle allerdings nicht, dass du diese Zahl irgendwo her hast.
> Dann frage doch mal dort nach. Irgendwo müssen die 100 Leute ja sein,
> die das ans Laufen gebracht haben.
>
> Frage mal dort: https://www.letscontrolit.com/forum/

Hi Stefan,

hast du die Teile im Einsatz ? Hast du keine Idee mehr ? In den letzten 
Beiträgen schien es mir so als hättest du damit Erfahrung.
Gast #5567284
Lesenswert?

P. F. schrieb:
> hast du die Teile im Einsatz ? Hast du keine Idee mehr ? In den letzten
> Beiträgen schien es mir so als hättest du damit Erfahrung.

Ich habe ESP Module und auch diese HC_SR04 Module im Einsatz, aber nicht 
mit dieser ESPEasy Software. Soweit ich die bisherigen Informationen 
deuten kann, scheint es sich wohl um einen Softwarefehler zu handeln.
Gast #5567286
Lesenswert?

wo sendet ESPEasy denn die Daten hin? Ich kenne das so das ein 
Controller definiert wird und hinter dem 'Send Data' steht dann noch die 
Controller Nummer wo der Wert reingeschrieben wird.  Der Controller ist 
dann z.B. ein MQTT Broker und da sieht man den Wert dann.
Den HC-SR404 habe ich nicht an ESPEasy, habe das bisher mit 
Zählereingängen und DigitalOut laufen. Einen HC könnte ich heute Abend 
mal anklemmen.
OP #5567303
Lesenswert?

Johannes S. schrieb:
> wo sendet ESPEasy denn die Daten hin?

Irgends. Ich kann die über den Browser unter den Einstellung einsehen, 
wenn sie mal da wären. In den vorherigen Tests mit dem ESP01, hatte ich 
schon geschrieben, dass auch beim messen mit den Osszi kein Echo des 
Sensors bzw. auch kein Trigger Signal vom ESP zum Sensor sehen kann. 
Jetzt hatte ich den ESP01 gegen einen ESP12 getauscht und hab genau das 
selbe Problem.

Johannes S. schrieb:
> Einen HC könnte ich heute Abend
> mal anklemmen.

Das wäre gut.
#5567337
Lesenswert?

Welche Pegel hast du den am ESP Trigger Ausgang. Ein kurzer Blick in das 
ESPEasy Wiki zeigt das diese als Output High oder Output Low definierbar 
sind. Dies soll den Default Pegel des Pins nach dem Booten angeben.

Hast du mit dieser Einstellung mal gespielt und verifiziert das die 
Pegel nach aufstarten des ESP Moduls mit der Einstellung übereinstimmen?

Siehe auch den Hinweis unter Devices, vielleicht hilft auch das ...
Angehängte Dateien:
Gast #5567345
Lesenswert?

Markus S. schrieb:
> Welche Pegel hast du den am ESP Trigger Ausgang. Ein kurzer Blick in das
> ESPEasy Wiki zeigt das diese als Output High oder Output Low definierbar
> sind. Dies soll den Default Pegel des Pins nach dem Booten angeben.
>
> Hast du mit dieser Einstellung mal gespielt und verifiziert das die
> Pegel nach aufstarten des ESP Moduls mit der Einstellung übereinstimmen?

Guter Punkt.

Das obige Oszilloskopbild zeigt rot den Trigger, und zwar nur eine 
einzige Flanke von High nach Low. Ich "zitiere" mal davon:
1
          _________
2
Trigger:           |___________________________________________
3
                      _________________
4
Echo:    ____________|                 |_______________________

Wann wurde diese ausgelöst? Wann geht die rote Linie zurück auf High?

Meine HC-SR04 Module erwarten einen LOW Ruhepegel und einen kurzen 
High-Impuls als Trigger:
1
                 _
2
Trigger: _______| |_____________________________________________
3
                      ________________
4
Echo:    ____________|                |_________________________
(Firma: Vescomp) #5567401
Lesenswert?

Stefanus F. schrieb:
> Meine HC-SR04 Module erwarten einen LOW Ruhepegel und einen kurzen
> High-Impuls als Trigger:
>                  _
> Trigger: _______| |_____________________________________________
>                       ________________
> Echo:    ____________|                |_________________________

 Ja, funktioniert aber auch mit langem High Pegel, gerade ausprobiert.

 Wird wahrscheinlich durch fallende Flanke getriggert.
Angehängte Dateien:
OP #5567446
Lesenswert?

P. F. schrieb:
> Stefanus F. schrieb:
>> Das Triggersignal hat auf jeden Fall die falsche Form. Es soll ein
>> kurzer Impuls sein.
>
> Ich hatte doch schon geschrieben, dass ich kein Trigger vom ESP bekomme
> und das manuell auslösen muss.

Auch bei den ESP12 bekomme ich kein Trigger. Dann kann ich auch kein 
Echo des Sensors erwarten.

Markus S. schrieb:
> Welche Pegel hast du den am ESP Trigger Ausgang.

S.o.

Markus S. schrieb:
> Siehe auch den Hinweis unter Devices, vielleicht hilft auch das ...

Das probiere ich noch aus. Hatte das so beibehalten wie es war.

Stefanus F. schrieb:
> Das obige Oszilloskopbild zeigt rot den Trigger, und zwar nur eine
> einzige Flanke von High nach Low. Ich "zitiere" mal davon:

Ich hatte dort nur den Levelshifter getestet (Handtigger), ob es auch 
den Pegel ausgibt der sein soll.

Markus S. schrieb:
> Eine nächste Kontrollmöglichkeit bietet das Logging der Firmware, was
> steht dort im Log? Wird überhaupt versucht den HC-SR04 Sensor
> anzusprechen oder hast du noch ein anderes Problem?

Guter Tipp. Guck ich nach.
OP #5567782
Lesenswert?

Stefanus F. schrieb:
> Woran hat es letztendlich gelegen?

An der Firmware. Ich hab über github die ältere Version 20180606 
runtergeladen und neu geflasht. Damit geht es ohne Probleme. Aber nur 
der ESP12. Der ESP01 lässt sich zwar flashen, gibt beim booten aber 
einen Fehler.

Johannes S. schrieb:
> Im letscontrolit Forum gibt es aber ähnliche Berichte, der HC scheint in
> der aktuellen Version tatsächlich nicht mehr zu funktionieren, ältere
> Firmware <= 20180606 soll noch ok sein.
> 
http://www.letscontrolit.com/forum/viewtopic.php?f=18&t=5605&p=29939&hilit=hc+sr04#p29939

Danke für den Tip.
Gast #5567791
Lesenswert?

P. F. schrieb:
> Der ESP01 lässt sich zwar flashen, gibt beim booten aber
> einen Fehler.

Die hatten ursprünglich nur 512k Byte Flash Speicher.

Meine mit 512k byte sind blau. Die neueren mit 1M Byte sind schwarz. Ich 
bin aber nicht sicher, ob die Farbe ein verlässliches Kennzeichen ist.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren