Arduino UNO Q - RS232

Utilisez la communication série RS232 avec l'Arduino UNO Q et un module TTL vers RS232. Le MCU communique via SoftwareSerial, le module convertit les signaux TTL en niveaux de tension RS232 pour une communication série longue distance. Avec Bridge et Telegram, vous pouvez envoyer et recevoir des données RS232 à distance depuis Python ou votre téléphone.

Dans ce tutoriel, vous apprendrez :

Arduino UNO Q RS232

Matériel Requis

1×Arduino UNO Q
1×USB Cable for Arduino Uno Q
1×Module convertisseur TTL vers RS232
1×Fils de connexion
1×Optionnel: USB to RS232 Cable
1×Optionnel: USB to RS232 Converter
1×Optionnel: RS232 Gender Changer
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 RS232

Le MCU de l'Arduino UNO Q communique via UART en utilisant des niveaux logiques TTL (3,3V). Les signaux TTL ne peuvent parcourir que de courtes distances. Pour communiquer sur de plus longues distances avec des appareils compatibles RS232 (automates, anciens ordinateurs, équipements industriels), vous devez convertir le signal TTL en niveaux de tension RS232 (généralement ±12V). Le module TTL vers RS232 effectue cette conversion dans les deux sens.

Brochage du Module RS232

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 RS232 : Connecteur femelle DB9 D-Sub — connecter à votre appareil RS232

Schéma de Câblage

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

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

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

Connectez le connecteur DB9 à votre appareil RS232 ou à un câble RS232 vers USB.

Comment Programmer pour RS232

  • Inclure SoftwareSerial et créer un objet série RS232 :
#include <SoftwareSerial.h> SoftwareSerial rs232(7, 6); // RX: D7, TX: D6
  • Lire les données RS232 entrantes :
if (rs232.available()) { char data = rs232.read(); }
  • Envoyer des données via RS232 :
rs232.print("Hello from Arduino UNO Q"); rs232.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-rs232 */ #include <SoftwareSerial.h> SoftwareSerial rs232(7, 6); // RX: D7, TX: D6 void setup() { Monitor.begin(9600); // USB serial for debug output rs232.begin(9600); // RS232 module serial delay(100); } void loop() { // Forward data from RS232 to Monitor if (rs232.available()) { char data = rs232.read(); Monitor.print(data); rs232.print(data); // echo back to sender } // Forward data from Monitor to RS232 if (Monitor.available()) { char data = Monitor.read(); rs232.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 RS232 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 : RS232
  • 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 RS232 :

  • Connectez le port DB9 du module à votre PC via un câble RS232 vers USB :
Communication RS232 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 RS232 depuis le côté Linux (Python) via Bridge :

  • Le module TTL vers RS232 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 RS232
  • Le MPU dispose du Wi-Fi — exécutant Debian Linux complet, il peut relayer les données RS232 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-rs232 */ #include "Arduino_RouterBridge.h" #include <SoftwareSerial.h> SoftwareSerial rs232(7, 6); // RX: D7, TX: D6 String received_data = ""; String send_rs232(String arg) { rs232.println(arg); Monitor.print("Sent via RS232: "); 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(); rs232.begin(9600); delay(100); Bridge.provide_safe("send_rs232", send_rs232); Bridge.provide("get_received", get_received); Monitor.println("Arduino UNO Q RS232 Bridge ready"); } void loop() { // Accumulate incoming RS232 data between Bridge calls while (rs232.available()) { char c = rs232.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-rs232 */ from arduino.app_utils import * import time def loop(): print("Sending message via RS232...") result = Bridge.call("send_rs232", "Hello from Arduino UNO Q!") print(f"Result: {result}") time.sleep(1) data = Bridge.call("get_received") if data: print(f"Received via RS232: {data}") else: print("No data received") time.sleep(2) App.run(user_loop=loop)

Étapes Rapides

  • Connecter : Câblez le module TTL vers RS232 sur l'Arduino UNO Q comme indiqué ci-dessus.
  • Ouvrir Arduino App Lab et créer une nouvelle application nommée RS232Bridge.
  • 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 RS232 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 RS232 Bridge ready [2026-04-29 09:00:06] Sent via RS232: 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 RS232... [2026-04-29 09:00:06] Result: ok:sent [2026-04-29 09:00:07] Received via RS232: Hello from Arduino UNO Q!

Telegram

Envoyez et recevez des données RS232 via Telegram — transmettez les messages d'appareils industriels vers votre téléphone ou envoyez des commandes Telegram vers un appareil RS232.

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-rs232 */ 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 RS232 Bot\n" "/send <message> - Send a message via RS232\n" "/read - Read data received from RS232") elif text.startswith("/send"): parts = text.split(" ", 1) if len(parts) < 2: send_message(chat_id, "Usage: /send <message>") else: result = Bridge.call("send_rs232", parts[1]) send_message(chat_id, f"Sent via RS232: {parts[1]}") elif text == "/read": data = Bridge.call("get_received") if data: send_message(chat_id, f"Received via RS232:\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 RS232.

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 RS232 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 RS232 device!
10:15 AM ✓✓
Sent via RS232: Hello RS232 device!
10:16 AM
/read
10:17 AM ✓✓
Received via RS232: Hello RS232 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 RS232 et l'Arduino UNO Q :

  • Passerelle PLC industrielle : Connectez l'Arduino UNO Q à un automate ou contrôleur industriel via RS232 ; Python transmet les messages d'état reçus à Telegram pour que vous puissiez surveiller les équipements d'usine depuis votre téléphone
  • Intégration de lecteur de codes-barres : Connectez un lecteur de codes-barres RS232 au module TTL vers RS232 ; lorsqu'un code-barres est scanné, le MCU lit les données via SoftwareSerial et Python les envoie à Telegram pour journalisation
  • Contrôle d'imprimante série héritée : Envoyez des commandes d'impression depuis Telegram via Bridge au MCU, qui les transmet via RS232 à une imprimante série ou terminal d'affichage hérité — faisant le pont entre le contrôle sans fil moderne et le matériel série plus ancien
  • GPS avec sortie RS232 : Connectez un récepteur GPS avec sortie RS232 au module ; le MCU lit les phrases NMEA, Python analyse les données, et Telegram envoie des mises à jour de localisation à la demande
  • Diagnostics série à distance : Transmettez la sortie de débogage RS232 d'un appareil embarqué vers Telegram via Bridge — utile pour surveiller des appareils distants sans avoir besoin d'accès physique à un terminal série

Défiez-vous

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

  • Facile : Modifiez le sketch MCU pour accumuler les octets reçus jusqu'à ce qu'un caractère de saut de ligne soit détecté, puis exposez la ligne complète comme une seule chaîne via get_received — évitant les lectures partielles lorsque les données arrivent par fragments.
  • Moyen : Créez un relais bidirectionnel : Python lit la température depuis une fonction Bridge de capteur et formate une chaîne d'état, l'envoie via send_rs232 toutes les 30 secondes, et lit simultanément les réponses RS232 avec get_received — les transmettant comme notifications Telegram.
  • Avancé : Implémentez une file de messages : Python maintient une liste de messages RS232 sortants, les envoie un par seconde via send_rs232, et collecte toutes les réponses avec get_received ; après chaque lot, il envoie un résumé Telegram montrant combien de messages ont été envoyés et quelles réponses ont été reçues.

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