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 :

ESP32 C3 Super Mini - RS422

Matériel Requis

1×ESP32 C3 Super Mini
1×Câble USB Type-A vers Type-C (pour PC USB-A)
1×Câble USB Type-C vers Type-C (pour PC USB-C)
1×Module convertisseur TTL vers RS422
1×Fils de connexion
1×Optionnel: Câble convertisseur RS422 vers USB

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

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.
Brochage du module RS-422
image source: diyables.io

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.

Schéma de câblage ESP32 C3 Super Mini TTL vers RS422

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 :
#define RS422_RX_PIN 7 // The ESP32 C3 Super Mini pin GPIO7 connected to the module's TXD (RO) pin #define RS422_TX_PIN 6 // The ESP32 C3 Super Mini pin GPIO6 connected to the module's RXD (DI) pin HardwareSerial rs422Serial(1); // use UART1
  • Initialisez le port série RS422 dans setup() :
rs422Serial.begin(9600, SERIAL_8N1, RS422_RX_PIN, RS422_TX_PIN); // RS422

※ 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 :
Serial.begin(115200); // Serial Monitor

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.
/* * Ce code ESP32 C3 Super Mini a été développé par newbiely.fr * Ce code ESP32 C3 Super Mini 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-c3/esp32-c3-super-mini-rs422 */ #define RS422_RX_PIN 7 // The ESP32 C3 SuperMini pin GPIO7 connected to the TXD (RO) pin of the TTL to RS422 module #define RS422_TX_PIN 6 // The ESP32 C3 SuperMini pin GPIO6 connected to the RXD (DI) pin of the TTL to RS422 module // The ESP32 C3 SuperMini does NOT support SoftwareSerial. // Use a second hardware UART (UART1) so that the Serial Monitor UART stays free. HardwareSerial rs422Serial(1); void setup() { // start communication with the Serial Monitor Serial.begin(115200); // Serial Monitor // start communication with the TTL to RS422 module at baud rate 9600 rs422Serial.begin(9600, SERIAL_8N1, RS422_RX_PIN, RS422_TX_PIN); // RS422 // wait a moment to allow serial ports to initialize delay(100); } void loop() { // Check if there's data available on RS422 if (rs422Serial.available()) { char data = rs422Serial.read(); // read the received character rs422Serial.print(data); // echo back to data to the sender Serial.print(data); // print the recived data to Serial Monitor } }

É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

∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
ESP32C3 Dev Module
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'ESP32C3 Dev Module' on 'COM15')
New Line
9600 baud
Hello ESP32 C3 Super Mini RS422 test 1 RS422 test 2 Temperature = 24.6 C
Ln 11, Col 1
ESP32C3 Dev Module on COM15
2

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.
Communication ESP32 C3 Super Mini RS422 vers PC
  • Installez un terminal : Procurez-vous un programme de terminal série comme Tera Term ou PuTTY.
  • 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.

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