Hallo Zusammen¨
Kurze Info zu mir:
Ich bin gerade an einem Schulprojekt in dem ich ein automatisiertes Gewächshaus bauen möchte.
Mein Problem:
Um das zu bewerkstelligen möchte ich mit einem MCP3008 Analoge Werte auslesen.(Bodenfeuchtigkeit) Danach soll er bei einem bestimmten Wert ein Relais Schalten. Da ich noch nie etwas programmiert habe wollte ich mich mit Google durchschlagen bin aber jetzt definitiv am Anschlag und komme nicht weiter. Hilfe wäre super.
Meine Frage ist wie kann ich einen bestimmten Wert von einem Channel auslesen und den mit einer if Anweisung verknüpfen so das er mir ein Relais ansteuern kann. Hier habe ich mal eine LED angeschlossen und getestet. Bitte wenn möglich ganz genau beschreiben was ich machen muss, kenne mich mit den Fachwörtern sehr schlecht aus . Habe 2 Codes gefunden und ausprobiert aber beide funktionieren nicht. Beim unteren Code kommt nur der Wert 0 heraus.
Habe im £Anhang noch einen Plan wie ich es beim Raspberry angeschlossen habe. Einfaach DHT11 nicht eingeschlossen. Dieser funktioniert.
Danke jetzt schon für die Hilfe.
Code 1:
import time
import Adafruit_GPIO.SPI as SPI
import Adafruit_MCP3008
import RPi.GPIO as gpio
gpio.setwarnings(False)
# LED
led = 21
gpio.setmode(gpio.BCM)
gpio.setup(led, gpio.OUT)
# Software SPI configuration:
CLK = 18
MISO = 23
MOSI = 24
CS = 25
mcp = Adafruit_MCP3008.MCP3008(clk=CLK, cs=CS, miso=MISO, mosi=MOSI)
# Main program loop.
while True:
# Read all the ADC channel values in a list.
values = [0]*8
for i in range(8):
# The read_adc function will get the value of the specified channel (0-7).
values[i] = mcp.read_adc(i)
def pflanze_messen():
bodenFeuchtigkeit = [1]
if bodenFeuchtigkeit > 650:
print("Du solltest deine Pflanze Waessern")
gpio.output(led, gpio.HIGH)
else:
gpio.output(led, gpio.LOW)
Code 2:
import RPi.GPIO as gpio
import Python_DHT
import spidev
import time
import os
# LED
led = 21
gpio.setmode(gpio.BCM)
gpio.setup(led, gpio.OUT)
# SPI Verbindung herstellen
spi = spidev.SpiDev()
spi.open(0,0)
# Liest Daten vom MCP3008
def analogEingang(channel):
adc = spi.xfer2([1,(8+channel)<<4,0])
data = ((adc[1]&3) << 8) + adc[2]
return data
def pflanze_messen():
helligkeit = analogEingang(0)
bodenFeuchtigkeit = analogEingang(1)
if bodenFeuchtigkeit > 650:
print("Du solltest deine Pflanze Waessern")
gpio.output(led, gpio.HIGH)
else:
gpio.output(led, gpio.LOW)
print("===========================")
print("Feuchtigkeit: "+str(bodenFeuchtigkeit))
print("Helligkeit: "+str(helligkeit))
time.sleep(1.2)
pflanze_messen()
Alles anzeigen