Hallo Zusammen,
habe nun mal den gelieferten Ultraschallsensor verlötet und mit Steckern verbunden (wollte nicht die GPIO´s verlöten.
Hier mal ein paar Bilder:
Danach habe ich auf dem Raspi (Speicherkarte) das Raspbian installiert.
dann mit:
nano ultrasonic.py
diesen Code reinkopiert:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# import required modules
import time
import datetime
import RPi.GPIO as GPIO
# define GPIO pins
GPIOTrigger = 18
GPIOEcho = 17
# function to measure the distance
def MeasureDistance():
# set trigger to high
time.sleep(0.2)
GPIO.output(GPIOTrigger, True)
# set trigger after 10Ã,µs to low
time.sleep(0.0001)
GPIO.output(GPIOTrigger, False)
# store initial start time
StartTime = time.time()
# store start time
while GPIO.input(GPIOEcho) == 0:
StartTime = time.time()
# store stop time
while GPIO.input(GPIOEcho) == 1:
StopTime = time.time()
# calculate distance
TimeElapsed = StopTime - StartTime
Distance = (TimeElapsed * 34400) / 2
return Distance
# main function
def main():
try:
# while True:
Distance0 = MeasureDistance()
Distance01 = MeasureDistance()
Distance02 = MeasureDistance()
Distance03 = MeasureDistance()
Distance04 = MeasureDistance()
Distance05 = MeasureDistance()
Distance06 = MeasureDistance()
Distance07 = MeasureDistance()
Distance08 = MeasureDistance()
Distance09 = MeasureDistance()
Distance10 = MeasureDistance()
Distance11 = MeasureDistance()
Distance12 = MeasureDistance()
Distance13 = MeasureDistance()
Distance14 = MeasureDistance()
Distance15 = MeasureDistance()
Distance16 = MeasureDistance()
Distance17 = MeasureDistance()
Distance18 = MeasureDistance()
Distance19 = MeasureDistance()
Distance20 = MeasureDistance()
Distance_sum = Distance01 + Distance02 + Distance03 + Distance04 + Distance05 + Distance06 + Distance07 + Distance08 + Distance09 + Distance10 + Distance11 + Distance12 + Distance13 + Distance14 + Distance15 + Distance16 + Distance17 + Distance18 + Distance19 + Distance20
Distance = round(Distance_sum / 20,1)
# Meine Tanks haben Maximal 8.000 Liter bei 147 cm Füllhöhe
# Zusätzlich 4 cm Offset vom Einbauort des Sensors
Fuelstand = 147 - Distance
Liter = 8000 / 150 * Fuelstand
Zeit = time.time()
ZeitStempel = datetime.datetime.fromtimestamp(Zeit).strftime('%Y-%m-%d_%H:%M:%S')
print (ZeitStempel),("Entfernung: %.1f cm" % Distance),(" Fuelhoehe: %.1f cm" % Fuelstand),(" Liter: %.0f l" % Liter)
time.sleep(2)
# reset GPIO settings if user pressed Ctrl+C
except KeyboardInterrupt:
print("Measurement stopped by user")
GPIO.cleanup()
if __name__ == '__main__':
# use GPIO pin numbering convention
GPIO.setmode(GPIO.BCM)
# set up GPIO pins
GPIO.setup(GPIOTrigger, GPIO.OUT)
GPIO.setup(GPIOEcho, GPIO.IN)
# set trigger to false
GPIO.output(GPIOTrigger, False)
# call main function
main()
den Füllstand habe ich durch meinen erstetzt,nämlich 137cm, genauso wie die Literanzahl von 8000l.
ich hoffe das stimmt alles soweit??
was ist mit dem /150 * Fuellstand gemeint???
danach habe ich die datei gespeichert und noch folgenden Befehl abgesetzt:
chmod 0755 ultrasonic.py
danach gestartet mit:
sudo ./ultrasonic.py
dann sieht das ganze so aus:
2017-02-19_16:17:05 Entfernung: 111.5 cm Fuelhoehe: 42.5 cm Liter: 2295 l
habe den Sensor jetzt nur mal so zum testen aufgehängt....bis zum Boden messe ich 113cm....
also kann man doch sagen das der Sensor und das anschließen schon mal funktioniert hat, oder?
wie gehts jetzt weiter?
Gruss
wie komme ich jetzt an die Messdaten heran..wo schreibt der Sensor die jetzt hin???
Und nachdem auf der Konsole der Wert ausgegeben wurde und ich nochmal sudo ./ultrasonic.py
eingegeben habe kommt das:
./ultrasonic.py:86: RuntimeWarning: This channel is already in use, continuing anyway. Use GPIO.setwarnings(False) to disable warnings.
GPIO.setup(GPIOTrigger, GPIO.OUT)
2017-02-19_16:31:49 Entfernung: 111.5 cm Fuelhoehe: 42.5 cm Liter: 2295 l
Hi,
Zitatwas ist mit dem /150 * Fuellstand gemeint???
Bei mir ist die Höhe der max. Füllung in den Tanks vom Fußboden ca. 150 cm, oder andersrum, wenn der Tank leer wäre, müsst der Sensor 150 cm messen bis zum letzten Tropfen im Tank. => Dreisatz!
Du müsstes den Wert Deiner Tanks für die 150 cm einsetzen.
Zitat...Sensor und das anschließen schon mal funktioniert hat, oder?
Sieht gut aus. Du kannst ja mal den ersten Schritt vor dem zweiten tun und das Script aus: http://www.gtkdb.de/index_36_2272.html (http://www.gtkdb.de/index_36_2272.html) in eine Datei test.py kopieren, test.py ausführbar machen und mit dem Sensor gegen verschiedene Oberflächen messen, sowie einfach mal mit dem Zollstock oder dem Meterbandmaß nachmessen, ob der Sensorwert mit dem Zollstock-Wert übereinstimmt.
Gruß Bracew
Hi,
Zitateingegeben habe kommt das:
das kommt, weil das Script in einer endlos Schleife läuft und vor einem 2. Aufruf zunächst mit Strg+C gestoppt werden müsste.
Im Script steht deshalb:
# reset GPIO settings if user pressed Ctrl+C
except KeyboardInterrupt:
print("Measurement stopped by user")
GPIO.cleanup()
Gruß Bracew
Hi Bracev...ist doch schritt eins vor zwei...
Muss ich denn eine test.py anlegen?
Habe mit der ultrasonic.py doch jetzt schon gemessen...manchmal stimmts manchmal nicht!!
Habe aber noch ein anderes prob..müsste das Kabel verlängern..gibt es beim Con... Ein verlängerungskabel oder kann man da die stecker kaufen (männlein und weiblein)??
Gruss
Gesendet von iPhone mit Tapatalk Pro
Zitat von: Bracew am 19 Februar 2017, 17:35:36
Hi,
das kommt, weil das Script in einer endlos Schleife läuft und vor einem 2. Aufruf zunächst mit Strg+C gestoppt werden müsste.
Im Script steht deshalb:
# reset GPIO settings if user pressed Ctrl+C
except KeyboardInterrupt:
print("Measurement stopped by user")
GPIO.cleanup()
Gruß Bracew
Ok verstanden..muss man auch erstmal wissen..danke
Gesendet von iPhone mit Tapatalk Pro
Hi,
Zitat...muss man auch erstmal wissen...
eben, deshalb meinte ich zunächst das Script aus: http://www.gtkdb.de/index_36_2272.html , da es dort zunächst geübt wird.
Leider kann ich Dir nichts zu Verlängerungskabeln sagen. Auch nicht, ob dann die Messwerte zum Beispiel aufgrund erhöhtem Kabelwiderstand sich verändern. Aber, nur Mut und ausprobieren, Versuch macht Klug!
Viel Spaß am weiteren Basteln.
Ich habe meine Kabel mit geschirmten Kabeln verlängert, wäre auch mit CAT6/7 Kabel machbar.
Ich habe vom Pi zur Zisterne ca. 20m Kabel, vom Pi zum Öltank ca. 15m Kabel.
Am Anfang hatte ich viele Störungen gehabt (Messfehler um ein vielfaches). Ich hatte zuerst ein Script, welches 10 Messungen macht und dann den Durchschnitt bildet. Ich denke weil viele aufeinander folgende Messungen gemacht wurden, kam es dazu.
Ich mache jetzt nur noch eine Messung (und das nur alle paar Stunden) und seitdme habe ich Ruhe.
Das ist schon mal gut...cat 7 Kabel hätte ich noch...
Wie hast du das mit dem Stecker genacht? Hast das Kabel einfach festverlötet?
Gruss
Gesendet von iPhone mit Tapatalk Pro