Arduino UNO Q - SW520D Neigungssensor

Ein SW520D-Neigungssensor erkennt Orientierungsänderungen und gibt ein digitales Signal aus. Er verwendet einen einfachen Kugelschalter-Mechanismus — keinen Potentiometer oder Analogausgang. Verwenden Sie ihn, um Aktionen auszulösen, wenn ein Objekt geneigt, umgekippt oder bewegt wird. Mit Bridge und Telegram kann Ihr Arduino UNO Q Sie sofort benachrichtigen, wenn Neigung erkannt wird.

In diesem Tutorial lernen Sie:

Arduino UNO Q SW520D Neigungssensor

Erforderliche Hardware

1×Arduino UNO Q
1×USB Kabel für Arduino UNO Q
1×SW520D-Neigungssensor-Modul
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 den SW520D-Neigungssensor

Ein SW520D-Neigungssensor-Modul erkennt Orientierungsänderungen mit einem kleinen Metallball in einem zylindrischen Gehäuse. Wenn der Sensor aufrecht ist, schließt der Ball den elektrischen Kontakt. Wenn der Sensor geneigt wird, rollt der Ball weg und öffnet den Kontakt. Das Modul gibt ein einfaches digitales Signal aus:

  • HIGH: Sensor ist aufrecht — keine Neigung erkannt
  • LOW: Sensor ist geneigt — Neigung erkannt

Das Modul besteht aus:

  • VCC-Pin: 3,3 V bis 5 V Stromversorgung
  • GND-Pin: Masse
  • DO-Pin: Digitaler Ausgang — HIGH = aufrecht, LOW = Neigung erkannt
  • PWR-LED: Stromanzeige
  • Status-LED: Spiegelt den Neigungszustand wider — leuchtet wenn aufrecht, aus wenn geneigt
SW520D-Neigungssensor-Pinbelegung
image source: diyables.io

Schaltplan

Arduino UNO Q SW520D Neigungssensor Schaltplan

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

SW520D-Neigungssensor-Pin Arduino UNO Q MCU
GND GND
VCC 5V
DO D8

Programmierung für SW520D-Neigungssensor

  • Konfigurieren Sie den Sensor-Pin als digitalen Eingang:
pinMode(SENSOR_PIN, INPUT);
  • Lesen Sie die digitale Ausgabe:
int tilt_state = digitalRead(SENSOR_PIN);
  • Erkennen Sie Neigungsereignisse, indem Sie mit dem vorherigen Zustand vergleichen:
if (prev_state == HIGH && tilt_state == LOW) Serial.println("Tilt DETECTED"); else if (prev_state == LOW && tilt_state == HIGH) Serial.println("Tilt gone — upright again"); prev_state = tilt_state;

Arduino UNO Q Code

Arduino UNO Q hat zwei Prozessoren, die zusammenarbeiten:

  • Die STM32 MCU liest die digitale Ausgabe des SW520D-Neigungssensors und erkennt Neigungsereignisse
  • Die Qualcomm MPU führt Debian Linux mit Wi-Fi aus — in diesem Abschnitt wird nur die MCU programmiert. Ein späterer Abschnitt zeigt, wie beide Prozessoren über Bridge zusammenarbeiten.
/* * 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-sw520d-tilt-sensor */ // SW520D tilt sensor DO pin: HIGH = upright, LOW = tilt detected #define SENSOR_PIN 8 // The Arduino UNO Q MCU pin connected to DO of the SW520D tilt sensor int prev_tilt_state = HIGH; int tilt_state; void setup() { Serial.begin(9600); pinMode(SENSOR_PIN, INPUT); Serial.println("Arduino UNO Q SW520D Tilt Sensor ready"); } void loop() { tilt_state = digitalRead(SENSOR_PIN); if (prev_tilt_state == HIGH && tilt_state == LOW) Serial.println("Tilt DETECTED"); else if (prev_tilt_state == LOW && tilt_state == HIGH) Serial.println("Tilt gone — upright again"); prev_tilt_state = tilt_state; }

Schnelle Schritte

