Hallo,
ich wollte eine Bewässerung mit dem Raspi für unsere Tomaten nach dieser Anleitung bauen. : https://tutorials-raspberrypi.de/automatisches-…s-selber-bauen/ .Die Anleitung ist sehr umfangreich und ich brauche nur den Teil mit der der Bewässerung.
ich habe mir als A/D Wandler einen MCP3008 besorgt und angeschlossen nur leider bekomme ich kein HIGH auf GPIO 23 wenn ich am A/D Wandler auf Channel 1 ein High anlege
Hier ist der Code
import RPi.GPIO as GPIO
from MCP3008 import MCP3008
import time
##################################################################
##################### CUSTOMIZEABLE SETTINGS #####################
##################################################################
SETTINGS = {
"PLANT": [
{
"NAME": "Tomaten",
"MOISTURE_CHANNELS": 1, # of MCP3008
"MOISTURE_THRESHOLD": 50, # if the average analog value of all sensors is above of this threshold, the Pump will turn on
"WATER_PUMP_GPIO": 23, # GPIO Number (BCM) for the Relais
"WATERING_TIME": 10, # Seconds, how long the pump should be turned on
},
]
}
##################################################################
################# END OF CUSTOMIZEABLE SETTINGS ##################
##################################################################
def wateringPlants():
# read moisture
adc = MCP3008()
for plantObject in SETTINGS["PLANTS"]:
value = 0
for ch in plantObject["MOISTURE_CHANNELS"]:
# read 10 times to avoid measuring errors
v = 0
for i in range(10):
v += adc.read( channel = ch )
v /= 1.0
value += v
value /= float(len(plantObject["MOISTURE_CHANNELS"]))
if value > plantObject["MOISTURE_THRESHOLD"]:
# turn pump on for some seconds
GPIO.setup(plantObject["WATER_PUMP_GPIO"], GPIO.OUT)
GPIO.output(plantObject["WATER_PUMP_GPIO"], GPIO.HIGH)
time.sleep(plantObject["WATERING_TIME"])
GPIO.output(plantObject["WATER_PUMP_GPIO"], GPIO.LOW)
if __name__ == '__main__':
try:
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BCM)
# execute functions
wateringPlants()
except:
GPIO.cleanup()
Alles anzeigen
Wenn ich 3,3 Volt an Channel 1 anlege und das Script mit "sudo python greenhouse.py" starte läuft es wohl durch und es kommt sofort wieder der Eingabe prompt. GPIO 23 (an den ich eine LED angeschlossen habe) bleibt aber auf LOW.
Wenn ich den GPIO 23 händisch auf HIGH setze leuchtet die LED.
Der A/D Wandler scheint auch zu funktionieren. Ich habe ihn getestet und er wirft den Wert 1023 auf Channel 1 raus wenn 3,3 Volt angelegt werden.
So langsam weis ich nicht mehr woran es liegen kann und mir gehen die Ideen aus was ich noch testen kann......
Ich hoffe ihr könnt mir weiterhelfen.
Gruß Volker