def Main():
    try:
        GPIO.setmode(GPIO.BCM)

        GPIO.setwarnings(False)

        GPIO.setup(4, GPIO.OUT)
        GPIO.setup(17, GPIO.OUT, initial=GPIO.LOW)
        GPIO.setup(18, GPIO.OUT, initial=GPIO.LOW)
        GPIO.setup(21, GPIO.OUT, initial=GPIO.LOW)
        GPIO.setup(23, GPIO.IN, pull_up_down=GPIO.PUD_UP)
        GPIO.setup(15, GPIO.IN, pull_up_down=GPIO.PUD_DOWN)
        GPIO.setup(24, GPIO.IN, pull_up_down=GPIO.PUD_DOWN)
        GPIO.setup(26, GPIO.IN)

        while (True):
            if (GPIO.input(23) == False):
                GPIO.output(4, GPIO.HIGH)
                GPIO.output(17, GPIO.HIGH)
                time.sleep(1)

            if (GPIO.input(15) == True):
                GPIO.output(18, GPIO.HIGH)
                GPIO.output(21, GPIO.HIGH)
                time.sleep(1)

            if (GPIO.input(24) == True):
                GPIO.output(18, GPIO.LOW)
                GPIO.output(21, GPIO.LOW)
                time.sleep(1)

            if (GPIO.input(26) == True):
                GPIO.output(4, GPIO.LOW)
                GPIO.output(17, GPIO.LOW)
                time.sleep(1)

    except Exception as ex:
        traceback.print_exc()
    finally:
        GPIO.cleanup()  #this ensures a clean exit
Exemple #2
0
def auto_water(plant, delay=5):
    consecutive_water_count = 0
    pump_pin = plant["pump_pin"]
    water_sensor_pin = plant["water_sensor_pin"]

    print("Here we go! Press CTRL+C to exit")

    while 1 and consecutive_water_count < 10:
        time.sleep(delay)
        status = GPIO.input(water_sensor_pin)
        wet = status == 0
        if not wet:
            if consecutive_water_count < 5:
                pump_on(pump_pin, 1)
                # record that plant was watered
                write_plant_watered(pump_pin)

            consecutive_water_count += 1
        else:
            consecutive_water_count = 0
Exemple #3
0
def get_status(pin=8):
    GPIO.setup(pin, GPIO.IN)
    return GPIO.input(pin)
Exemple #4
0
 def getStatus(self, pin):
     GPIO.setup(pin, GPIO.IN)
     return GPIO.input(pin)