| Anschluss: |
Grove: A1 (C16, C17) |
| Schnittstelle: | analog |
| Ausgabewerte: |
trockener Boden: 0 - 300 |
| Weitere Informationen: | https://webshop.calliope.cc/calliope-feuchtigkeitssensor |
| Bestelllink: | https://webshop.calliope.cc/calliope-feuchtigkeitssensor |
Mit dem Klassensatz für die SEK I gibt es die Möglichkeit, eine Pflanzenstation zu entwickeln. Hier können z. B. die Feuchtigkeitssensoren zur Überprüfung von Feuchtigkeit in einem Blumentopf genutzt werden und es kann – sobald festgestellt wird, dass die Pflanze in dem Topf zu trocken ist – mit einer Pumpe Wasser hinzugefügt werden.
Makecode
Der kapazitive Feuchtigkeitssensor misst die Bodenfeuchtigkeit durch Veränderungen der elektrischen Kapazität. Je feuchter der Boden ist, desto stärker beeinflusst er das elektrische Feld, wodurch sich die Kapazität des Sensors erhöht. Im Gegensatz zu resistiven Sensoren müssen die Metallelektroden nicht direkt mit dem Boden in Kontakt kommen, so wird Korrosion vermieden.
Wichtig: Der Sensor liefert keine exakten Messwerte, sondern zeigt nur an, ob der Boden feuchter oder trockener wird. Wenn die Bodenfeuchtigkeit steigt, sinkt normalerweise der ausgegebene Wert. Wenn der Boden trockener wird, steigt der Wert.

Möchte man original Messwert angezeigt bekommen, kann man den analogen Wert anzeigen lassen und muss nicht die Grove Erweiterung nutzen.
Um mit den Werten des Feuchtigkeitssensors arbeiten zu können, muss der jeweilige Wert des Pins abgefragt werden, auf dem der Sensor die Daten sendet. In diesem Fall ist das der Pin C16.
Die Pin-Blöcke sind unter dem Bereich Fortgeschritten zu finden. Dort muss der Block "analoge Werte von Pin P0" ausgewählt und "P0" in "C16" geändert werden.
Python
Die Werte des Feuchtigkeitssensors können über den Grove Pin pin_A1_RX über die Funktion analogread() ausgelesen werden und in einer Variable Feuchtigkeit gespeichert werden:
feuchtigkeit = pin_A1_RX.read_analog()
Anschließend können die Wertebereiche beispielweise auf die drei Zustände trocken, feucht, sehr freucht abgefragt werden und der Status auf dem Display des calliope mini angezeigt werden:
from calliopemini import *
while True:
feuchtigkeit = pin_A1_RX.read_analog() # Wert von 0–1023
if feuchtigkeit < 300:
display.scroll("trocken")
elif feuchtigkeit < 600:
display.scroll("feucht")
else:
display.scroll("sehr feucht")
sleep(1000)