Arduino UNO Q - Wasser-/Flüssigkeitsventil

Ein Wasser-/Flüssigkeitssolenoidventil steuert den Durchfluss von Wasser, Öl oder anderen Flüssigkeiten. Es öffnet sich, wenn 12V angewendet wird, und schließt sich, wenn die Stromversorgung unterbrochen wird. Arduino UNO Q steuert es über ein Relais. Mit Bridge und Telegram können Sie das Ventil von überall aus ferngesteuert öffnen und schließen.

In diesem Tutorial lernen Sie:

Arduino UNO Q Water/Liquid Valve

Erforderliche Hardware

1×Arduino UNO Q
1×USB Cable for Arduino Uno Q
1×Liquid Solenoid Valve
1×Relais
1×12V Netzteil
1×DC-Stromanschluss
1×Verbindungskabel
1×(Empfohlen) Schraubklemmenblock-Shield für Arduino Uno
1×(Empfohlen) Sensors/Servo Expansion Shield for Arduino Uno
1×(Empfohlen) Breadboard-Shield für Arduino Uno
1×(Empfohlen) Gehäuse für Arduino Uno
1×(Empfohlen) Prototyping-Grundplatte & Breadboard-Kit für Arduino Uno

Oder Sie können die folgenden Kits kaufen:

1×DIYables Sensor-Kit (18 Sensoren/Displays)
Offenlegung: Einige der in diesem Abschnitt bereitgestellten Links sind Amazon-Affiliate-Links. Wir können eine Provision für Käufe erhalten, die über diese Links getätigt werden, ohne zusätzliche Kosten für Sie. Wir schätzen Ihre Unterstützung.

Über das Wasser-/Flüssigkeitsventil

Pinbelegung

Ein Solenoidventil hat zwei Drahtanschlüsse:

  • Positiv (+) rotes Kabel: Mit 12V DC über das Relais verbinden
  • Negativ (-) schwarzes Kabel: Mit GND der 12V DC Stromversorgung verbinden
Water Valve Pinout

Wie es funktioniert

  • Wenn 12V angewendet wird → öffnet sich das Solenoid → Flüssigkeit kann fließen
  • Wenn Stromversorgung unterbrochen wird → schließt sich das Solenoid → Flüssigkeitsfluss stoppt

※ Notiz:

Einige Ventile erfordern einen Mindestfluiddruck, um sich vollständig zu öffnen, nachdem 12V angewendet wurden. Außerdem sind einige Ventile richtungsabhängig — überprüfen Sie den Durchflussrichtungspfeil auf dem Körper. Das Ventil darf NIEMALS direkt an einen Arduino UNO Q Pin angeschlossen werden. Verwenden Sie immer ein Relais, um die 12V-Stromversorgung zu schalten.

Wie Sie das Ventil steuern

Der Arduino UNO Q MCU steuert ein Relais, das die 12V-Stromversorgung zum Solenoidventil schaltet:

  • Relais Pin HIGH → Relais schließt → 12V zum Ventil → Ventil OFFEN
  • Relais Pin LOW → Relais öffnet → keine Stromversorgung zum Ventil → Ventil GESCHLOSSEN

Schaltplan

Arduino UNO Q Water Valve Wiring Diagram

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.

Verbinden Sie den Relais-Modul IN-Pin mit MCU-Pin D3. Verbinden Sie die COM- und NO-Anschlüsse des Relais zwischen der 12V-Stromversorgung und dem Solenoidventil. Verbinden Sie die VCC des Relais mit 5V und GND mit GND.

Relais Pin Arduino UNO Q MCU
GND GND
VCC 5V
IN D3

Programmierung für Wasserventil

  • Richten Sie den Relais-Pin als Ausgang ein:
pinMode(RELAY_PIN, OUTPUT);
  • Öffnen und schließen Sie das Ventil:
digitalWrite(RELAY_PIN, HIGH); // open valve delay(5000); digitalWrite(RELAY_PIN, LOW); // close valve delay(5000);

Arduino UNO Q Code

