ja, das braucht ja wirklich niemand aber mir hat es Spass gemacht.
Ich hatte noch einen Ultraschall Entfernungsmesser und dachte mir den setze ich jetzt mal für meine Kaffeemaschine ein. Da vergesse ich oft das Wasser nachzufüllen was natürlich die Pumpe zum Wahnsinn treibt.
Es ist mir gelungen bei "Bucht" eine 5 Volt Pumpe für 5 EURONEN zu erstehen. Übrigens geplant war eine 12Volt Pumpe, wie auf dem Schaltplan zu ersehen. Jetzt ist es halt 5 Volt, war zu faul das Schema zu ändern.
Am Prinzip hat sich nichts geändert. Ihr werdet dasSchema verstehen:-)
Mein erster Versuch war nicht von Erfolg gekrönt.
Warum?
Findet es heraus:-) Siehe genau Bild fehler.jpg.
Die Datumsangaben auf den Fotos sind alle falsch.
Ich habe das alles bewusst ganz simpel gebaut, mit Pappe und Isolierband.
Interessant ist das selbst bei dem kleinen "Pumpchen" der Schlauch gut befestigt werden muss, daher die Wäscheklammern.
Ansonsten rennt es jetzt perfekt. Der "Sektkühler" hat ca. 4 Liter, genug für min. 2 Tage. Im Übrigen auch besser zu sehen als der Behälter der Kaffeemaschine.
Hier ist der Code:
import sys
import ttk
from Tkinter import *
import os
from hcsr04sensor import sensor
import RPi.GPIO as GPIO
import time
import subprocess
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BCM)
GPIO.setup(18, GPIO.OUT)
## leer = 16 cm
## voll = 5 cm
leer=16
voll=5
def main():
trig_pin = 22
echo_pin = 27
zahl=0
while True:
value = sensor.Measurement(trig_pin, echo_pin)
raw_measurement = value.raw_distance()
metric_distance = value.distance_metric(raw_measurement)
stand=metric_distance
print("Fuellhoehe = {} Centimeter".format(metric_distance))
if stand >= leer:
while True:
GPIO.output(18, True)
time.sleep(5)
## in 5 Sekunden Schritten pumpen
GPIO.output(18, False)
value = sensor.Measurement(trig_pin, echo_pin)
raw_measurement = value.raw_distance()
metric_distance = value.distance_metric(raw_measurement)
stand=metric_distance
print("Fuellhoehe = {} Centimeter".format(metric_distance))
time.sleep(2)
if stand <= voll:
break
time.sleep(600)
## zehn Minuten sind genug
GPIO.cleanup()
if __name__ == "__main__":
main()
Alles anzeigen
In diesem Sinne
VM