Arduino UNO Q - RS422

Utilisez la communication série RS422 avec l'Arduino UNO Q et un module TTL vers RS422. Le RS422 utilise la signalisation différentielle sur deux paires torsadées — une paire pour l'émission, une pour la réception — permettant une communication full-duplex longue distance jusqu'à 1200m avec une grande immunité au bruit. Avec Bridge et Telegram, vous pouvez envoyer et recevoir des données RS422 à distance depuis Python ou votre téléphone.

Dans ce tutoriel, vous apprendrez :

Arduino UNO Q RS422

Matériel Requis

1×Arduino UNO Q
1×USB Cable for Arduino Uno Q
1×Module convertisseur TTL vers RS422
1×Fils de connexion
1×Optionnel: Câble convertisseur RS422 vers USB
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 Module TTL vers RS422

Le MCU de l'Arduino UNO Q communique via UART en utilisant des niveaux logiques TTL (3,3V). Pour communiquer avec des appareils industriels, caméras ou contrôleurs CNC compatibles RS422 sur de longues distances, vous devez convertir le TTL vers le standard différentiel RS422. Le module TTL vers RS422 effectue cette conversion dans les deux sens.

Caractéristiques clés du RS422 :

  • Communication full-duplex (paires TX et RX séparées)
  • Longue distance : jusqu'à 1200 mètres
  • Grande immunité au bruit grâce à la signalisation différentielle
  • Point à point ou multi-drop limité (jusqu'à 10 récepteurs par pilote)
Brochage du Module RS422

Brochage

  • Interface TTL (connecte à l'Arduino UNO Q MCU) :
    • VCC : Alimentation — connecter à 3,3V
    • GND : Masse
    • RXD : Entrée de données — connecter à la broche TX du MCU (D6)
    • TXD : Sortie de données — connecter à la broche RX du MCU (D7)
  • Interface RS422 :
    • A (R+) : RX+ — connecter au TX+ distant (broche T+/Y)
    • B (R-) : RX− — connecter au TX- distant (broche T-/Z)
    • Y (T+) : TX+ — connecter au RX+ distant (broche R+/A)
    • Z (T-) : TX− — connecter au RX- distant (broche R-/B)

Schéma de Câblage

Schéma de Câblage Arduino UNO Q Module TTL vers RS422

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

Broche Module TTL-vers-RS422 Broche MCU Arduino UNO Q Remarque
VCC 3,3V
GND GND
RXD D6 (MCU TX)
TXD D7 (MCU RX)

Connectez A/B (R+/R-) et Y/Z (T+/T-) aux broches correspondantes de votre appareil RS422 ou d'un adaptateur USB vers RS422 pour les tests sur PC.

Comment Programmer pour RS422

  • Inclure SoftwareSerial et créer un objet série RS422 :
#include <SoftwareSerial.h> SoftwareSerial rs422(7, 6); // RX: D7, TX: D6
  • Lire les données RS422 entrantes :
if (rs422.available()) { char data = rs422.read(); }
  • Envoyer des données via RS422 :
rs422.print("Hello from Arduino UNO Q"); rs422.println("With newline");

Code Arduino UNO Q

/* * 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-rs422 */ #include <SoftwareSerial.h> SoftwareSerial rs422(7, 6); // RX: D7, TX: D6 void setup() { Monitor.begin(9600); // USB serial for debug output rs422.begin(9600); // RS422 module serial delay(100); } void loop() { // Forward data from RS422 to Monitor if (rs422.available()) { char data = rs422.read(); Monitor.print(data); rs422.print(data); // echo back to sender } // Forward data from Monitor to RS422 if (Monitor.available()) { char data = Monitor.read(); rs422.print(data); } }

É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 module TTL vers RS422 sur le MCU de l'Arduino UNO Q 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 : RS422
  • 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

Test

Pour tester la communication RS422 :

  • Connectez les broches T+/T- et R+/R- à un adaptateur USB vers RS422 :
Communication RS422 de l'Arduino UNO Q vers PC
  • Ouvrez un terminal série (tel que Tera Term ou PuTTY) sur votre PC.
  • Réglez le débit en bauds sur 9600, sélectionnez le bon port COM.
  • Tapez n'importe quel texte et envoyez-le. L'Arduino UNO Q le renverra en écho — vous devriez voir les données en écho dans le terminal.

Bridge : Linux + MCU

Cette section montre comment envoyer et recevoir des données RS422 depuis le côté Linux (Python) via Bridge :

  • Le module TTL vers RS422 est connecté au MCU via SoftwareSerial — le MCU gère toutes les entrées/sorties série
  • Le MPU ne peut pas utiliser SoftwareSerial directement — il appelle des fonctions Bridge pour envoyer/recevoir des données RS422
  • Le MPU dispose du Wi-Fi — exécutant Debian Linux complet, il peut relayer les données RS422 vers Telegram ou des services web
  • 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

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-rs422 */ #include "Arduino_RouterBridge.h" #include <SoftwareSerial.h> SoftwareSerial rs422(7, 6); // RX: D7, TX: D6 String received_data = ""; String send_rs422(String arg) { rs422.println(arg); Monitor.print("Sent via RS422: "); Monitor.println(arg); return "ok:sent"; } String get_received(String arg) { String result = received_data; received_data = ""; return result; } void setup() { Bridge.begin(); Monitor.begin(); rs422.begin(9600); delay(100); Bridge.provide_safe("send_rs422", send_rs422); Bridge.provide("get_received", get_received); Monitor.println("Arduino UNO Q RS422 Bridge ready"); } void loop() { while (rs422.available()) { char c = rs422.read(); received_data += c; } }

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-rs422 */ from arduino.app_utils import * import time def loop(): print("Sending message via RS422...") result = Bridge.call("send_rs422", "Hello from Arduino UNO Q!") print(f"Result: {result}") time.sleep(1) data = Bridge.call("get_received") if data: print(f"Received via RS422: {data}") else: print("No data received") time.sleep(2) App.run(user_loop=loop)

Étapes Rapides

  • Connecter : Câblez le module TTL vers RS422 sur l'Arduino UNO Q comme indiqué ci-dessus.
  • Ouvrir Arduino App Lab et créer une nouvelle application nommée RS422Bridge.
  • 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. Python enverra un message via RS422 et lira les données reçues en écho.
Cliquez sur le bouton Exécuter dans Arduino App Lab sur Arduino UNO Q

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 RS422 Bridge ready [2026-04-29 09:00:06] Sent via RS422: Hello from Arduino UNO Q!
DIYables_Apps
Stop
sketch.ino
1#include "Arduino_RouterBridge.h"
Serial Monitor
Python
[2026-04-29 09:00:06] Sending message via RS422... [2026-04-29 09:00:06] Result: ok:sent [2026-04-29 09:00:07] Received via RS422: Hello from Arduino UNO Q!

Telegram

Envoyez et recevez des données RS422 via Telegram — transmettez les messages d'équipements industriels de précision vers votre téléphone ou envoyez des commandes Telegram vers un appareil RS422.

Sketch MCU : Gardez 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-rs422 */ 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 RS422 Bot\n" "/send <message> - Send a message via RS422\n" "/read - Read data received from RS422") elif text.startswith("/send"): parts = text.split(" ", 1) if len(parts) < 2: send_message(chat_id, "Usage: /send <message>") else: result = Bridge.call("send_rs422", parts[1]) send_message(chat_id, f"Sent via RS422: {parts[1]}") elif text == "/read": data = Bridge.call("get_received") if data: send_message(chat_id, f"Received via RS422:\n{data}") else: send_message(chat_id, "No data received yet.") else: send_message(chat_id, "Unknown command. Send /start for help.") time.sleep(0.3) App.run(user_loop=loop)

Étapes Rapides

  • Remplacez YOUR_TELEGRAM_BOT_TOKEN par votre token de bot réel obtenu auprès de BotFather.
  • Remplacez YOUR_CHAT_ID par votre identifiant de chat Telegram.
  • Collez le code Python dans le fichier Python de votre application (gardez le même sketch MCU).
  • Cliquez sur le bouton Exécuter — envoyez /send Hello dans Telegram pour transmettre des données via RS422.

Sortie de la Console App Lab

DIYables_Apps
Stop
sketch.ino
1#include "Arduino_RouterBridge.h"
Serial Monitor
Python
[2026-04-29 09:10:05] Received: /send Hello RS422 device! [2026-04-29 09:10:09] Received: /read
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
/send Hello RS422 device!
10:15 AM ✓✓
Sent via RS422: Hello RS422 device!
10:16 AM
/read
10:17 AM ✓✓
Received via RS422: Hello RS422 device!
10:18 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 créer de nombreux projets utiles avec la communication RS422 et l'Arduino UNO Q :

  • Moniteur de machine CNC : Connectez l'Arduino UNO Q à un contrôleur CNC via RS422 ; le MCU lit les messages de position et d'état, et Python envoie des mises à jour en temps réel à Telegram lorsque l'usinage démarre, se met en pause ou se termine
  • Déclencheur de caméra haute vitesse : Utilisez RS422 pour envoyer des signaux de déclenchement précis aux caméras industrielles ; Python détermine le timing du déclenchement via Bridge et envoie la commande au MCU, qui transmet l'impulsion de déclenchement via la paire différentielle RS422
  • Réseau de capteurs longue distance : Câblez RS422 sur 500m vers une station de capteurs environnementaux distante ; le MCU lit les données de capteurs via RS422 et Python enregistre les relevés et envoie des alertes Telegram lorsque les valeurs dépassent les seuils
  • Tableau de bord d'état PLC : Connectez-vous au port de programmation RS422 d'un automate pour lire les données de diagnostic ; Python formate les données en rapport d'état et les envoie à Telegram à intervalles réguliers
  • Contrôleur de mouvement de précision : Envoyez des commandes de position depuis Telegram via Bridge au MCU, qui les transmet via RS422 à un pilote de servo — permettant le contrôle à distance full-duplex d'un actionneur de précision

Défiez-vous

Prêt à aller plus loin avec RS422 sur Arduino UNO Q ? Essayez ces défis :

  • Facile : Ajoutez une commande Telegram /ping qui envoie une chaîne fixe PING\n via RS422 et lit immédiatement la réponse avec get_received — utile pour tester si l'appareil RS422 connecté est réactif.
  • Moyen : Implémentez un journal de messages : Python stocke les 10 derniers messages RS422 reçus dans une liste Python ; une commande Telegram /history retourne tous les messages stockés sous forme de liste numérotée — vous donnant un historique récent des communications depuis votre téléphone.
  • Avancé : Créez un relais RS422 full-duplex : Python maintient une boucle qui envoie une chaîne de battement de cœur via send_rs422 toutes les 10 secondes, lit toutes les données entrantes avec get_received, et les transmet à Telegram — tout en écoutant les commandes Telegram pour envoyer des messages personnalisés, créant une passerelle RS422 vers Telegram bidirectionnelle complète.

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