Der Arduino UNO Q hat zwei Prozessoren, die zusammenarbeiten:

  • Der STM32 MCU steuert das Relais, das 12V Stromversorgung zum Solenoidventil schaltet
  • Der Qualcomm MPU läuft Debian Linux und verwaltet Wi-Fi, Python und Cloud-Konnektivität
  • In diesem Abschnitt wird nur der MCU programmiert — die Linux-Seite bleibt untätig. Ein späterer Abschnitt zeigt, wie beide Prozessoren über Bridge zusammenarbeiten.

Dieser Code öffnet das Ventil für 5 Sekunden, schließt es dann — wiederholt sich kontinuierlich.

/* * Dieser Arduino UNO Q Code wurde von newbiely.de entwickelt * Dieser Arduino UNO Q Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt. * Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte: * https://newbiely.de/tutorials/arduino-uno-q/arduino-uno-q-water-liquid-valve */ // This code opens and closes the water/liquid valve every 5 seconds. // The valve requires a 12V power supply and is controlled through a relay. // HIGH = valve OPEN, LOW = valve CLOSED #define RELAY_PIN 3 // The Arduino UNO Q MCU pin connected to the relay IN pin void setup() { Serial.begin(9600); pinMode(RELAY_PIN, OUTPUT); Serial.println("Arduino UNO Q Water/Liquid Valve ready"); } void loop() { Serial.println("Valve: OPEN"); digitalWrite(RELAY_PIN, HIGH); // open valve delay(5000); Serial.println("Valve: CLOSED"); digitalWrite(RELAY_PIN, LOW); // close valve delay(5000); }

Schnelle Schritte

Erste Schritte mit Arduino UNO Q? Folgen Sie dem Erste Schritte mit Arduino UNO Q Tutorial, bevor Sie fortfahren.

  • Verbinden: Verdrahten Sie das Solenoidventil, das Relais und die 12V Stromversorgung mit dem Arduino UNO Q MCU wie im Schaltplan gezeigt.
  • Öffnen Sie Arduino App Lab: Starten Sie Arduino App Lab und warten Sie, bis es Ihr Arduino UNO Q erkennt.
  • Erstellen Sie eine neue App: Klicken Sie auf die Schaltfläche Create New App.
Create New App in Arduino App Lab on Arduino UNO Q
  • Geben Sie der App einen Namen, zum Beispiel: WaterValve
  • Klicken Sie auf Create, um zu bestätigen.
Arduino App Lab App folders and files on Arduino UNO Q
  • Fügen Sie die Skizze ein: Kopieren Sie den MCU-Code oben und fügen Sie ihn in sketch/sketch.ino ein. Behalten Sie andere Dateien als Standard.
  • Keine Bibliothek erforderlich — verwendet nur die integrierte digitalWrite() Funktion.
  • Hochladen: Klicken Sie auf die Run-Schaltfläche in Arduino App Lab.
Click Run button in Arduino App Lab on Arduino UNO Q
  • Beobachten Sie, wie sich das Ventil alle 5 Sekunden abwechselnd öffnet und schließt. Sie können das Klicken des Solenoids hören.

App Lab Konsolenausgabe

DIYables_Apps
Stop
sketch.ino
1#include "Arduino_RouterBridge.h"
Serial Monitor
Python
Message (Enter to send a message to "Newbiely" on usb(2820070321))
New Line
9600 baud
[2026-04-29 09:00:01] Arduino UNO Q Water/Liquid Valve ready [2026-04-29 09:00:01] Valve: OPEN [2026-04-29 09:00:06] Valve: CLOSED [2026-04-29 09:00:11] Valve: OPEN [2026-04-29 09:00:16] Valve: CLOSED

Bridge: Linux + MCU

Dieser Abschnitt zeigt, wie Sie beide Prozessoren des Arduino UNO Q programmieren, damit die Linux-Seite das Ventil über Bridge öffnen und schließen kann:

  • Das Solenoidventil ist mit dem MCU über ein Relais verbunden — der MCU steuert den Relais-Ausgabe-Pin
  • Der MPU kann das Relais nicht direkt steuern — er ruft Bridge-Funktionen auf, um das Ventil zu öffnen oder zu schließen
  • Der MPU hat Wi-Fi — mit vollständigem Debian Linux kann er Befehle von Telegram oder einem anderen Web-Service akzeptieren und in Ventilsteuerungsaktionen umwandeln
  • Arduino_RouterBridge ermöglicht RPC-Kommunikation zwischen den beiden Prozessoren
  • ⚠️ /dev/ttyHS1 (Linux) und Serial1 (MCU) sind RESERVIERT vom Router — öffnen Sie sie niemals im Benutzercode

Kurz gesagt: MPU empfängt Öffnungs-/Schließungsbefehle → ruft Bridge auf → MCU steuert Relais → Ventil wird betätigt.

MCU Code (Bridge)

/* * Dieser Arduino UNO Q Code wurde von newbiely.de entwickelt * Dieser Arduino UNO Q Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt. * Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte: * https://newbiely.de/tutorials/arduino-uno-q/arduino-uno-q-water-liquid-valve */ #include "Arduino_RouterBridge.h" #define RELAY_PIN 3 // The Arduino UNO Q MCU pin connected to the relay IN pin // HIGH = valve OPEN, LOW = valve CLOSED bool is_open = false; String open_valve(String arg) { digitalWrite(RELAY_PIN, HIGH); is_open = true; Monitor.println("Valve: OPEN"); return "open"; } String close_valve(String arg) { digitalWrite(RELAY_PIN, LOW); is_open = false; Monitor.println("Valve: CLOSED"); return "closed"; } String get_state(String arg) { return is_open ? "open" : "closed"; } void setup() { Bridge.begin(); Monitor.begin(); pinMode(RELAY_PIN, OUTPUT); digitalWrite(RELAY_PIN, LOW); // start closed is_open = false; Bridge.provide_safe("open_valve", open_valve); Bridge.provide_safe("close_valve", close_valve); Bridge.provide("get_state", get_state); Monitor.println("Arduino UNO Q Water/Liquid Valve Bridge ready"); Monitor.println("Initial state: CLOSED"); } void loop() {}

Python Code (Bridge)

/* * Dieser Arduino UNO Q Code wurde von newbiely.de entwickelt * Dieser Arduino UNO Q Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt. * Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte: * https://newbiely.de/tutorials/arduino-uno-q/arduino-uno-q-water-liquid-valve */ from arduino.app_utils import * import time def loop(): state = Bridge.call("get_state") print(f"Valve state: {state}") # Example: open for 5 seconds, then close if state == "closed": print("Opening valve...") Bridge.call("open_valve") time.sleep(5) print("Closing valve...") Bridge.call("close_valve") time.sleep(1) App.run(user_loop=loop)

Schnelle Schritte

  • Verbinden: Verdrahten Sie das Solenoidventil, das Relais und die 12V Stromversorgung mit dem Arduino UNO Q wie im Schaltplan gezeigt.
  • Öffnen Sie Arduino App Lab: Starten Sie Arduino App Lab und warten Sie auf die Erkennung des Boards.
  • Erstellen Sie eine neue App: Klicken Sie auf Create New App, geben Sie den Namen WaterValveBridge ein und klicken Sie dann auf Create.
  • Fügen Sie die MCU-Skizze ein: Kopieren Sie den MCU Bridge-Code oben und fügen Sie ihn in sketch/sketch.ino ein.
  • Fügen Sie den Python-Code ein: Kopieren Sie den Python Bridge-Code oben und fügen Sie ihn in die Python-Datei der App ein.
  • Install the library: Click the Add sketch library button (the open book icon with a + sign) in the left sidebar.
Add sketch library in Arduino App Lab on Arduino UNO Q
  • Search for Arduino_RouterBridge created by Arduino and click the Install button.
My Apps / DIYables Apps
Run
Bricks
No bricks added...
Sketch Libraries
No sketch libra...
Files
python
sketch
.gitignore
README.md
app.yaml
sketch.ino
Add sketch library
Arduino_RouterBridge Arduino

This library provides a simple RPC bridge for Arduino UNO Q boards, allowing communication between the board and other devices using MsgPack serialization.

