Arduino UNO Q - Capteur d'Inclinaison SW520D

Un capteur d'inclinaison SW520D détecte les changements d'orientation et génère un signal numérique. Il utilise un simple mécanisme d'interrupteur à bille — sans potentiomètre ni sortie analogique. Utilisez-le pour déclencher des actions lorsqu'un objet est incliné, renversé ou déplacé. Avec Bridge et Telegram, votre Arduino UNO Q peut vous envoyer des alertes instantanées lorsqu'une inclinaison est détectée.

Dans ce tutoriel, vous apprendrez :

Capteur d'Inclinaison SW520D Arduino UNO Q

Matériel Requis

1×Arduino UNO Q
1×USB Cable for Arduino Uno Q
1×SW520D Tilt Sensor Module
1×Fils de connexion
1×Recommandé: Shield à bornier à vis pour Arduino Uno
1×Recommandé: Sensors/Servo Expansion Shield for Arduino Uno
1×Recommandé: Shield plaque d'essai pour Arduino Uno
1×Recommandé: Boîtier pour Arduino Uno
1×Recommandé: Kit plaque de base prototypage et plaque d'essai pour Arduino Uno

Ou vous pouvez acheter les kits suivants:

1×Kit de Capteurs DIYables (18 capteurs/écrans)
Divulgation : Certains des liens fournis dans cette section sont des liens affiliés Amazon. Nous pouvons recevoir une commission pour tout achat effectué via ces liens, sans coût supplémentaire pour vous. Nous vous remercions de votre soutien.

À Propos du Capteur d'Inclinaison SW520D

Un module capteur d'inclinaison SW520D détecte les changements d'orientation à l'aide d'une petite bille métallique à l'intérieur d'un boîtier cylindrique. Lorsque le capteur est vertical, la bille ferme le contact électrique. Lorsque le capteur est incliné, la bille roule et ouvre le contact. Le module génère un signal numérique simple :

  • HIGH : Le capteur est vertical — aucune inclinaison détectée
  • LOW : Le capteur est incliné — inclinaison détectée

Le module comprend :

  • Broche VCC : Alimentation 3,3V à 5V
  • Broche GND : Masse
  • Broche DO : Sortie numérique — HIGH = vertical, LOW = inclinaison détectée
  • LED PWR : Indicateur d'alimentation
  • LED Status : Reflète l'état d'inclinaison — allumée quand vertical, éteinte quand incliné
Brochage du Capteur d'Inclinaison SW520D
image source: diyables.io

Schéma de Câblage

Schéma de Câblage Arduino UNO Q Capteur d'Inclinaison SW520D

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.

Broche Capteur d'Inclinaison SW520D MCU Arduino UNO Q
GND GND
VCC 5V
DO D8

Comment Programmer pour le Capteur d'Inclinaison SW520D

  • Configurer la broche du capteur comme entrée numérique :
pinMode(SENSOR_PIN, INPUT);
  • Lire la sortie numérique :
int tilt_state = digitalRead(SENSOR_PIN);
  • Détecter les événements d'inclinaison en comparant à l'état précédent :
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;

Code Arduino UNO Q

L'Arduino UNO Q possède deux processeurs fonctionnant ensemble :

  • Le MCU STM32 lit la sortie numérique du capteur d'inclinaison SW520D et détecte les événements d'inclinaison
  • Le MPU Qualcomm exécute Debian Linux avec Wi-Fi — dans cette section, seul le MCU est programmé. Une section ultérieure montre comment les deux processeurs fonctionnent ensemble via Bridge.