Neu bei Arduino UNO Q? Folgen Sie zunächst dem Arduino UNO Q Einstiegstutorial.

  • Verbinden Sie: Verbinden Sie den SW520D-Neigungssensor mit 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 Neue App erstellen.
Neue App in Arduino App Lab auf Arduino UNO Q erstellen
  • Geben Sie der App einen Namen, z. B.: SW520DTiltSensor
  • Klicken Sie auf Erstellen, um zu bestätigen.
Arduino App Lab App-Ordner und -Dateien auf 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.
  • Hochladen: Klicken Sie auf die Schaltfläche Ausführen in Arduino App Lab.
Klicken Sie auf die Schaltfläche Ausführen in Arduino App Lab auf Arduino UNO Q
  • Neigen Sie den Sensor hin und her — beobachten Sie die Ausgabe des seriellen Monitors.
  • Stellen Sie sicher, dass der Sensor in der korrekten aufrechten Position für zuverlässige Erkennung montiert ist.

Ausgabe der Arduino App Lab-Konsole

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 SW520D Tilt Sensor ready [2026-04-29 09:00:05] Tilt DETECTED [2026-04-29 09:00:05] Tilt gone — upright again [2026-04-29 09:00:08] Tilt DETECTED [2026-04-29 09:00:08] Tilt gone — upright again

Bridge: Linux + MCU

Dieser Abschnitt zeigt, wie Sie beide Prozessoren des Arduino UNO Q programmieren, damit die Linux-Seite den Neigungsstatus lesen und Neigungsereignisse über Bridge empfangen kann:

  • Der SW520D-Neigungssensor ist mit der MCU verbunden — die MCU überwacht die digitale Ausgabe kontinuierlich und speichert den aktuellen Zustand zwischen
  • Die MPU kann den Sensor-Pin nicht direkt lesen — Sie ruft Bridge-Funktionen auf, um den aktuellen Zustand abzurufen oder auf neue Neigungsereignisse zu prüfen
  • Die MPU hat Wi-Fi — Sie führt vollständiges Debian Linux aus und kann Telegram-Benachrichtigungen sofort senden, wenn Neigung erkannt wird
  • Arduino_RouterBridge ermöglicht RPC-Kommunikation zwischen den beiden Prozessoren
  • ⚠️ /dev/ttyHS1 (Linux) und Serial1 (MCU) sind RESERVIERT vom Router — öffnen Sie diese niemals in Benutzercode

Kurz gesagt: MCU erkennt Neigung über DO-Pin → setzt Ereignis-Flag → MPU pollte Bridge → MPU sendet Telegram-Benachrichtigung.

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-sw520d-tilt-sensor */ #include "Arduino_RouterBridge.h" #define SENSOR_PIN 8 // The Arduino UNO Q MCU pin connected to DO of the SW520D tilt sensor bool cached_tilt = false; // true = tilt present bool tilt_event = false; // true = new tilt detected (falling edge) int prev_state = HIGH; String get_state(String arg) { return cached_tilt ? "tilt" : "upright"; } String get_event(String arg) { if (tilt_event) { tilt_event = false; return "tilt_detected"; } return "none"; } void setup() { Bridge.begin(); Monitor.begin(); pinMode(SENSOR_PIN, INPUT); Bridge.provide("get_state", get_state); Bridge.provide("get_event", get_event); Monitor.println("Arduino UNO Q SW520D Tilt Sensor Bridge ready"); } void loop() { int current = digitalRead(SENSOR_PIN); if (prev_state == HIGH && current == LOW) { // Upright → Tilt cached_tilt = true; tilt_event = true; Monitor.println("Tilt detected!"); } else if (prev_state == LOW && current == HIGH) { // Tilt → Upright cached_tilt = false; Monitor.println("Upright again."); } prev_state = current; }

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-sw520d-tilt-sensor */ from arduino.app_utils import * import time def loop(): state = Bridge.call("get_state") print(f"Tilt state: {state}") time.sleep(0.5) App.run(user_loop=loop)

