Ultraschallsensor in OpenHAB intigrieren
Verfasst: 27. Jun 2020 11:37
Servus liebe Gemeinde,
Ich habe seit Anfang dieser Woche endlich meinen Ultraschallsensor angeschlossen und am Teich installiert.
Dieser fragt die Distanz zwischen Wasser und dem Sensor ab.
Darüber möchte ich den Teich bzw seinen Wasserstand im Auge behalten.
Über folgendes Skript kann ich per Putty die Distanz abfragen.
Ich würde jetzt gerne ein Item erstellen, welches die Abfrage in einem bestimmten Intervall abfragt.
Diesen Wert würde ich mir zudem auch gerne in der Sitemap ansehen können.
Vielen Dank für eure Unterstützung
Ich habe seit Anfang dieser Woche endlich meinen Ultraschallsensor angeschlossen und am Teich installiert.
Dieser fragt die Distanz zwischen Wasser und dem Sensor ab.
Darüber möchte ich den Teich bzw seinen Wasserstand im Auge behalten.
Über folgendes Skript kann ich per Putty die Distanz abfragen.
Code: Alles auswählen
#Bibliotheken einbinden
import RPi.GPIO as GPIO
import time
#GPIO Modus (BOARD / BCM)
GPIO.setmode(GPIO.BCM)
#GPIO Pins zuweisen
GPIO_TRIGGER = 18
GPIO_ECHO = 24
#Richtung der GPIO-Pins festlegen (IN / OUT)
GPIO.setup(GPIO_TRIGGER, GPIO.OUT)
GPIO.setup(GPIO_ECHO, GPIO.IN)
def distanz():
# setze Trigger auf HIGH
GPIO.output(GPIO_TRIGGER, True)
# setze Trigger nach 0.01ms aus LOW
time.sleep(0.00001)
GPIO.output(GPIO_TRIGGER, False)
StartZeit = time.time()
StopZeit = time.time()
# speichere Startzeit
while GPIO.input(GPIO_ECHO) == 0:
StartZeit = time.time()
# speichere Ankunftszeit
while GPIO.input(GPIO_ECHO) == 1:
StopZeit = time.time()
# Zeit Differenz zwischen Start und Ankunft
TimeElapsed = StopZeit - StartZeit
# mit der Schallgeschwindigkeit (34300 cm/s) multiplizieren
# und durch 2 teilen, da hin und zurueck
distanz = (TimeElapsed * 34300) / 2
return distanz
if __name__ == '__main__':
try:
while True:
abstand = distanz()
print ("Gemessene Entfernung = %.1f cm" % abstand)
time.sleep(1)
# Beim Abbruch durch STRG+C resetten
except KeyboardInterrupt:
print("Messung vom User gestoppt")
GPIO.cleanup()
Diesen Wert würde ich mir zudem auch gerne in der Sitemap ansehen können.
Vielen Dank für eure Unterstützung