diff --git a/main.py b/main.py index 6cf6dc9..f7c1d9a 100644 --- a/main.py +++ b/main.py @@ -40,45 +40,48 @@ def relay_controller(pin: int, state: str): error_print("Unknown state ("+state+") for relay channel "+str(pin)) #ultrasonic -def get_water_level(): - GPIO.setmode(GPIO.BCM) - GPIO.setwarnings(False) - GPIO_TRIGGER = 24 - GPIO_ECHO = 25 - GPIO.setup(GPIO_TRIGGER, GPIO.OUT) - GPIO.setup(GPIO_ECHO, GPIO.IN) - GPIO.output(GPIO_TRIGGER, True) - time.sleep(0.00001) - GPIO.output(GPIO_TRIGGER, False) - - startTime = time.time() - StopTime = time.time() - - while GPIO.input(GPIO_ECHO) == 0: +try: + def get_water_level(): + GPIO.setmode(GPIO.BCM) + GPIO.setwarnings(False) + GPIO_TRIGGER = 24 + GPIO_ECHO = 25 + GPIO.setup(GPIO_TRIGGER, GPIO.OUT) + GPIO.setup(GPIO_ECHO, GPIO.IN) + GPIO.output(GPIO_TRIGGER, True) + time.sleep(0.00001) + GPIO.output(GPIO_TRIGGER, False) + startTime = time.time() - while GPIO.input(GPIO_ECHO) == 1: StopTime = time.time() - - TimeElapsed = StopTime - startTime - distance = (TimeElapsed * 34300) / 2 - rounded_distance = int(distance) - return str(rounded_distance) + + while GPIO.input(GPIO_ECHO) == 0: + startTime = time.time() + while GPIO.input(GPIO_ECHO) == 1: + StopTime = time.time() + + TimeElapsed = StopTime - startTime + distance = (TimeElapsed * 34300) / 2 + rounded_distance = int(distance) + return str(rounded_distance) -debug_print("Added water level detector") + print(get_water_level()) + debug_print("Added water level detector") +except: + print("Adding water level sensor fail.") #temperature -def get_temperature(): - i2c = busio.I2C(board.SCL, board.SDA) - bmp280 = adafruit_bmp280.Adafruit_BMP280_I2C(i2c, address=0x76) - rounded_temp = int(bmp280.temperature) - return str(rounded_temp) +try: + def get_temperature(): + i2c = busio.I2C(board.SCL, board.SDA) + bmp280 = adafruit_bmp280.Adafruit_BMP280_I2C(i2c, address=0x76) + rounded_temp = int(bmp280.temperature) + return str(rounded_temp) -debug_print("Added temperature sensor") - -print(get_water_level()) -debug_print("got water level") -print(get_temperature()) -debug_print("got temperature") + debug_print("Added temperature sensor") + print(get_temperature()) +except: + print("Adding temperature sensor faild.") def mqtt_on_connect(client, userdata, flags, rc): client.subscribe("strawberry-pi-greenhouse/relay/channel/1")