Wasserfüllstand messen und berechnen mit ESP32 und VL53L1X

In der heutigen Zeit, in der Smart-Home-Technologien immer beliebter werden, ist es spannend zu sehen, wie wir verschiedene Sensoren und Mikrocontroller verwenden können, um alltägliche Aufgaben zu automatisieren. In diesem Blogeintrag werde ich Ihnen zeigen, wie Sie mithilfe des ESP32-Mikrocontrollers und des VL53L1X-Sensors den Wasserfüllstand messen und berechnen können. Wir werden den ESPHome-Framework verwenden, um den Code zu schreiben, und die Daten per MQTT übertragen. Außerdem ermöglichen wir es dem Benutzer, die Werte für die Volumenberechnung anzupassen. Lassen Sie uns direkt einsteigen!

Schritt 1: Hardware-Komponenten:
Für dieses Projekt benötigen Sie die folgenden Hardware-Komponenten:

Schritt 2: ESPHome-Installation:
Stellen Sie sicher, dass Sie ESPHome auf Ihrem Computer installiert haben. Wenn nicht, können Sie es über pip installieren. Eine detaillierte Anleitung zur Installation finden Sie in der ESPHome-Dokumentation.

Schritt 3: Verkabelung:
Verbinden Sie den VL53L1X-Sensor mit dem ESP32 wie folgt:

  • Sensor VIN -> ESP32 3.3V
  • Sensor GND -> ESP32 GND
  • Sensor SDA -> ESP32 SDA (GPIO21)
  • Sensor SCL -> ESP32 SCL (GPIO22)

Schritt 4: ESPHome-Konfiguration:
Erstellen Sie eine neue ESPHome-Konfigurationsdatei mit dem gewünschten Namen und fügen Sie den folgenden Code hinzu:

esphome:
  name: wasserfuellstand_sensor
  platform: ESP32
  board: esp-wrover-kit

wifi:
  ssid: "IHR_WIFI_NAME"
  password: "IHR_WIFI_PASSWORT"

mqtt:
  broker: "IP_IHRES_MQTT_BROKERS"
  username: "MQTT_BENUTZERNAME"
  password: "MQTT_PASSWORT"

i2c:
  sda: 21
  scl: 22
  scan: True

sensor:
  - platform: vl53l1x
    name: "Wasserfüllstand"
    address: 0x29
    update_interval: 60s
    filters:
      - calibrate_offset: 200

text_sensor:
  - platform: version
    name: "ESPHome Version"

logger:

Stellen Sie sicher, dass Sie die Werte für ssid, password, broker, username und password entsprechend Ihrem Netzwerk und Ihrem MQTT-Broker anpassen.

Schritt 5: Hochladen und Flashen:
Verbinden Sie den ESP32 mit Ihrem Computer, wechseln Sie in das Verzeichnis Ihrer ESPHome-Konfiguration und führen Sie den Befehl esphome wasserfuellstand_sensor.yaml run aus, um den Code auf den ESP32 zu flashen und hochzuladen.

Schritt 6: Datenübertragung und Volumenberechnung:
Sobald der ESP32 hochgefahren ist und eine Verbindung zum Wi-Fi und zum MQTT-Broker

hergestellt hat, beginnt er, die Daten des VL53L1X-Sensors zu lesen. Diese Daten werden dann über MQTT an Ihren Broker gesendet.

Um die Volumenberechnung anzupassen, können Sie die Filteroptionen in der ESPHome-Konfiguration anpassen. Derzeit verwenden wir den calibrate_offset-Filter mit einem Wert von 200. Sie können diesen Wert erhöhen oder verringern, um die Messungen an Ihre spezifische Anwendung anzupassen. Experimentieren Sie mit verschiedenen Werten, um die Genauigkeit zu verbessern.

Schlusswort:
Herzlichen Glückwunsch! Sie haben erfolgreich gelernt, wie man mithilfe des ESP32-Mikrocontrollers und des VL53L1X-Sensors den Wasserfüllstand messen und berechnen kann. Durch die Verwendung von ESPHome und MQTT können Sie die Daten einfach übertragen und die Volumenberechnung an Ihre Bedürfnisse anpassen. Dieses Projekt bietet Ihnen eine solide Grundlage, um Ihre Smart-Home-Systeme weiter zu erweitern und anzupassen. Viel Spaß beim Experimentieren und Entdecken neuer Möglichkeiten!