Flipswetter
Grünschnabel
Hallo zusammen
Ich habe mir ein Raspberry pi 3 erst vor einigen Wochen erworben um mit einem Ultraschall Sensor (SR 04) Die Schneehöhe automatisiert messen zu können. Dies ist zu mindest der Plan
Der Plan fürs erste ist das der Sensor misst, schreibt, und eine Text Datei mit einem Wert, jede Minute überschrieben wird mit neuem Wert. (automatisiert)
Die Text Datei könnte man automatisiert per FTP hoch laden und in eine Mysql Tabelle eintagen. (automatisiert)
Nun ich habe einige Anleitungen gefunden um das Raspberry einzurichten und ein Python Code gefunden
um den Sensor anzusprechen und Messungen zu machen und abzuspeichern in TXT.
Das Problem ist der Code ist nicht automatisiert.
Ich muss das Prog. mit "sudo python Ultraschall.py" starten, der Sensor misst alle 5 Sekunden ein ein Wert und Speichert die Werte erst in die Datei wenn ich manuell mit Ctrl. C das Programm beende.
Meiner Ansicht nach gibt 2 Lösungsansätze:
1.Man könnte den Code zu einer schlaufe bringen.
So das er nicht:
Misst (in 5Sek. Abstand), schreibt,.... manuell Stopt mitCtrl. und Speichert in txt.
Sondern:
Messen, Schreiben, Speichern, 5 sekunden pausiert und wider automatisch von vorne beginnt
Messen Schreiben Speichern
2. Der Andere Lösungsansatz währe:
Das Ultraschall.py Prog. extern mit externem .py Zu Starten und nach 7 Sek. zu beenden und danach erneut Starten. In Schleife.
Ich denke ist sicher die unelegantere Lösung.
Habe einiges probiert leider bin ich nicht der Python freak.
Ich versuchte den Code im untern teil bei der Ausgabe zu verändern um zu speichern ohne das Prg. stopen zu müssen,
leider wurde mir immer ein Fehler Protokolliert.
Hier den Code der Misst (in 5Sek. abstand), schreibt,.... manuell stopt mitCtrl. und Speichert in txt.
Ich währe euch sehr dankbar wenn mir jemand mit der Automatisierung der Erstellung der Text Datei alle 5sek Abgespeichert....helfen könnte.
Das mit dem hochladen der Datei und eintagen in Mysql. schaue ich später weiter.
Genau so das ich den Abstand vom Sensor bis zu Schneedecke messe und eintage was nicht die Schneehöhe ist
Danke im Voraus für ein Lösungsansatz
Ich habe mir ein Raspberry pi 3 erst vor einigen Wochen erworben um mit einem Ultraschall Sensor (SR 04) Die Schneehöhe automatisiert messen zu können. Dies ist zu mindest der Plan

Der Plan fürs erste ist das der Sensor misst, schreibt, und eine Text Datei mit einem Wert, jede Minute überschrieben wird mit neuem Wert. (automatisiert)
Die Text Datei könnte man automatisiert per FTP hoch laden und in eine Mysql Tabelle eintagen. (automatisiert)
Nun ich habe einige Anleitungen gefunden um das Raspberry einzurichten und ein Python Code gefunden
um den Sensor anzusprechen und Messungen zu machen und abzuspeichern in TXT.
Das Problem ist der Code ist nicht automatisiert.
Ich muss das Prog. mit "sudo python Ultraschall.py" starten, der Sensor misst alle 5 Sekunden ein ein Wert und Speichert die Werte erst in die Datei wenn ich manuell mit Ctrl. C das Programm beende.
Meiner Ansicht nach gibt 2 Lösungsansätze:
1.Man könnte den Code zu einer schlaufe bringen.
So das er nicht:
Misst (in 5Sek. Abstand), schreibt,.... manuell Stopt mitCtrl. und Speichert in txt.
Sondern:
Messen, Schreiben, Speichern, 5 sekunden pausiert und wider automatisch von vorne beginnt
Messen Schreiben Speichern
2. Der Andere Lösungsansatz währe:
Das Ultraschall.py Prog. extern mit externem .py Zu Starten und nach 7 Sek. zu beenden und danach erneut Starten. In Schleife.
Ich denke ist sicher die unelegantere Lösung.
Habe einiges probiert leider bin ich nicht der Python freak.
Ich versuchte den Code im untern teil bei der Ausgabe zu verändern um zu speichern ohne das Prg. stopen zu müssen,
leider wurde mir immer ein Fehler Protokolliert.

Hier den Code der Misst (in 5Sek. abstand), schreibt,.... manuell stopt mitCtrl. und Speichert in txt.
Code:
#Bibliotheken einbinden
import RPi.GPIO as GPIO
import time
#GPIO Modus (BOARD / BCM)
GPIO.setmode(GPIO.BOARD)
GPIO.setwarnings(False)
#GPIO Pins zuweisen
GPIO_TRIGGER = 16
GPIO_ECHO = 18
#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:
file_out = open("Testdatei.txt","w")
while True:
abstand = distanz()
print ("Gemessene Entfernung = %.1f cm" % abstand)
file_out.write("%.1f cm\n" % abstand)
time.sleep(5)
# Beim Abbruch durch STRG+C resetten
except KeyboardInterrupt:
print("Messung vom User gestoppt")
GPIO.cleanup()
file_out.close()
Ich währe euch sehr dankbar wenn mir jemand mit der Automatisierung der Erstellung der Text Datei alle 5sek Abgespeichert....helfen könnte.
Das mit dem hochladen der Datei und eintagen in Mysql. schaue ich später weiter.
Genau so das ich den Abstand vom Sensor bis zu Schneedecke messe und eintage was nicht die Schneehöhe ist
Danke im Voraus für ein Lösungsansatz
Zuletzt bearbeitet: