ESP32 S3 RS485

Le RS485 (aussi connu sous le nom de RS-485) est une norme de communication série largement utilisée, conçue pour la transmission de données longue distance et résistante au bruit dans les systèmes industriels et embarqués. Dans ce tutoriel, vous apprendrez à utiliser la communication RS485 avec l'ESP32 S3 en le connectant à un module TTL vers RS485 et en le programmant pour envoyer et recevoir des données.

ESP32 S3 RS485

Ce que vous allez construire :

  1. Une connexion câblée entre l'ESP32 S3 et un module TTL vers RS485.
  2. Un code ESP32 S3 qui initialise l'interface série RS485.
  3. Une configuration de test qui envoie des données de votre PC vers l'ESP32 S3 via RS485, et reçoit l'écho en retour.
  4. Une liaison de communication RS485 fonctionnelle adaptée aux applications série industrielles ou longue distance.

À propos du module TTL vers RS485

Lors de l'utilisation de la communication série sur l'ESP32 S3 avec des fonctions telles que Serial.print(), Serial.read(), et Serial.write(), la transmission de données se fait via la broche TX tandis que la réception se fait via la broche RX. Ces broches fonctionnent en niveau TTL, ce qui signifie qu'elles gèrent des signaux avec une plage de tension limitée, ce qui les rend inadaptées à la communication longue distance sans conversion. Pour envoyer des données sur de longues distances, il est nécessaire de convertir le signal TTL vers une norme robuste telle que le RS485, qui prend en charge des longueurs de câble jusqu'à 1200 mètres et des topologies de bus multi-appareils.

Dans ce tutoriel, vous utiliserez un module TTL vers RS485 qui gère automatiquement la conversion de signal dans les deux sens, permettant à l'ESP32 S3 de communiquer sur un bus RS485 sans complexité matérielle supplémentaire.

Spécifications clés

  • Interface : TTL (compatible 3,3V/5V) d'un côté, paire différentielle RS485 de l'autre
  • Longueur de câble maximale : jusqu'à 1200 mètres
  • Débit maximal : jusqu'à 10 Mbps (selon le module)
  • Appareils sur le bus : prend en charge jusqu'à 32 nœuds sur un seul bus RS485
  • Circuits intégrés courants : MAX13487, MAX3485, SP3485

Brochage

