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+ |
Alternativ können die Komponenten auch einzeln über die untenstehenden Links erworben werden.
SN |
KOMPONENTE |
ANZAHL |
LINK |
---|---|---|---|
1 |
1 |
||
2 |
Micro-USB-Kabel |
1 |
|
3 |
1 |
||
4 |
Mehrere |
||
5 |
1 |
||
6 |
1 |
Verkabelung
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.
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 Verzeichniskepler-kit-main\piper
. Für detaillierte Anleitungen siehe Code importieren.
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
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%.
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.
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.