예제 #1
0
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)		
예제 #2
0
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)