Arduino UNO Q - Steuert Pumpe

Eine 12-V-Pumpe kann Wasser, Öl oder andere Flüssigkeiten bewegen und wird häufig in Bewässerungssystemen, Aquarien und Wassernachfüllstationen verwendet. Arduino UNO Q steuert die Pumpe über ein Relais. Mit Bridge und Telegram können Sie die Pumpe von überall aus ferngesteuert ein- oder ausschalten.

In diesem Tutorial erfahren Sie:

Arduino UNO Q Pump

Erforderliche Hardware

1×Arduino UNO Q
1×USB-Kabel für Arduino UNO Q
1×12-V-Pumpe
1×Kunststoffschlauch
1×Relais
1×12-V-Netzteil
1×DC-Stromanschluss
1×Jumper-Kabel
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 die 12-V-Pumpe

Pinbelegung

Eine 12-V-Pumpe hat typischerweise zwei Drahtverbindungen:

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

So steuern Sie die Pumpe

Eine 12-V-Pumpe benötigt eine 12-V-Stromversorgung – sie darf NIEMALS direkt an einen Arduino UNO Q-Pin angeschlossen werden. Ein Relais wird als Schnittstelle verwendet. Der MCU steuert das Relais, das die 12-V-Versorgung zur Pumpe schaltet:

  • Relais-Pin HIGH → Relais schließt → 12V zur Pumpe → Pumpe AN
  • Relais-Pin LOW → Relais öffnet → keine Stromversorgung zur Pumpe → Pumpe AUS

Schaltplan

Arduino UNO Q Pump Wiring Diagram

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

Verbinden Sie den Relaismodul-IN-Pin mit MCU-Pin D3. Verbinden Sie die COM- und NO-Anschlüsse des Relais zwischen der 12-V-Versorgung und der Pumpe. Verbinden Sie VCC des Relais mit 5V und GND mit GND.

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

So programmieren Sie die Pumpe

  • Stellen Sie den Relais-Pin als Ausgang ein:
pinMode(RELAY_PIN, OUTPUT);
  • Pumpe ein- und ausschalten:
digitalWrite(RELAY_PIN, HIGH); // pump ON delay(5000); digitalWrite(RELAY_PIN, LOW); // pump OFF delay(5000);

Arduino UNO Q Code

Der Arduino UNO Q hat zwei Prozessoren, die zusammenarbeiten:

  • Der STM32 MCU steuert das Relais, das die 12-V-Stromversorgung zur Pumpe schaltet
  • Der Qualcomm MPU führt Debian Linux aus 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 schaltet die Pumpe für 5 Sekunden ein, dann für 5 Sekunden aus – 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-controls-pump */ // This code turns the pump ON for 5 seconds and OFF for 5 seconds repeatedly. // The pump requires a 12V power supply and is controlled through a relay. #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 Pump ready"); } void loop() { Serial.println("Pump: ON"); digitalWrite(RELAY_PIN, HIGH); // turn pump ON delay(5000); Serial.println("Pump: OFF"); digitalWrite(RELAY_PIN, LOW); // turn pump OFF delay(5000); }

Schnelle Schritte

Zum ersten Mal mit Arduino UNO Q? Folgen Sie zuerst dem Tutorial Erste Schritte mit Arduino UNO Q.

  • Verbinden: Verdrahten Sie die Pumpe, das Relais und die 12-V-Stromversorgung mit Arduino UNO Q MCU wie im Schaltplan gezeigt. Befestigen Sie einen Kunststoffschlauch am Pumpenein-/Auslass.
  • Arduino App Lab öffnen: Starten Sie Arduino App Lab und warten Sie, bis Ihr Arduino UNO Q erkannt wird.
  • Neue App erstellen: Klicken Sie auf die Schaltfläche Create New App (Neue App erstellen).
Create New App in Arduino App Lab on Arduino UNO Q
  • Geben Sie der App einen Namen, z. B. Pump
  • Klicken Sie auf Create (Erstellen) zum Bestätigen.
Arduino App Lab App folders and files on Arduino UNO Q
  • Sketch einfügen: Kopieren Sie den MCU-Code oben und fügen Sie ihn in sketch/sketch.ino ein. Lassen Sie andere Dateien wie Standard.
  • Keine Bibliothek erforderlich – verwendet nur die integrierte Funktion digitalWrite().
  • Hochladen: Klicken Sie auf die Schaltfläche „Run" (Ausführen) in Arduino App Lab.
Click Run button in Arduino App Lab on Arduino UNO Q
  • Beobachten Sie, wie die Pumpe alle 5 Sekunden ein- und ausgeht.

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 Pump ready [2026-04-29 09:00:01] Pump: ON [2026-04-29 09:00:06] Pump: OFF [2026-04-29 09:00:11] Pump: ON [2026-04-29 09:00:16] Pump: OFF

Bridge: Linux + MCU

In diesem Abschnitt wird gezeigt, wie Sie beide Prozessoren des Arduino UNO Q so programmieren, dass die Linux-Seite die Pumpe über Bridge ein- und ausschalten kann:

  • Die Pumpe ist über ein Relais mit dem MCU verbunden – der MCU steuert den Relais-Ausgangspin
  • Der MPU kann das Relais nicht direkt steuern – er ruft Bridge-Funktionen auf, um die Pumpe ein- oder auszuschalten
  • Der MPU hat Wi-Fi – die vollständige Debian Linux läuft ab und kann Befehle von Telegram oder einem anderen Dienst empfangen und sie in Pumpensteuervorgänge übersetzen
  • Arduino_RouterBridge ermöglicht RPC-Kommunikation zwischen den beiden Prozessoren
  • ⚠️ /dev/ttyHS1 (Linux) und Serial1 (MCU) sind RESERVIERT durch den Router – öffnen Sie diese niemals im Benutzercode

Kurz gesagt: MPU sendet Ein-/Aus-Befehle → ruft Bridge auf → MCU steuert Relais → Pumpe aktiviert.

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-controls-pump */ #include "Arduino_RouterBridge.h" #define RELAY_PIN 3 // The Arduino UNO Q MCU pin connected to the relay IN pin bool is_on = false; String pump_on(String arg) { digitalWrite(RELAY_PIN, HIGH); is_on = true; Monitor.println("Pump: ON"); return "on"; } String pump_off(String arg) { digitalWrite(RELAY_PIN, LOW); is_on = false; Monitor.println("Pump: OFF"); return "off"; } String get_state(String arg) { return is_on ? "on" : "off"; } void setup() { Bridge.begin(); Monitor.begin(); pinMode(RELAY_PIN, OUTPUT); digitalWrite(RELAY_PIN, LOW); // start with pump off is_on = false; Bridge.provide_safe("pump_on", pump_on); Bridge.provide_safe("pump_off", pump_off); Bridge.provide("get_state", get_state); Monitor.println("Arduino UNO Q Pump Bridge ready"); Monitor.println("Initial state: OFF"); } 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-controls-pump */ from arduino.app_utils import * import time def loop(): state = Bridge.call("get_state") print(f"Pump state: {state}") # Example: run pump for 5 seconds, then stop if state == "off": print("Starting pump...") Bridge.call("pump_on") time.sleep(5) print("Stopping pump...") Bridge.call("pump_off") time.sleep(1) App.run(user_loop=loop)

Schnelle Schritte

  • Verbinden: Verdrahten Sie die Pumpe, das Relais und die 12-V-Stromversorgung mit Arduino UNO Q wie im Schaltplan gezeigt.
  • Arduino App Lab öffnen: Starten Sie Arduino App Lab und warten Sie, bis das Board erkannt wird.
  • Neue App erstellen: Klicken Sie auf Create New App (Neue App erstellen), benennen Sie sie PumpBridge und klicken Sie auf Create (Erstellen).
  • MCU-Sketch einfügen: Kopieren Sie den MCU Bridge-Code oben und fügen Sie ihn in sketch/sketch.ino ein.
  • Python-Code einfügen: 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 Schaltfläche „Run" (Ausführen) in Arduino App Lab.
Click Run button in Arduino App Lab on Arduino UNO Q
  • Beobachten Sie den Pumpenzyklus: an → 5 Sekunden warten → aus → 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 Pump Bridge ready [2026-04-29 09:00:01] Initial state: OFF [2026-04-29 09:00:02] Pump: ON [2026-04-29 09:00:07] Pump: OFF
DIYables_Apps
Stop
sketch.ino
1#include "Arduino_RouterBridge.h"
Serial Monitor
Python
[2026-04-29 09:00:02] Pump state: off [2026-04-29 09:00:02] Starting pump... [2026-04-29 09:00:07] Stopping pump... [2026-04-29 09:00:08] Pump state: off

Telegram

Steuern Sie die Pumpe ferngesteuert über Telegram – schalten Sie sie von überall mit einem einfachen Befehl ein oder aus.

MCU-Sketch: Verwenden Sie denselben MCU-Sketch 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-controls-pump */ 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 Pump Bot\n" "/on - Turn the pump ON\n" "/off - Turn the pump OFF\n" "/state - Read current pump state") elif text == "/on": result = Bridge.call("pump_on") send_message(chat_id, f"💧 Pump state: {result}") elif text == "/off": result = Bridge.call("pump_off") send_message(chat_id, f"🔴 Pump state: {result}") elif text == "/state": result = Bridge.call("get_state") send_message(chat_id, f"Pump 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 denselben MCU-Sketch bei).
  • Klicken Sie auf die Schaltfläche „Run" (Ausführen). Senden Sie /on von Telegram aus, um die Pumpe zu starten, dann /off, um sie 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: /on [2026-04-29 09:10:12] Received: /state [2026-04-29 09:10:20] Received: /off
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 ✓✓
Pump state: off
10:16 AM
/on
10:17 AM ✓✓
💧 Pump state: on
10:18 AM
/state
10:19 AM ✓✓
Pump state: on
10:20 AM
/off
10:21 AM ✓✓
🔴 Pump state: off
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 der Pumpe und Arduino UNO Q erstellen:

  • Fernbedientes Bewässerungssystem: Starten und stoppen Sie die Gartenbewässerung von überall über Telegram – die Linux-Seite protokolliert jede Pumpensitzung mit Startzeit und Dauer in einer CSV-Datei
  • Automatische Pflanzenbewässerung: Programmieren Sie den MPU so, dass er die Pumpe jeden Morgen für 5 Minuten über die Linux-Systemuhr ausführt – keine manuelle Intervention erforderlich
  • Hochwasserreaktion: Kombinieren Sie mit einem Wassersensor – wenn der Sensor einen steigenden Wasserstand erkennt, schaltet sich die Pumpe automatisch über Bridge ein, um das Wasser abzulassen, und sendet einen Telegram-Alarm
  • Automatischer Aquariumnachfüller: Überwachen Sie den Wasserstand mit einem Sensor – wenn er unter das Minimum fällt, aktiviert Python die Pumpe für 30 Sekunden, um Wasser nachzufüllen, und sendet eine Telegram-Benachrichtigung
  • Wasserumfüllstation: Bauen Sie einen münzbetriebenen oder zeitgesteuerten Wasserspender – /on startet die Pumpe und ein 30-Sekunden-Python-Timer stoppt sie automatisch, um Überläufe zu verhindern

Fordern Sie sich selbst heraus

Bereit, mit der Pumpe auf Arduino UNO Q weiterzugehen? Versuchen Sie diese Herausforderungen:

  • Einfach: Fügen Sie einen /on_10s Telegram-Befehl hinzu, der die Pumpe mit time.sleep(10) auf der Python-Seite genau 10 Sekunden lang einschaltet, bevor Bridge.call("pump_off") aufgerufen wird.
  • Mittel: Implementieren Sie einen täglichen Bewässerungsplan: Python liest eine JSON-Datei mit Ein-/Aus-Zeiten und steuert die Pumpe automatisch – senden Sie eine Telegram-Benachrichtigung, wenn jede Pumpensitzung startet und beendet wird.
  • Fortgeschritten: Erstellen Sie ein Durchsatzprotokoll: Jede Pumpen-AN-Sitzung wird in einer CSV-Datei mit Startzeitstempel, Stoppzeitstempel und Dauer protokolliert – implementieren Sie einen /log Telegram-Befehl, der eine Zusammenfassung der letzten 5 Sitzungen 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!