Schnelle Schritte

  • Verbinden Sie: Verbinden Sie den SW520D-Neigungssensor mit Arduino UNO Q wie im Schaltplan gezeigt.
  • Öffnen Sie Arduino App Lab und erstellen Sie eine neue App mit dem Namen TiltSensorBridge.
  • Fügen Sie die MCU-Skizze in sketch/sketch.ino ein.
  • Fügen Sie den Python-Code in die Python-Datei 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 Ausführen.
Klicken Sie auf die Schaltfläche Ausführen in Arduino App Lab auf Arduino UNO Q
  • Neigen Sie den Sensor — beobachten Sie, dass das Ereignis in beiden Konsolen angezeigt wird.

Ausgabe der Arduino App Lab-Konsole

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 SW520D Tilt Sensor Bridge ready [2026-04-29 09:00:05] Tilt detected! [2026-04-29 09:00:05] Upright again.
DIYables_Apps
Stop
sketch.ino
1#include "Arduino_RouterBridge.h"
Serial Monitor
Python
[2026-04-29 09:00:02] Tilt state: upright [2026-04-29 09:00:03] Tilt state: upright [2026-04-29 09:00:05] Tilt state: tilt [2026-04-29 09:00:06] Tilt state: upright

Telegram

Erhalten Sie sofortige Telegram-Benachrichtigungen, wenn Neigung auf dem Arduino UNO Q SW520D-Neigungssensor erkannt wird.

MCU-Skizze: Behalten Sie die gleiche MCU-Skizze aus dem vorherigen Bridge-Abschnitt bei.

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-sw520d-tilt-sensor */ 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(): # Auto-alert on new tilt detection event = Bridge.call("get_event") if event == "tilt_detected": print("Tilt detected! Sending Telegram alert.") send_message(CHAT_ID, "📐 Tilt detected by Arduino UNO Q!") # Handle Telegram commands 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 SW520D Tilt Sensor Bot\n" "/state - Current tilt state (tilt / upright)\n" "Automatic alert when tilt is detected") elif text == "/state": result = Bridge.call("get_state") send_message(chat_id, f"Tilt state: {result}") App.run(user_loop=loop)

Schnelle Schritte

  • Ersetzen Sie YOUR_TELEGRAM_BOT_TOKEN durch Ihren tatsächlichen 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 die gleiche MCU-Skizze bei).
  • Klicken Sie auf die Schaltfläche Ausführen — neigen Sie den Sensor, um eine Telegram-Benachrichtigung auszulösen.

Ausgabe der Arduino App Lab-Konsole

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] Tilt detected! Sending Telegram alert. [2026-04-29 09:10:10] Received: /state
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
📐 Tilt detected by Arduino UNO Q!
10:15 AM
/state
10:16 AM ✓✓
Tilt state: upright
10:17 AM
/state
10:18 AM ✓✓
Tilt state: tilt
10:19 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 SW520D-Neigungssensor und Arduino UNO Q erstellen:

  • Anti-Tamper-Warnung: Befestigen Sie den Sensor an einem Gehäuse — wenn er geneigt oder bewegt wird, sendet die MPU sofort eine Telegram-Benachrichtigung mit Zeitstempel, damit Sie wissen, wann Manipulation erfolgt ist
  • Neigung-aktivierter Schalter: Verwenden Sie den Neigungssensor mit einem Relais über Bridge — Python erkennt das Neigungsereignis und schaltet eine Leuchte oder einen Ventilator je nach Ausrichtung ein oder aus
  • Ausrüstungsüberwachung: Montieren Sie den Sensor auf Maschinen oder Möbeln — die MPU protokolliert jedes Neigungsereignis in einer CSV-Datei unter Linux und sendet am Ende des Tages einen Telegram-Bericht
  • Smart-Safe-Warnung: Kombinieren Sie den Neigungssensor mit einem Türsensor — Telegram-Benachrichtigungen, wenn entweder die Safe-Tür geöffnet wird oder der Safe selbst bewegt wird
  • RC-Neigungscontroller: Verwenden Sie zwei SW520D-Sensoren auf verschiedenen Achsen montiert — die MPU liest beide Zustände über Bridge und sendet Orientierungsbefehle zur Steuerung eines Remote-Geräts über Wi-Fi

Verwandte Tutorials

※ 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!