2.6 Intelligenter Wassertank

In diesem Projekt verwenden wir einen Wasserstandssensor und ein Servo, um einen intelligenten Wassertank zu simulieren. Der Wasserstandssensor ist im Tank angebracht, um den Wasserstand zu messen. Sobald dieser unter einen bestimmten Schwellenwert fällt, öffnet das vom Servo gesteuerte Ventil, um Wasser nachzufüllen.

Benötigte Komponenten

Für dieses Projekt werden die folgenden Komponenten benötigt.

Es ist definitiv praktisch, ein komplettes Set zu kaufen. Hier ist der Link:

Name

KOMPONENTEN IN DIESEM SET

LINK

Kepler Kit

450+

Kepler Kit

Alternativ können die Komponenten auch einzeln über die untenstehenden Links erworben werden.

SN

KOMPONENTE

ANZAHL

LINK

1

Raspberry Pi Pico W

1

BUY

2

Micro-USB-Kabel

1

3

Steckbrett

1

BUY

4

Jumperkabel

Mehrere

BUY

5

Servo

1

BUY

6

Wasserspiegelsensor-Modul

1

Verkabelung

pin_adc

Der Pico W verfügt über drei GPIO-Pins, die analoge Eingaben nutzen können: GP26, GP27, GP28, also die analogen Kanäle 0, 1 und 2. Darüber hinaus gibt es einen vierten analogen Kanal, der mit dem eingebauten Temperatursensor verbunden ist und hier nicht weiter behandelt wird.

water_tank0

  • S des Wasserstandssensors ist mit GP26(A0) verbunden, + mit VBUS, - Pin mit GND.

  • Das orangefarbene Kabel (Signal) des Servos ist mit GP15 verbunden, das rote Kabel (Strom) mit VBUS und das braune Kabel (Masse) mit GND.

Code

Bemerkung

  • Sie können sich am untenstehenden Bild orientieren, um den Code per Drag-and-Drop zu erstellen.

  • Importieren Sie 2.6_water_tank.png aus dem Verzeichnis kepler-kit-main\piper. Für detaillierte Anleitungen siehe Code importieren.

water_tank

Nach dem Anschluss von Pico W klicken Sie auf die Start-Taste und der Code wird ausgeführt. Wenn der Wasserstand unter ein Drittel des Sensors fällt, dreht sich das Servo auf 180 Grad, um den Einlass zu öffnen; ist der Wasserstand höher als ein Drittel des Sensors, dreht sich das Servo auf 0 Grad, um den Einlass zu schließen.

Funktionsweise

water_tank1

Stellen Sie die Rotationsgeschwindigkeit von Pin 15 (Servo) auf 15% ein.

  • [servo pin() set speed to ()%]: Dient zur Einstellung der Rotationsgeschwindigkeit des Servo-Pins. Der Bereich liegt zwischen 0% und 100%.

water_tank2

Liest den Wert von Pin A0 und speichert ihn in der Variable [water_level].

  • [set (water_level) to]: Dient zur Einstellung des Variablenwerts. Die Variable muss aus der Variables-Palette erstellt werden.

  • [read voltage from pin ()]: Dient zum Ablesen der Spannung der analogen Pins (A0~A2). Der Bereich liegt zwischen 0 und 3,3 V.

water_tank3

Legen Sie den Spannungsschwellenwert auf 1 fest. Wenn die Spannung des Wasserstandssensors unter 1 liegt, soll sich das Servo auf die 180°-Position drehen, andernfalls auf die 0°-Position.

  • [servo pin () set angle to ()]: Stellt den Winkel des Servo-Pins ein. Der Bereich liegt zwischen 0 und 180 Grad.