HowTo: ESPEasy – VL53L0X / VL53L1X Distanzsensor an den ESP8266 / ESP32 anschließen und auslesen

Der VL53L0x bzw. seine Schwester/Bruder, der VL53L1X ist ein sehr genauer und relativ günstiger Laser Abstandssensor. Mit diesem lassen sich Abstände fast auf den Millimeter genau messen.

In einem meiner anderen Projekte (siehe ESPEasy – Füllstandssensor mit VL53L0X / VL53L1X) verwende ich diesen Sensor auch schon um, zum Beispiel, den Füllstand einer Regentonne zu überwachen.

Dieser Sensor lässt sich, wie viele andere auch in ESPEasy einbinden, auslesen und dessen Daten versenden.

Wie Ihr ESPEasy so konfiguriert, dass es den VL53L0X / VL53L1X auslesen kann, ist im folgenden Artikel beschrieben.


Sicherheitshinweise

Ich weiß die folgenden Hinweise sind immer irgendwie lästig und wirken unnötig. Aber leider haben schon viele Menschen die es "besser" wussten aus Leichtsinnigkeit Augen, Finger oder anderes verloren bzw. sich verletzt. Im Vergleich dazu ist ein Datenverlust fast nicht der Rede Wert, aber auch diese können echt ärgerlich sein. Deswegen nehmt Euch bitte fünf Minuten Zeit um die Sicherheitshinweise zu lesen. Denn auch das coolste Projekt ist keine Verletzung oder anderen Ärger wert.
https://www.nerdiy.de/sicherheitshinweise/

Affiliatelinks/Werbelinks

Die hier in aufgeführten Links zu Online-Shops sind sogenannte Affiliate-Links. Wenn Du auf so einen Affiliate-Link klickst und über diesen Link einkaufst, bekommt Nerdiy.de von dem betreffenden Online-Shop oder Anbieter eine Provision. Für Dich verändert sich der Preis nicht. Falls Du Deine Einkäufe über diese Links tätigst unterstützt Du Nerdiy.de dabei auch in Zukunft weitere nützliche Projekte anbieten zu können. 🙂 


Voraussetzungen

Hilfreiche Artikel:
Zusätzliche Tipps zum Thema ESPEasy findet Ihr in den folgenden Artikeln.

Benötigtes Werkzeug:

Benötigtes Material:


Den VL53L0X / VL53L1X an den ESP8266 anschließen

Der VL53L0X / VL53L1X wird über den I2C Bus mit dem ESP8266 bzw. Wemos D1 Mini verbunden.

Wenn der I2C Bus Standardmäßig konfiguriert ist, könnt Ihr dazu den abgebildeten Schaltplan als Orientierung nutzen.


Konfiguration des VL53L0X / VL53L1X in ESPEasy

Damit der VL53L0X / VL53L1X in ESPEasy konfiguriert werden kann sollte die ESPEasy Firmware schon auf den ESP8266 bzw. ESP32 aufgespielt und erreichbar sein. Informationen dazu findet Ihr auch im Artikel ESPEasy – Firmware kompilieren, flashen und WLAN Zugangsdaten konfigurieren.

Öffnet zunächst die Konfigurationswebseite Eures mit ESPEasy programmierten ESP8266, indem Ihr dessen IP-Adresse in Euren Webbrowser eingebt. Infos dazu wie Ihr die IP-Adresse herausfinden könnt, sind auch im Artikel IP-Adresse der Geräte im Netzwerk anzeigen/herausfinden zusammengefasst.

Sobald Ihr die Konfigurationswebseite geöffnet habt, müsst Ihr auf den „Devices“-Tab wechseln. Klickt dazu auf den „Devices“-Button.

Im „Devices“-Tab müsst Ihr nun auf den „Add“-Button in einer der noch leeren Zeilen klicken.

Ihr werdet dann automatisch zu der dargestellten Ansicht weitergeleitet und könnt hier auswählen, welches Device Ihr erstellen wollt.

Wählt hier den Eintrag „Distance – VL53L0X [TESTING]“ aus.

Dadurch werdet Ihr wieder auf eine Übersichtsseite weitergeleitet.

Hier könnt Ihr Alle Einstellungen bezüglich des VL53L0X vornehmen.

Wenn Ihr den oben gezeigten Schaltplan genutzt habt, könnt Ihr die abgebildeten Einstellungen so übernehmen.

