def main(): GPIO.cleanup() GPIO.setmode(GPIO.BCM) #Relais als Ausgang schalten GPIO.setup(RELAIS, GPIO.OUT) #Eimersensor als Eingang schalten GPIO.setup(SENSOR_BUCKET_PIN,GPIO.IN) #Datenbank initialisieren db = DATABASE() # Aktuelle Luftfeuchtigkeit holen humidity = db.getLatestHumidity() # Checken ob Wasser im Eimer ist if isBucketEmpty(): db.saveBucketEmpty() else: db.saveStatus("OK") # Giessen wenn Luftfeuchtigkeit unter 90 % if humidity < HUMIDITY_LIMIT: db.saveWatering(WATERING_TIME) GPIO.output(RELAIS, GPIO.HIGH) time.sleep(WATERING_TIME) GPIO.output(RELAIS, GPIO.LOW) else: GPIO.output(RELAIS, GPIO.LOW)
def main(): GPIO.cleanup() GPIO.setmode(GPIO.BCM) #Relais als Ausgang schalten GPIO.setup(RELAIS, GPIO.OUT) #Eimersensor als Eingang schalten GPIO.setup(SENSOR_BUCKET_PIN,GPIO.IN) #Feuchtigkeitssensor als Eingang schalten GPIO.setup(SOIL_MOSITURE_SENSOR,GPIO.OUT) # mcp Chip initialisieren mcp3008 = MCP3008() #Datenbank initialisieren db = DATABASE() ch = 0 #db.saveSoilMoisture(3) #db.saveBucketEmpty() #db.saveStatus("OK1") #sys.exit() while True: # Bodensensor Strom anschalten GPIO.output(SOIL_MOSITURE_SENSOR,GPIO.HIGH) time.sleep(3) # Bodensensor lesen #value = mcp3008.readAnalogData(ch) value = getAverangeMositure(mcp3008,ch) time.sleep(1) # Bodensensor abschalten GPIO.output(SOIL_MOSITURE_SENSOR,GPIO.LOW) # Bodenfeuchtigkeit speichern db.saveSoilMoisture(value) # Checken ob Wasser im Eimer ist if isBucketEmpty(): db.saveBucketEmpty() else: db.saveStatus("OK") # Giessen wenn Trockenheitsgrenze ueberschritten wird if value > SOIL_MOISTURE_WATERING_VALUE_MIN and value < SOIL_MOISTURE_WATERING_VALUE_MAX: db.saveWatering(WATERING_TIME) GPIO.output(RELAIS, GPIO.HIGH) time.sleep(WATERING_TIME) GPIO.output(RELAIS, GPIO.LOW) else: GPIO.output(RELAIS, GPIO.LOW) # time.sleep(1) time.sleep(TIMER_SOIL_MOISTURE)