0.4.1
Install
More Info
  • Hochladen: Klicken Sie auf die Run-Schaltfläche in Arduino App Lab.
Click Run button in Arduino App Lab on Arduino UNO Q
  • Beobachten Sie den Ventilzyklus: öffnen → 5 Sekunden warten → schließen → 1 Sekunde warten → wiederholen.

App Lab Konsolenausgabe

DIYables_Apps
Stop
sketch.ino
1#include "Arduino_RouterBridge.h"
Serial Monitor
Python
Message (Enter to send a message to "Newbiely" on usb(2820070321))
New Line
9600 baud
[2026-04-29 09:00:01] Arduino UNO Q Water/Liquid Valve Bridge ready [2026-04-29 09:00:01] Initial state: CLOSED [2026-04-29 09:00:02] Valve: OPEN [2026-04-29 09:00:07] Valve: CLOSED
DIYables_Apps
Stop
sketch.ino
1#include "Arduino_RouterBridge.h"
Serial Monitor
Python
[2026-04-29 09:00:02] Valve state: closed [2026-04-29 09:00:02] Opening valve... [2026-04-29 09:00:07] Closing valve... [2026-04-29 09:00:08] Valve state: closed

Telegram

Steuern Sie das Wasser-/Flüssigkeitsventil remote über Telegram — öffnen und schließen Sie es von überall aus mit einem einfachen Befehl.

MCU-Skizze: Behalten Sie dieselbe MCU-Skizze aus dem vorherigen Bridge-Abschnitt.

Python Code (Telegram)

/* * Dieser Arduino UNO Q Code wurde von newbiely.de entwickelt * Dieser Arduino UNO Q Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt. * Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte: * https://newbiely.de/tutorials/arduino-uno-q/arduino-uno-q-water-liquid-valve */ from arduino.app_utils import * import requests import time TELEGRAM_BOT_TOKEN = "YOUR_TELEGRAM_BOT_TOKEN" CHAT_ID = "YOUR_CHAT_ID" last_update_id = 0 def get_updates(): global last_update_id url = f"https://api.telegram.org/bot{TELEGRAM_BOT_TOKEN}/getUpdates" params = {"offset": last_update_id + 1, "timeout": 5} try: response = requests.get(url, params=params, timeout=10) data = response.json() if data["ok"]: return data["result"] except Exception as e: print(f"Error getting updates: {e}") return [] def send_message(chat_id, text): url = f"https://api.telegram.org/bot{TELEGRAM_BOT_TOKEN}/sendMessage" payload = {"chat_id": chat_id, "text": text} try: requests.post(url, data=payload, timeout=10) except Exception as e: print(f"Error sending message: {e}") def loop(): updates = get_updates() for update in updates: last_update_id = update["update_id"] if "message" not in update: continue message = update["message"] chat_id = message["chat"]["id"] text = message.get("text", "").strip() print(f"Received: {text}") if text == "/start": send_message(chat_id, "Arduino UNO Q Water/Liquid Valve Bot\n" "/open - Open the valve\n" "/close - Close the valve\n" "/state - Read current valve state") elif text == "/open": result = Bridge.call("open_valve") send_message(chat_id, f"💧 Valve state: {result}") elif text == "/close": result = Bridge.call("close_valve") send_message(chat_id, f"🚫 Valve state: {result}") elif text == "/state": result = Bridge.call("get_state") send_message(chat_id, f"Valve state: {result}") else: send_message(chat_id, "Unknown command. Send /start for help.") time.sleep(1) App.run(user_loop=loop)

Schnelle Schritte

  • Ersetzen Sie YOUR_TELEGRAM_BOT_TOKEN durch Ihr tatsächliches Bot-Token von BotFather.
  • Ersetzen Sie YOUR_CHAT_ID durch Ihre Telegram-Chat-ID.
  • Fügen Sie diesen Python-Code in die Python-Datei Ihrer App ein (behalten Sie dieselbe MCU-Skizze).
  • Klicken Sie auf die Run-Schaltfläche. Senden Sie /open von Telegram aus, um den Durchfluss zu starten, dann /close, um ihn zu stoppen.

App Lab Konsolenausgabe