Falls Ihr Euer VL53L0X eine andere I2C Adresse verwendet könnt Ihr diese unter „I2C Address“ anpassen.

Mithilfe der Option „Range“ könnt Ihr die Reichweite des Sensors einstellen. Hier könnt Ihr etwas mehr Reichweite erreichen, was aber auch etwas die Genauigkeit verringert. Infos dazu findet Ihr im Datenblatt des VL53L0X.

Nachdem Ihr alle Einstellungen vorgenommen habt, könnt Ihr die Einstellungen durch einen Klick auf „Submit“ bestätigen.


Messwerte des VL53L0X / VL53L1X anzeigen lassen

Nachdem Ihr den VL53L0X / VL53L1X konfiguriert habt könnt Ihr Ihn direkt testen.

In der Übersicht der konfigurierten Devices sind in der Zeile des VL53L0X / VL53L1X auf der rechten Seite die Messwerte zu sehen.

Diese aktualisieren sich spätestens alle 60 Sekunden. Dieses Intervall lässt sich in der Konfiguration des VL53L0X / VL53L1X im Abschnitt „Interval“ einstellen.


Sensordaten per MQTT versenden

Die gesammelten Sensordaten könnt Ihr nun auch per MQTT an Euer SmartHome senden und dort ggf. weiter verarbeiten. Was Ihr dazu konfigurieren müsst ist im folgenden Artikel beschrieben.


Weitere Sensoren zum Anschluss an den ESP8266 / ESP32

Eine Übersicht über weitere Artikel zum Anschluss von Sensoren und Aktoren an ESPEasy findet Ihr in der folgenden Kategorie.


Viel Spaß mit dem Projekt

Ich hoffe bei euch hat alles wie beschrieben funktioniert. Falls nicht oder ihr Fragen oder Anregungen habt lasst es mich in den Kommentaren bitte wissen. Ich trage dies dann ggf. in den Artikel nach.
Auch Ideen für neue Projekte sind immer gerne willkommen. 🙂

P.S. Viele dieser Projekte - besonders die Hardwareprojekte - kosten viel Zeit und Geld. Natürlich mache ich das weil ich Spaß daran habe, aber wenn Du es cool findest, dass ich die Infos dazu mit Euch teile, würde ich mich über eine kleine Spende an die Kaffeekasse freuen. 🙂

Buy Me a Coffee at ko-fi.com       

