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.

Ce que vous allez construire :
- Une connexion câblée entre l'ESP32 S3 et un module TTL vers RS485.
- Un code ESP32 S3 qui initialise l'interface série RS485.
- 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.
- Une liaison de communication RS485 fonctionnelle adaptée aux applications série industrielles ou longue distance.
Matériel nécessaire
Ou vous pouvez acheter les kits suivants:
| 1 | × | Kit de Démarrage DIYables ESP32 S3 (ESP32 S3 inclus) | |
| 1 | × | Kit de Capteurs DIYables (18 capteurs/écrans) |
À 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) :
- Broche VCC : cette broche d'alimentation doit être connectée à VCC (5V ou 3,3V).
- Broche GND : cette broche d'alimentation doit être connectée à GND (0V).
- Broche RXD : cette broche de données doit être connectée à une broche TX de l'ESP32 S3.
- Broche TXD : cette broche de données doit être connectée à une broche RX de l'ESP32 S3.
- Broche D+ (A ou TR+) : cette broche facilite la communication de données.
- Broche D- (B ou TR-) : cette broche est utilisée pour la transmission de données.
- Broche GND : bien que facultative, inclure cette broche est fortement recommandé pour atténuer les interférences de bruit et garantir des performances optimales.

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) |

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 :
- Pour lire les données provenant du RS485, vous pouvez utiliser les fonctions suivantes :
- Pour écrire des données vers le RS485, vous pouvez utiliser les fonctions suivantes :
- Et davantage de fonctions à utiliser avec le RS485 dans la référence Serial
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.
Étapes rapides
Suivez ces étapes pour configurer et tester la communication RS485 avec votre ESP32 S3 :
- Nouveau sur l'ESP32 S3 ? Suivez d'abord notre guide ESP32 S3 - Premiers pas.
- Câblez le module TTL vers RS485 à l'ESP32 S3 en suivant le schéma de câblage ci-dessus.
- Connectez l'ESP32 S3 à votre PC via le câble USB Type-C.
- Ouvrez l'Arduino IDE et collez le code ESP32 S3 présenté ci-dessus.
- Sélectionnez la bonne carte et le bon port COM dans le menu Tools de l'Arduino IDE.
- Cliquez sur Upload pour flasher le code sur l'ESP32 S3.
- Connectez les lignes D+/D- du RS485 à un convertisseur USB-vers-RS485 branché à votre PC.
- 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.
- 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 :
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 :

- 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.
- 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.
- 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.
- Réseaux multi-appareils : mettez en œuvre un bus RS485 multipoint avec jusqu'à 32 appareils, chacun adressé individuellement par le maître ESP32 S3.
- 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.
- 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.
- 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.
- 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.
- 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.