Le module RS485 vers TTL comporte deux interfaces :

  • Interface TTL (connectée à l'ESP32 S3) :
    1. Broche VCC : cette broche d'alimentation doit être connectée à VCC (5V ou 3,3V).
    2. Broche GND : cette broche d'alimentation doit être connectée à GND (0V).
    3. Broche RXD : cette broche de données doit être connectée à une broche TX de l'ESP32 S3.
    4. Broche TXD : cette broche de données doit être connectée à une broche RX de l'ESP32 S3.
  • Interface RS485 :
    1. Broche D+ (A ou TR+) : cette broche facilite la communication de données.
    2. Broche D- (B ou TR-) : cette broche est utilisée pour la transmission de données.
    3. Broche GND : bien que facultative, inclure cette broche est fortement recommandé pour atténuer les interférences de bruit et garantir des performances optimales.
    RS-485 module Pinout
    image source: diyables.io

    Schéma de câblage

    Connectez le module TTL vers RS485 à votre ESP32 S3 comme indiqué dans le schéma ci-dessous. Utilisez des fils de connexion courts et fiables pour le côté TTL et un câble à paire torsadée pour la paire différentielle RS485 afin de minimiser le bruit.

    Consignes de sécurité

    Gardez la paire différentielle RS485 (D+/D-) éloignée des lignes d'alimentation et des signaux haute fréquence. Connectez toujours le GND du RS485 entre les appareils pour fournir une référence commune et réduire le bruit en mode commun. Ne dépassez pas la tension VCC nominale du module.

    Module TTL vers RS485 ESP32 S3
    VCC 3.3V
    GND GND
    RXD TX2 (GPIO17)
    TXD RX2 (GPIO18)
    ESP32 S3 TTL to RS485 Wiring Diagram

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

    Comment programmer l'ESP32 S3 pour utiliser le module RS485

    Programmer l'ESP32 S3 pour communiquer via RS485 est simple, car le module TTL vers RS485 gère toute la conversion de signal de manière transparente. Vous initialisez simplement le port série matériel sur l'ESP32 S3, puis utilisez les fonctions Serial standard pour envoyer et recevoir des données, exactement comme pour toute communication basée sur UART.

    Le code suivant montre comment initialiser l'interface série pour la communication RS485 :

    • Initialise l'interface Serial :
    Serial2.begin(9600);

    Code ESP32 S3

    Le code suivant présente un exemple complet d'écho RS485 pour l'ESP32 S3. Toute donnée reçue sur le bus RS485 est immédiatement renvoyée en écho, ce qui facilite le test de la communication bidirectionnelle depuis un terminal PC.

    /* * Ce code ESP32 S3 a été développé par newbiely.fr * Ce code ESP32 S3 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/esp32-s3/esp32-s3-rs485 */ /* * This ESP32-S3 code is created by esp32io.com * * This ESP32-S3 code is released in the public domain * * For more detail (instruction and wiring diagram), visit https://esp32io.com/tutorials/esp32-s3-rs485 */ void setup() { // start communication with baud rate 9600 Serial.begin(9600); // Serial Monitor Serial2.begin(9600, SERIAL_8N1, 18, 17); // RS485 // wait a moment to allow serial ports to initialize delay(100); } void loop() { // Check if there's data available on Serial if (Serial2.available()) { char data = Serial2.read(); // read the received character Serial.print(data); // print the recived data to Serial Monitor } }

    Étapes rapides

    Suivez ces étapes pour configurer et tester la communication RS485 avec votre ESP32 S3 :

    1. Nouveau sur l'ESP32 S3 ? Suivez d'abord notre guide ESP32 S3 - Premiers pas.
    2. Câblez le module TTL vers RS485 à l'ESP32 S3 en suivant le schéma de câblage ci-dessus.
    3. Connectez l'ESP32 S3 à votre PC via le câble USB Type-C.
    4. Ouvrez l'Arduino IDE et collez le code ESP32 S3 présenté ci-dessus.
    5. Sélectionnez la bonne carte et le bon port COM dans le menu Tools de l'Arduino IDE.
    6. Cliquez sur Upload pour flasher le code sur l'ESP32 S3.
    7. Connectez les lignes D+/D- du RS485 à un convertisseur USB-vers-RS485 branché à votre PC.
    8. Ouvrez un programme de terminal série tel que Tera Term ou PuTTY sur le port COM du RS485 avec des réglages de débit correspondants.
    9. Tapez du texte dans le terminal et appuyez sur Entrée - si tout est correctement câblé, vous verrez les données en écho renvoyées par l'ESP32 S3.
    10. Astuce : utilisez un câble à paire torsadée pour les lignes D+/D- du RS485 et ajoutez une résistance de terminaison de 120 ohms à chaque extrémité du bus pour éviter les réflexions de signal à des débits plus élevés ou sur de plus longues longueurs de câble.

    Serial Monitor

    Ouvrez le Serial Monitor de l'Arduino IDE (réglé sur 9600 bauds) pour observer l'activité côté ESP32 S3. Vous devriez voir une sortie similaire à ce qui suit :

    ∞
    Newbiely | Arduino IDE 2.3.8
    ──
    ☐
    ✕
    File
    Edit
    Sketch
    Tools
    Help
    ESP32S3 Dev Module
    Newbiely.ino
    ···
    8 Serial.println("Hello World!");
    Output
    Serial Monitor
    Message (Enter to send message to 'ESP32S3 Dev Module' on 'COM15')
    New Line
    9600 baud
    [2026-01-15 09:12:04] RS485 ready. Waiting for data... [2026-01-15 09:12:11] Received: Hello ESP32 S3 [2026-01-15 09:12:11] Echo sent: Hello ESP32 S3 [2026-01-15 09:12:19] Received: RS485 test 123 [2026-01-15 09:12:19] Echo sent: RS485 test 123
    Ln 11, Col 1
    ESP32S3 Dev Module on COM15
    2

    Test

    Vous pouvez effectuer un test complet de bout en bout en envoyant des données de votre PC vers l'ESP32 S3 via RS485 et en observant la réponse en écho. Connectez l'ESP32 S3 à votre PC via un câble USB-vers-RS485 comme indiqué ci-dessous, configurez votre terminal série pour correspondre au débit du code, et tapez des données dans le terminal.

    • Connectez la sortie RS485 de l'ESP32 S3 à votre PC via un câble RS485-vers-USB comme ci-dessous :
    ESP32 S3 RS485 to PC communication
    • Installez un programme de terminal série comme Tera Term ou PuTTY
    • Ouvrez le programme de terminal série et configurez les paramètres série (port COM, débit...)
    • Tapez des données depuis le terminal série pour les envoyer à l'ESP32 S3.
    • Si cela réussit, vous verrez les données en écho sur le terminal série.

    Applications

    Le RS485 est une norme de communication polyvalente bien adaptée à un large éventail de cas d'usage professionnels et industriels où la fiabilité et la longueur de câble comptent.

    1. Automatisation industrielle : connectez l'ESP32 S3 à des automates, capteurs et actionneurs sur un bus RS485 d'usine pour l'acquisition de données et le contrôle.
    2. Systèmes de gestion de bâtiment : utilisez l'ESP32 S3 comme nœud RS485 pour s'interfacer avec des contrôleurs CVC, des systèmes d'éclairage et des compteurs d'énergie.
    3. Réseaux multi-appareils : mettez en œuvre un bus RS485 multipoint avec jusqu'à 32 appareils, chacun adressé individuellement par le maître ESP32 S3.
    4. Liaisons série longue distance : remplacez les connexions USB ou TTL à courte portée par le RS485 pour une communication fiable sur des distances allant jusqu'à 1200 mètres.
    5. Protocole Modbus RTU : utilisez l'ESP32 S3 avec un module RS485 comme maître ou esclave Modbus RTU pour communiquer avec des instruments industriels.

    Vidéo

    Regardez le tutoriel vidéo étape par étape pour ce projet ESP32 S3 ci-dessous.

    Défis

    Ces défis vous aideront à approfondir votre compréhension de la communication RS485 avec l'ESP32 S3 et à explorer des cas d'usage plus avancés.

    1. Débutant : modifiez le code pour ajouter un préfixe d'horodatage à chaque message en écho, afin de suivre le moment où les données ont été reçues.
    2. Intermédiaire : mettez en œuvre un simple analyseur de trame Modbus RTU sur l'ESP32 S3 qui lit une requête de registre de maintien et renvoie une réponse valide via RS485.
    3. Avancé : construisez un réseau RS485 multi-nœuds avec deux cartes ESP32 S3 ou plus, chacune avec une adresse unique, et mettez en œuvre un protocole maître-esclave où le maître interroge chaque esclave à tour de rôle.

    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 !