20 Kommentare

  1. Hallo,

    Ich habe Ihre Firmware heruntergeladen, die auf einem wemos D1 mini mit einem VL53L1X-Sensor der Marke CQrobot installiert ist, aber der Sensor sendet keine Daten, aber die I2c-Adresse ist korrekt.
    Sensor-Wiki:

    Ich habe eine andere Marke zum erneuten Testen bestellt. Alle Verbindungen wurden mehrmals überprüft

  2. Hallo,

    Hier ist das Ergebnis des Scans, leider erscheint der VL53L1X nicht
    https://nsa40.casimages.com/img/2021/03/07/210307081128704569.jpg
    Beim Versuch mit einer anderen Firmware wurde es angezeigt:
    https://www.casimages.com/i/210305045829585917.jpg.html
    (Es tut mir leid, wenn meine Nachrichten dupliziert werden. Jedes Mal, wenn ich etwas poste, erhalte ich eine Captcha-Fehlermeldung : „…Error: You have entered an incorrect reCAPTCHA value.
    Click the BACK button on your browser and try again….“)

    1. Hallo Doryphore,
      das ist seltsam. Ich werde mal versuchen das ganze nachzustellen. Dann kann ich besser nachvollziehen was da ggf. schief gelaufen ist. 🙂
      Beste Grüße
      Fabian

  3. Hallo,

    Es ist nett von dir, weil ich mit diesem Sensor festgefahren bin und ihn gerne mit Espeasy verwenden würde. Ich habe es mit einem VL53L1X-Sensor einer anderen Marke versucht: Das gleiche Ergebnis beim I2c-Scan, der Sensor wird nicht angezeigt. Offensichtlich habe ich die I2c-Verbindungen in SDA und SDL in D1 und D2 des wemos d1 mini mehrmals überprüft.

    Cordially,
    Doryphore

  4. Danke erstmal… Der VL53L0X geht mit deiner .bin.
    Leider benötige ich den VL53L1X und den bekomme ich leider nicht zum laufen. Weiter oben hatten ja auch schon andere das Problem. Hat das schon jemand gelöst oder weiß eine bin wo der eingebunden ist?
    Gruß Ralf

    1. Guten Morgen Ralf,
      ich warte leider noch auf den VL53L1X aus china. Sobald der da ist gucke ich mir das mal an. 🙂
      Beste Grüße
      Fabian

  5. Das wäre super. Dann könnte ich mit meinem Projekt weitermachen.
    Der VL53L0X reicht mir leider nicht ganz von der Reichweite.
    Ich werde es weiter verfolgen ob du Post bekommst und Erfolg hast.
    Gruß Ralf

  6. Hallo Fabian, ein super Artikel und ein tolles Projekt. Ich habe damit auch den VL53L0X Sensor zum Laufen bekommen.
    Jetzt hatte ich mir einen VL53L1X Sensor (bluedot.space) gekauft. Der läuft leider nicht mit Deiner letzten ESPEasy.bin Version.
    Der Sensor braucht das VL53L1X Library von Pololu. Ich quäle mich momentan als Anfänder mit dem arduino ino herum und versuche vergebens das Plugin für einen D1Mini ESP8266 zu kompilieren. Jedoch leider bislang ohne Erfolg.
    https://www.bluedot.space/products/vl53l1x/

    Viele Grüße
    Olaf

    1. Hey Olaf,
      ja mit dem VL53L1X scheint das Plugin noch nicht sauber zu laufen. Ich hoffe ich komme die Tage dazu mich darum zu kümmern. :/
      Welche probleme hast du denn beim kompilieren? Vllt. kann ich Dir dabei schonmal weiterhelfen. 🙂
      Beste Grüße
      Fab

      1. Hallo Fabian, danke für die Rückmeldung!
        Ich schaffe es leider nicht, mit der Arduino IDE die Library von Pololu dem ESPEasy hinzuzufügen und eine *.bin Datei zu kompilieren. Die Bin Datei soll auf einen Wemos D1 mini geflasht werden.

        … habe mich schon so viele Anleitungen und Videos durchgequält und komme leider nicht weiter mit der Arduino IDE.
        Die richtige Library zu meinem VL53L1x gibt es direkt vom Hersteller.
        https://www.bluedot.space/products/vl53l1x/

        Ich würde Dir, für Deinen Bemühungen, auch gern etwas zukommen lassen.

        Grüße
        Olaf

        1. Guten Abend Olaf,
          ich kann das gerne mal ausprobieren. Mein größtes Problem ist aktuell der Zeitmangel. :/
          Hattest du denn schon mit etwas agefangen auf dem man ggf. aufbauen kann? 🙂
          Beste Grüße
          Fabian

  7. Hi das Projekt find ich echt super leider zeigt mir der Sensor komplett falsche Wert in deinem Gehäuse an, ausserhalb läuft er ohne Problem allerdings brauche ich auch den mit 4m Reichweite VL53L1X darf ich dein Gehäuse etwas verändern. Ich werde den Sensor von aussen befestigen oder notfalls ein eigenes Gehäuse zeichnen. Ich möcht damit überwachen ob die el. Heckklappe geöffnet ist und am Garagentor ansteht damit das Garagentor dann nicht geöffnet werden kann und eine Meldung im IoBroker sowie auf dem Echo ausgegeben wird.

    1. Hey Alex,
      oh okay. Das ist seltsam. Hatte bei den Tests eigentlich keine Probleme damit. Könnte auch an dem VL53L1X liegen.
      Na klar, das Gehäuse darfst du auch verändern. 🙂
      Beste Grüße
      Fab

  8. Super HowTo,
    so konnte ich günstig und ohne Vorkenntnisse eine Füllstandsanzeige nachbauen. Vielen Dank dafür.
    Ein Problem habe ich allerdings. Sobald der ESP stromlos war, wird der Sensor nicht mehr erkannt. Es kommt dann bei allen IC Adressen zu dem Fehler: „Unknown error at address xxxx“.
    Beheben kann ich es dann nur indem ich den Sensor unter Devices deaktiviere, den ESP nochmals von Strom trenne und dann den Sensor wieder aktiviere…

    1. Hi Der Alte,
      ich habe ein ähnliches Verhalten tatsächlich auch bei einigen meiner Breakoutboards beobachten können. Es tritt aber nicht bei allen auf.
      Richtig „gelöst“ hatte ich das Problem letztendlich durch den Kauf eines anderen Sensors. :/
      Beste Grüße
      Fabian

Kommentar hinterlassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.