Esempio n. 1
0
    def clean(self):
        for _ in range(1):
            # bring clean water to fishfeeder
            Context.check_water_sensor()
            Context.run_pump(Context.water_in, duration=0.25)
            # thrash water from fishfeeder
            Context.check_water_sensor()
            Context.run_pump(Context.water_out1, duration=2)
        for _ in range(1):
            for _ in range(1):
                # bring clean water to fishfeeder
                Context.check_water_sensor()
                Context.run_pump(Context.water_in, duration=0.25)
            for _ in range(1):
                # thrash water from fishfeeder
                Context.check_water_sensor()
                Context.run_pump(Context.water_out1, duration=1)
        for _ in range(1):
            # bring clean water to fishfeeder
            Context.check_water_sensor()
            Context.run_pump(Context.water_in, duration=2)
        for _ in range(1):
            # thrash water from fishfeeder
            Context.check_water_sensor()
            Context.run_pump(Context.water_out1, duration=20)
        Context.STATUS = "Cleaned"

        lprint("tanks cleaned")
Esempio n. 2
0
    def air_cleaning(self):
        for valve in self.valves_in_use_feeding:
            Context.control_box.open_valve(valve)
            Context.run_pump(Context.water_out1, duration=10)
            Context.control_box.close_valve(valve)

        lprint("Air_cleaning_done")
Esempio n. 3
0
 def check_water_sensor(cls):
     if GPIO.input(cls.water_sensor) == GPIO.LOW:
         lprint("no water warning by sensor")
         cls.control_box.set_pwm(cls.safety_pump, 0)
     else:
         lprint("WATER WARNING by sensor")
         cls.control_box.set_pwm(cls.safety_pump, 255)
Esempio n. 4
0
    def set_pwm(self, index, value):
        set_pwm_command = str.encode(f"#p {index} {value} \n")

        self.conn.write(set_pwm_command)
        rcv = self.conn.read(6)
        lprint(f"set_pwm index:{index}, value:{value}, rcv:{rcv}")
        sleep(1)
Esempio n. 5
0
    def close_valve(self, index):
        close_valve_command = str.encode(f"#vc {index} \n")

        self.conn.write(close_valve_command)
        rcv = self.conn.read(6)
        lprint(f"closed valve index:{index}, rcv:{rcv}")
        sleep(1)
Esempio n. 6
0
    def open_valve(self, index):
        open_valve_command = str.encode(f"#vo {index} \n")

        self.conn.write(open_valve_command)
        rcv = self.conn.read(6)
        lprint(f"opened valve index:{index}, rcv:{rcv}")
        sleep(1)
Esempio n. 7
0
    def general_priming(self):
        for valve in self.valves_in_use_feeding:
            Context.control_box.open_valve(valve)
            Context.run_pump(Context.water_in, duration=0.5)
            Context.run_pump(Context.water_out1, duration=4)
            Context.control_box.close_valve(valve)

        lprint("General_priming_done")
Esempio n. 8
0
    def prepare(self, food_amount_multiplier):
        # pour food into fishfeeder
        for _ in range(food_amount_multiplier):
            Context.rotate_food_servo(180)
            Context.rotate_food_servo(0)

        # bring clean water to fishfeeder
        #for _ in range(1):
        #Context.check_water_sensor()
        #Context.run_pump(Context.water_in, duration=0.5)
        #Context.STATUS = "FoodPrepared"

        lprint("food prepared")
Esempio n. 9
0
    def initialize(self):
        Context.initialize()

        if not self.check_early_stop():
            Context.DAY, Context.TIME = datetime.datetime.today().strftime(
                '%Y-%m-%d %H:%M:%S').split()
            # Initialize water sensor
            GPIO.setmode(GPIO.BCM)
            GPIO.setup(Context.water_sensor, GPIO.OUT)
            GPIO.output(Context.water_sensor, GPIO.LOW)
            sleep(0.05)
            GPIO.setup(Context.water_sensor, GPIO.IN)

            lprint("initialized")
Esempio n. 10
0
    def priming(self, valves_in_use_feeding):
        # Open all valves
        for valve in valves_in_use_feeding:
            Context.control_box.open_valve(valve)
            # prime water In
            for _ in range(1):
                Context.check_water_sensor()
                Context.run_pump(Context.water_in, duration=0.5)
            # prime water Out
            for _ in range(1):
                Context.check_water_sensor()
                Context.run_pump(Context.water_out1, duration=3)
            Context.control_box.close_valve(valve)

        # # Close all valves
        # for valve in valves_in_use:
        #     Context.control_box.close_valve(valve)

        lprint("pumps primed")
Esempio n. 11
0
    def stream(self):
        # stream water to fish tanks
        for i in range(2):
            Context.check_water_sensor()
            Context.run_pump(Context.water_out1, duration=1)
        # bring water and stream fishfeeder
        for _ in range(1):
            Context.check_water_sensor()
            Context.control_box.set_pwm(Context.water_in, 255)
            Context.control_box.set_pwm(Context.water_out1, 255)
            sleep(0.5)
            Context.control_box.set_pwm(Context.water_in, 0)
            Context.control_box.set_pwm(Context.water_out1, 0)
            Context.run_pump(Context.water_out1, duration=1)

            #for _ in range(1):
            #Context.check_water_sensor()
            #Context.run_pump(Context.water_in, duration=1)
            #for _ in range(1):
            #Context.check_water_sensor()
            #Context.run_pump(Context.water_out1, duration=2)

        lprint("food water mix streamed")
Esempio n. 12
0
    def initialize(self):
        if self.first_time:
            self.conn.write(self.get_state)
            rcv = self.conn.read(43)
            lprint(rcv)
            self.first_time = False

        self.conn.write(self.get_state)
        rcv = self.conn.read(78)
        lprint(rcv)
        rcv = self.conn.read(78)
        lprint(rcv)
Esempio n. 13
0
    def finalize(self):
        if not self.check_early_stop():
            Context.control_box.set_pwm(Context.safety_pump, 0)
            lprint(Context.DAY, Context.TIME, Context.STATUS)

            lprint("finalized")