DIYables_Apps
Stop
sketch.ino
1#include "Arduino_RouterBridge.h"
Serial Monitor
Python
[2026-04-29 09:10:00] Waiting for Telegram messages... [2026-04-29 09:10:05] Received: /open [2026-04-29 09:10:12] Received: /state [2026-04-29 09:10:20] Received: /close
Telegram
Telegram 12:45
Welcome to Telegram!
ArduinoBot 10:19
Chatting with Arduino...
telegram-botfather
BotFather Yesterday
Your bot has been created.

ArduinoBot

bot
Today
/state
10:15 AM ✓✓
Valve state: closed
10:16 AM
/open
10:17 AM ✓✓
💧 Valve state: open
10:18 AM
/state
10:19 AM ✓✓
Valve state: open
10:20 AM
/close
10:21 AM ✓✓
🚫 Valve state: closed
10:22 AM

OpenClaw

You can adapt the OpenClaw to this tutorial by refering the instruction on Arduino Uno Q - OpenClaw Tutorial

Projektideen

Sie können viele nützliche Projekte mit dem Solenoidventil und Arduino UNO Q bauen:

  • Remote-Bewässerungssystem: Steuern Sie die Gartenbewässerung von überall über Telegram — senden Sie /open, um die Bewässerung zu starten, und /close, um sie zu beenden, wobei die Linux-Seite die Dauer jeder Sitzung in einer Datei protokolliert
  • Zeitbasierte Bewässerung: Programmieren Sie die MPU, um das Ventil jeden Morgen um 6 Uhr automatisch für 10 Minuten zu öffnen, indem Sie die Linux-Systemuhr verwenden — keine manuelle Intervention erforderlich
  • Wasserleck-Reaktion: Kombinieren Sie einen Wassersensor mit dem Ventil — wenn der Sensor ein Leck erkennt, ruft Python sofort Bridge.call("close_valve") auf, um die Wasserzufuhr zu stoppen, und sendet eine Telegram-Benachrichtigung
  • Automatische Auffüllung von Aquarien: Verwenden Sie einen Wassersensor in einem Aquarium — wenn der Pegel unter einen Schwellwert fällt, öffnet Python das Ventil für 30 Sekunden, um Wasser hinzuzufügen, schließt es dann und sendet eine Telegram-Bestätigung
  • Bier-/Saftspender: Steuern Sie ein lebensmittelsicheres Solenoidventil, das mit einem Flüssigkeitsreservoir verbunden ist — /open dispensiert Flüssigkeit und /close stoppt es, mit einem Timer, um zu viel auszugießen

Fordern Sie sich selbst heraus

Bereit, weiter mit dem Wasserventil auf Arduino UNO Q zu gehen? Versuchen Sie diese Herausforderungen:

  • Einfach: Fügen Sie einen /open_10s Telegram-Befehl hinzu, der das Ventil genau 10 Sekunden lang öffnet, indem Sie auf der Python-Seite time.sleep(10) verwenden, bevor Sie Bridge.call("close_valve") aufrufen.
  • Mittel: Implementieren Sie einen täglichen Bewässerungsplan: Python liest eine Planungsdatei (z. B. schedule.json mit Öffnungs-/Schließungszeiten) und steuert das Ventil automatisch basierend auf der Linux-Systemuhr — senden Sie eine Telegram-Benachrichtigung, wenn jede Sitzung beginnt und endet.
  • Fortgeschritten: Bauen Sie einen Durchflusszeit-Logger: Jedes Mal, wenn das Ventil über Telegram oder automatisch geöffnet wird, protokolliert Python die Startzeit, Schließungszeit und Dauer in einer CSV-Datei — implementieren Sie einen /log Telegram-Befehl, der die letzten 5 Bewässerungssitzungen zurückgibt.

※ UNSERE NACHRICHTEN

  • Sie können gerne den Link zu diesem Tutorial teilen. Bitte verwenden Sie jedoch unsere Inhalte nicht auf anderen Websites. Wir haben viel Mühe und Zeit in die Erstellung der Inhalte investiert, bitte respektieren Sie unsere Arbeit!