/* * Ce code Arduino UNO Q a été développé par newbiely.fr * Ce code Arduino UNO Q est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/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; }

Étapes Rapides

Première utilisation d'Arduino UNO Q ? Suivez le tutoriel Démarrer avec Arduino UNO Q avant de continuer.

  • Connecter : Câblez le capteur d'inclinaison SW520D à l'Arduino UNO Q MCU comme indiqué dans le schéma de câblage.
  • Ouvrir Arduino App Lab : Lancez Arduino App Lab et attendez qu'il détecte votre Arduino UNO Q.
  • Créer une nouvelle application : Cliquez sur le bouton Créer une nouvelle application.
Créer une nouvelle application dans Arduino App Lab sur Arduino UNO Q
  • Donnez un nom à l'application, par exemple : SW520DTiltSensor
  • Cliquez sur Créer pour confirmer.
Dossiers et fichiers de l'application Arduino App Lab sur Arduino UNO Q
  • Coller le sketch : Copiez le code MCU ci-dessus et collez-le dans sketch/sketch.ino.
  • Téléverser : Cliquez sur le bouton Exécuter dans Arduino App Lab.
Cliquez sur le bouton Exécuter dans Arduino App Lab sur Arduino UNO Q
  • Inclinez le capteur dans les deux sens — observez la sortie du Moniteur Série.
  • Assurez-vous que le capteur est monté dans la bonne position verticale pour une détection fiable.

Sortie de la Console App Lab

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

Cette section montre comment programmer les deux processeurs de l'Arduino UNO Q pour que le côté Linux puisse lire l'état d'inclinaison et recevoir les événements via Bridge :

  • Le capteur d'inclinaison SW520D est connecté au MCU — le MCU surveille en permanence la sortie numérique et met en cache l'état actuel
  • Le MPU ne peut pas lire la broche du capteur directement — il appelle les fonctions Bridge pour obtenir l'état actuel ou vérifier les nouveaux événements d'inclinaison
  • Le MPU dispose du Wi-Fi — exécutant Debian Linux complet, il peut envoyer des alertes Telegram dès qu'une inclinaison est détectée
  • Arduino_RouterBridge permet la communication RPC entre les deux processeurs
  • ⚠️ /dev/ttyHS1 (Linux) et Serial1 (MCU) sont RÉSERVÉS par le routeur — ne les ouvrez jamais dans le code utilisateur

En résumé : Le MCU détecte l'inclinaison via la broche DO → définit le drapeau d'événement → le MPU interroge Bridge → le MPU envoie une alerte Telegram.

Code MCU (Bridge)

/* * Ce code Arduino UNO Q a été développé par newbiely.fr * Ce code Arduino UNO Q est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/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; }

Code Python (Bridge)

/* * Ce code Arduino UNO Q a été développé par newbiely.fr * Ce code Arduino UNO Q est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/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)

Étapes Rapides

  • Connecter : Câblez le capteur d'inclinaison SW520D à l'Arduino UNO Q comme indiqué dans le schéma de câblage.
  • Ouvrir Arduino App Lab et créer une nouvelle application nommée TiltSensorBridge.
  • Coller le sketch MCU dans sketch/sketch.ino.
  • Coller le code Python dans le fichier Python.
  • 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
  • Téléverser : Cliquez sur le bouton Exécuter.
Cliquez sur le bouton Exécuter dans Arduino App Lab sur Arduino UNO Q
  • Inclinez le capteur — observez l'événement apparaître dans les deux consoles.

Sortie de la Console App Lab

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

Recevez des alertes Telegram instantanées lorsqu'une inclinaison est détectée par le capteur d'inclinaison SW520D de l'Arduino UNO Q.

Sketch MCU : Conservez le même sketch MCU de la section Bridge précédente.

Code Python (Telegram)

/* * Ce code Arduino UNO Q a été développé par newbiely.fr * Ce code Arduino UNO Q est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/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)

Étapes Rapides

  • Remplacez YOUR_TELEGRAM_BOT_TOKEN par votre vrai token de bot de BotFather.
  • Remplacez YOUR_CHAT_ID par votre identifiant de chat Telegram.
  • Collez ce code Python dans le fichier Python de votre application (conservez le même sketch MCU).
  • Cliquez sur le bouton Exécuter — inclinez le capteur pour déclencher une alerte Telegram.

Sortie de la Console App Lab

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

Intégration d'OpenClaw

Vous pouvez adapter OpenClaw à ce tutoriel en vous référant aux instructions du tutoriel Arduino UNO Q - OpenClaw.

Idées de Projets

Vous pouvez réaliser de nombreux projets utiles avec le capteur d'inclinaison SW520D et l'Arduino UNO Q :

  • Alerte Anti-Sabotage : Fixez le capteur sur un boîtier — s'il est incliné ou déplacé, le MPU envoie une alerte Telegram immédiate avec un horodatage pour savoir quand la tentative a eu lieu
  • Interrupteur Activé par Inclinaison : Utilisez le capteur d'inclinaison avec un relais via Bridge — Python détecte l'événement d'inclinaison et allume ou éteint une lumière ou un ventilateur selon l'orientation
  • Moniteur d'Équipement : Montez le capteur sur une machine ou un meuble — le MPU enregistre chaque événement d'inclinaison dans un fichier CSV sous Linux et envoie un rapport Telegram en fin de journée
  • Alerte Coffre-fort Intelligent : Combinez le capteur d'inclinaison avec un capteur de porte — Telegram vous alerte lorsque la porte du coffre s'ouvre ou que le coffre lui-même est déplacé
  • Contrôleur d'Inclinaison Télécommandé : Utilisez deux capteurs SW520D montés sur différents axes — le MPU lit les deux états via Bridge et envoie des commandes d'orientation pour contrôler un appareil à distance via Wi-Fi

Tutoriels connexes

※ NOS MESSAGES

  • N'hésitez pas à partager le lien de ce tutoriel. Cependant, veuillez ne pas utiliser notre contenu sur d'autres sites web. Nous avons investi beaucoup d'efforts et de temps pour créer ce contenu, veuillez respecter notre travail !