ESP32 C3 Super Mini - RS422
L'ESP32 C3 Super Mini est une minuscule carte 3,3V qui peut communiquer sur de longs câbles lorsque vous ajoutez un module TTL vers RS422. Le RS422 est une norme série robuste utilisée dans les usines, les bateaux et les systèmes de bâtiment. Ce tutoriel vous montre comment le câbler et comment envoyer et recevoir des données avec un code simple.
Dans ce tutoriel, vous apprendrez :
- Ce qu'est un module TTL vers RS422 et le rôle de chaque broche.
- Comment connecter l'ESP32 C3 Super Mini au module TTL vers RS422.
- Comment programmer l'ESP32 C3 Super Mini pour recevoir des données depuis le bus RS422.
- Comment programmer l'ESP32 C3 Super Mini pour envoyer des données vers le bus RS422.
- Comment échanger des données entre votre PC et l'ESP32 C3 Super Mini via RS422 dans les deux sens.

Matériel Requis
Ou vous pouvez acheter les kits suivants:
| 1 | × | Kit de Capteurs DIYables (18 capteurs/écrans) |
À Propos du Module TTL vers RS422
Un module TTL vers RS422 est un petit convertisseur qui transforme les signaux série TTL de l'ESP32 C3 Super Mini en signaux RS422, et inversement.
Pourquoi vous en avez besoin :
- Les broches TX et RX de l'ESP32 C3 Super Mini utilisent des signaux de niveau TTL (3,3V).
- Les signaux TTL ne parcourent qu'une courte distance, environ 1 mètre sur un fil de breadboard.
- Le RS422 utilise deux paires de fils avec des tensions opposées, ce qui annule le bruit.
- Cela permet à vos données de voyager beaucoup plus loin, avec bien moins d'erreurs.
Caractéristiques Principales :
- Full duplex : Le RS422 envoie et reçoit en même temps, sur deux paires séparées.
- Longue distance : Jusqu'à environ 1200 m (4000 ft) à un faible débit en bauds.
- Résistant au bruit : La signalisation différentielle ignore le bruit électrique des moteurs et des relais.
- Réception multipoint : Un émetteur peut alimenter jusqu'à 10 récepteurs.
- Aucun pilote nécessaire : Le module convertit les signaux de manière matérielle, sans logiciel supplémentaire.
Spécifications Techniques :
- Tension côté TTL : 3,3V ou 5V. Utilisez 3,3V pour l'ESP32 C3 Super Mini.
- Type de signal : Différentiel, deux paires. Une paire envoie, une paire reçoit.
- Puces typiques : MAX13487, MAX3422 et émetteurs-récepteurs RS422 similaires.
- Longueur de câble max : Environ 1200 m à un faible débit en bauds, moins à haute vitesse.
- Débits en bauds courants : 9600, 19200, 38400, 57600, 115200.
Brochage
Le module RS422 vers TTL possède deux côtés : un côté TTL tourné vers votre carte, et un côté RS422 tourné vers le long câble.
Interface TTL (connectée à l'ESP32 C3 Super Mini) :
- VCC : Broche d'alimentation. Connectez-la au 3.3V de l'ESP32 C3 Super Mini.
- GND : Broche de masse (0V). Connectez-la à GND.
- RXD (DI) : Entrée de données. Connectez-la à une broche TX de l'ESP32 C3 Super Mini.
- TXD (RO) : Sortie de données. Connectez-la à une broche RX de l'ESP32 C3 Super Mini.
Interface RS422 (le côté du long câble) :
- A (R+) : La broche RX+ du module. Connectez-la à la broche TX+ (broche T+ ou Y) de l'autre appareil RS422.
- B (R-) : La broche RX- du module. Connectez-la à la broche TX- (broche T- ou Z) de l'autre appareil RS422.
- Y (T+) : La broche TX+ du module. Connectez-la à la broche RX+ (broche R+ ou A) de l'autre appareil RS422.
- Z (T-) : La broche TX- du module. Connectez-la à la broche RX- (broche R- ou B) de l'autre appareil RS422.

Schéma de Câblage
Connectez le côté TTL du module à l'ESP32 C3 Super Mini, puis connectez le côté RS422 à l'autre appareil avec un câble à paires torsadées.
- Remarque : GPIO20 et GPIO21 forment l'UART du Moniteur Série. Laissez-les libres, sinon vous perdez vos messages de débogage.
- Remarque : Nous utilisons à la place un second port série matériel sur GPIO6 et GPIO7.
- Remarque : TX va toujours vers RX, et RX va toujours vers TX. Les inverser est l'erreur la plus courante.
- Remarque : L'ESP32 C3 Super Mini et le module doivent partager une GND commune.
| Broche du Module TTL vers RS422 | Broche ESP32 C3 Super Mini |
|---|---|
| VCC | 3.3V |
| GND | GND |
| RXD (DI) | GPIO6 |
| TXD (RO) | GPIO7 |
WARNING
L'ESP32 C3 Super Mini est une carte 3,3V. Ses broches GPIO ne tolèrent PAS le 5V. Alimentez le module depuis la broche 3.3V, et n'envoyez jamais un signal TTL 5V dans GPIO6 ou GPIO7. Cela peut endommager la puce. Si votre module ne fonctionne qu'en 5V, placez un convertisseur de niveau logique sur la ligne TXD.
Du côté RS422, vous devez respecter les paires. Le RS422 est full duplex, il utilise donc DEUX paires torsadées : une paire pour Y/Z (TX+ et TX-), et une paire pour A/B (RX+ et RX-). Y et Z doivent partager une même paire torsadée. A et B doivent partager l'autre paire torsadée. Mélanger des fils de paires différentes supprime la réjection du bruit. Sur un long câble, ajoutez une résistance de terminaison de 120 ohms aux bornes de chaque paire, uniquement à l'extrémité RÉCEPTRICE de cette paire. Placer des résistances aux deux extrémités, ou sur la mauvaise paire, affaiblit le signal.

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.
Comment Programmer l'ESP32 C3 Super Mini pour utiliser le module RS422
L'ESP32 C3 Super Mini n'a pas de bibliothèque SoftwareSerial, nous utilisons donc à la place un second UART matériel.
- Créez un port série matériel et définissez les deux broches :
- Initialisez le port série RS422 dans setup() :
※ Note:
Utilisez HardwareSerial, pas SoftwareSerial. La bibliothèque SoftwareSerial n'existe pas sur l'ESP32 C3 Super Mini, donc un sketch copié d'une carte AVR ne compilera pas. La bonne nouvelle : l'ESP32 C3 peut associer un véritable UART matériel à presque n'importe quelle GPIO libre, ce qui est plus rapide et plus fiable qu'un port série logiciel.
- Gardez le Moniteur Série sur son propre port à 115200 bauds :
- Le débit en bauds RS422 (9600 ici) doit correspondre exactement à celui de l'autre appareil RS422.
- Pour lire les données provenant du RS422, vous pouvez utiliser les fonctions suivantes :
- Pour écrire des données vers le RS422, vous pouvez utiliser les fonctions suivantes :
- Et d'autres fonctions à utiliser avec le RS422 dans la référence Serial
Code ESP32 C3 Super Mini
Ce sketch renvoie à l'expéditeur chaque caractère qui arrive du RS422, et l'affiche également sur le Moniteur Série.
Ce que fait ce code :
- Démarre le Moniteur Série à 115200 bauds pour le débogage.
- Démarre un second UART matériel à 9600 bauds sur GPIO7 (RX) et GPIO6 (TX) pour le RS422.
- Vérifie si des données RS422 sont arrivées.
- Renvoie chaque caractère à l'expéditeur RS422.
- Affiche le même caractère sur le Moniteur Série pour que vous puissiez le voir.
Étapes Rapides
- Nouveau sur l'ESP32 C3 Super Mini ? Complétez d'abord notre tutoriel ESP32 C3 Super Mini - Premiers pas pour configurer votre environnement de développement.
- Câblez le module : Suivez le tableau de câblage ci-dessus. Vérifiez que RXD va vers GPIO6 et TXD vers GPIO7.
- Vérifiez l'alimentation : Utilisez la broche 3.3V, pas le 5V.
- Connectez la carte : Branchez l'ESP32 C3 Super Mini à votre PC avec un câble USB Type-C.
- Ouvrez l'IDE : Lancez l'Arduino IDE sur votre ordinateur.
- Sélectionnez la carte : Assurez-vous que ESP32 C3 Super Mini est sélectionnée dans Outils > Type de carte.
- Sélectionnez le port : Choisissez le port COM de votre carte dans Outils > Port.
- Téléversez le code : Copiez le code ci-dessus dans l'éditeur et cliquez sur Upload.
- Ouvrez le Moniteur Série : Réglez le débit en bauds sur 115200.
- Envoyez des données : Envoyez des caractères depuis l'autre appareil RS422 et regardez-les apparaître.
- Astuce Pro : Si vous ne voyez rien, inversez d'abord les fils A/B, puis les fils Y/Z. Une paire différentielle inversée est la deuxième erreur RS422 la plus courante.
Sortie du Moniteur Série
Test
Vous pouvez tester la liaison en envoyant des données de votre PC vers l'ESP32 C3 Super Mini via RS-422, et inversement.
- Connectez le câble : Reliez l'ESP32 C3 Super Mini à votre PC avec un câble RS422 vers USB, comme illustré ci-dessous.

- Réglez les paramètres : Ouvrez le terminal, puis choisissez le port COM et 9600 bauds, 8 bits de données, sans parité, 1 bit d'arrêt.
- Tapez des données : Envoyez quelques caractères depuis le terminal vers l'ESP32 C3 Super Mini.
- Vérifiez l'écho : Si cela fonctionne, les mêmes caractères reviennent directement dans le terminal.
- Vérifiez le moniteur : Les mêmes caractères apparaissent aussi dans le Moniteur Série Arduino à 115200 bauds.
※ Note:
Votre câble RS422 vers USB obtient son propre port COM, distinct du port USB de l'ESP32 C3 Super Mini. Vous pouvez ouvrir les deux en même temps : un terminal sur le port RS422 à 9600, et le Moniteur Série Arduino sur le port de la carte à 115200.
Applications et Idées de Projets
Le RS422 avec l'ESP32 C3 Super Mini est idéal lorsque votre câble est long ou que l'environnement est électriquement bruyant.
- Nœud de capteur distant : Lisez un capteur situé à 100 m et renvoyez les valeurs via RS422.
- Liaison avec machine d'usine : Communiquez avec un contrôleur industriel ou un variateur de moteur qui ne propose que le RS422.
- Panneau de bateau ou de camping-car : Transportez des données entre un écran de barre et un boîtier de capteurs moteur.
- Surveillance de serre : Connectez plusieurs stations de température et d'humidité éloignées à un seul concentrateur.
- Automatisation du bâtiment : Reliez des contrôleurs de portes, d'éclairage et de CVC sur différents étages.
- Lecteur de balance ou d'imprimante : Lisez une balance d'établi ou une imprimante d'étiquettes qui utilise un port RS422.
Relevez le Défi
Essayez ces petites améliorations pour vous familiariser davantage avec le RS422 sur l'ESP32 C3 Super Mini.
- Facile : Changez le débit en bauds RS422 à 19200 aux deux extrémités et vérifiez que cela fonctionne toujours.
- Facile : Affichez un court message sur le Moniteur Série chaque fois qu'une ligne complète arrive.
- Moyen : Récupérez une ligne entière avec readStringUntil() et renvoyez-la en majuscules.
- Moyen : Envoyez une mesure de température via RS422 toutes les 2 secondes, sous la forme TEMP:24.6.
- Avancé : Créez un petit protocole de commandes pour que LED:ON et LED:OFF via RS422 allument ou éteignent la LED intégrée sur GPIO8.
- Avancé : Ajoutez un octet de somme de contrôle à chaque message et ignorez tout message dont la somme de contrôle est incorrecte.