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
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
def get_status(pin=8): GPIO.setup(pin, GPIO.IN) return GPIO.input(pin)
def getStatus(self, pin): GPIO.setup(pin, GPIO.IN) return GPIO.input(pin)