ESP32 C3 Super Mini - RS485

Le RS485 est une norme série qui envoie des données sur de longs fils avec une forte protection contre le bruit. Avec un module TTL vers RS485 bon marché, l'ESP32 C3 Super Mini peut communiquer avec des appareils situés à des centaines de mètres. Ce tutoriel vous montre comment câbler et programmer une communication RS485 sur l'ESP32 C3 Super Mini.

Dans ce tutoriel, vous apprendrez :

ESP32 C3 Super Mini - RS485

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 RS485
1×Alternativement: MAX485 RS485 to TTL Module (NOT soldered)
1×Alternativement: MAX485 RS485 to TTL Module *(soldered)
1×Fils de connexion
1×Optionnel: Convertisseur USB vers RS485
1×Optionnel: USB to RS485 Cable

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 RS485

Un module TTL vers RS485 est une petite carte qui transforme le signal série TTL de l'ESP32 C3 Super Mini en signal RS485, et inversement.

L'ESP32 C3 Super Mini envoie des données série sur une broche TX et les reçoit sur une broche RX. Ces broches utilisent le niveau TTL, qui ne fonctionne que sur un fil court. Pour un long câble, vous devez convertir le TTL vers une norme plus robuste comme le RS232, le RS485 ou le RS422.

Caractéristiques Principales :

  • Longue distance : Fonctionne jusqu'à environ 1200 mètres avec un bon câble
  • Résistant au bruit : Utilise deux fils avec des signaux opposés, ce qui annule le bruit
  • Multi-appareils : De nombreux appareils peuvent partager la même paire de fils
  • Simple à utiliser : Code série classique, aucune bibliothèque spéciale nécessaire
  • Compatible 3,3V : La plupart des modules fonctionnent bien avec la broche 3.3V de l'ESP32 C3 Super Mini

Spécifications Techniques :

  • Puces courantes : MAX13487, MAX3485, SP3485, MAX485
  • Tension d'alimentation : 3,3V ou 5V, selon le module
  • Niveau logique : Doit être de 3,3V pour l'ESP32 C3 Super Mini
  • Type de câble : Une paire torsadée, plus un fil GND
  • Terminaison : Résistance de 120 ohms à chaque extrémité d'un long câble
  • Vitesse typique : 9600 à 115200 bauds

WARNING

L'ESP32 C3 Super Mini est une carte 3,3V. Utilisez uniquement un module TTL vers RS485 avec une logique 3,3V, ou ajoutez un convertisseur de niveau. Une sortie TXD/RO en 5V envoyée directement dans une broche GPIO peut endommager la puce. Du côté RS485, faites toujours passer A et B dans la MÊME paire torsadée du câble, reliez A à A et B à B, et placez une résistance de 120 ohms aux deux extrémités d'un long câble.

Brochage

Le module RS485 vers TTL possède deux côtés : un côté TTL pour la carte et un côté RS485 pour le long câble.

  • Broche VCC : Entrée d'alimentation, connectez-la au 3.3V de l'ESP32 C3 Super Mini
  • Broche GND : Masse (0V), partagée avec l'ESP32 C3 Super Mini
  • Broche RXD (DI) : Entrée de données du module, connectez-la à une broche TX de l'ESP32 C3 Super Mini
  • Broche TXD (RO) : Sortie de données du module, connectez-la à une broche RX de l'ESP32 C3 Super Mini
  • Broche D+ (A ou TR+) : Un fil de la paire RS485, utilisé pour la communication de données
  • Broche D- (B ou TR-) : L'autre fil de la paire RS485, utilisé pour la communication de données
  • Broche GND (côté RS485) : Facultative mais fortement recommandée, elle réduit les problèmes de bruit
  • Broche DE/RE (certains modules uniquement) : Contrôle de direction, HIGH pour envoyer et LOW pour recevoir

※ Note:

De nombreux modules, comme le type MAX13487, changent de direction automatiquement et n'ont pas de broche DE/RE. Si votre module en possède une, connectez-la à GPIO5 de l'ESP32 C3 Super Mini, mettez-la à HIGH avant d'envoyer et à LOW pour écouter.

Brochage du module RS-485
image source: diyables.io

Schéma de Câblage

Connectez le côté TTL du module à l'ESP32 C3 Super Mini, et le côté RS485 à votre long câble.

  • Remarque : Utilisez uniquement une logique 3,3V. N'envoyez jamais un signal 5V dans une broche GPIO.
  • Remarque : GPIO20 et GPIO21 forment l'UART utilisé par le Moniteur Série, laissez-les donc libres.
  • Remarque : RXD du module va vers une broche TX de la carte, et TXD va vers une broche RX. Ils se croisent.
  • Remarque : N'utilisez pas GPIO8 ni GPIO9 — ce sont des broches de configuration de démarrage (strapping).
  • Remarque : Partagez la GND entre le module et l'ESP32 C3 Super Mini, sinon rien ne fonctionnera.
Schéma de câblage ESP32 C3 Super Mini TTL vers RS485

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

Broche du Module RS485 Broche ESP32 C3 Super Mini
VCC 3.3V
GND GND
RXD (DI) GPIO6
TXD (RO) GPIO7
DE/RE (uniquement si votre module en possède une) GPIO5

Comment Programmer l'ESP32 C3 Super Mini pour utiliser le module RS485

L'ESP32 C3 Super Mini possède plus d'un UART matériel, nous en utilisons donc un second pour le RS485.

※ Note:

La bibliothèque SoftwareSerial n'existe PAS sur l'ESP32 C3 Super Mini. Utilisez plutôt la classe intégrée HardwareSerial. Elle est plus rapide, plus fiable, et n'utilise pas de temps CPU supplémentaire. GPIO20 et GPIO21 appartiennent au premier UART, dont le Moniteur Série a besoin, donc le module RS485 obtient ses propres broches.

  • Définissez les broches série RS485 :
#define RX1PIN 7 // GPIO7, to the TXD (RO) pin of the RS485 module #define TX1PIN 6 // GPIO6, to the RXD (DI) pin of the RS485 module
  • Créez un second port série matériel :
HardwareSerial rs485Serial(1);
  • Démarrez le Moniteur Série et le port RS485 :
Serial.begin(115200); // Serial Monitor, uses GPIO20/GPIO21 rs485Serial.begin(9600, SERIAL_8N1, RX1PIN, TX1PIN); // RS485, uses GPIO7 (RX) and GPIO6 (TX)

Code ESP32 C3 Super Mini - RS485

Ce sketch renvoie chaque caractère reçu du RS485 et l'affiche également sur le Moniteur Série.

Ce que fait ce code :

  • Démarre le Moniteur Série à 115200 bauds sur l'UART propre à la carte
  • Démarre un second UART matériel pour le RS485 à 9600 bauds sur GPIO7 (RX) et GPIO6 (TX)
  • Vérifie en permanence si un nouveau caractère est arrivé du RS485
  • Renvoie le même caractère à l'expéditeur RS485, ce qui constitue un simple test d'écho
  • Affiche le caractère sur le Moniteur Série pour que vous puissiez le voir sur votre PC
/* * 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-rs485 */ #define RX1PIN 7 // The ESP32 C3 SuperMini pin GPIO7 connected to the TXD pin of the RS485 module #define TX1PIN 6 // The ESP32 C3 SuperMini pin GPIO6 connected to the RXD pin of the RS485 module // use the second hardware UART of the ESP32 C3 SuperMini // UART0 (GPIO20/GPIO21) is used by the Serial Monitor, so it must stay free HardwareSerial rs485Serial(1); void setup() { // start communication with the Serial Monitor Serial.begin(115200); // Serial Monitor // start communication with the RS485 module on GPIO7 (RX) and GPIO6 (TX) rs485Serial.begin(9600, SERIAL_8N1, RX1PIN, TX1PIN); // RS485 // wait a moment to allow serial ports to initialize delay(100); } void loop() { // Check if there's data available on the RS485 serial port if (rs485Serial.available()) { char data = rs485Serial.read(); // read the received character rs485Serial.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 les composants : Suivez le schéma de câblage ci-dessus pour connecter le module RS485 à l'ESP32 C3 Super Mini.
  • Connectez la carte : Branchez l'ESP32 C3 Super Mini à votre PC avec un câble USB Type-C.
  • Ouvrez l'Arduino IDE : Lancez le logiciel Arduino IDE.
  • 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 ESP32 C3 Super Mini dans Outils > Port.
  • Téléversez le code : Copiez le code ci-dessus, collez-le dans l'Arduino IDE, puis cliquez sur le bouton Upload.
  • Ouvrez le Moniteur Série : Réglez le débit en bauds sur 115200.
  • Envoyez des données : Envoyez quelques caractères depuis l'autre appareil RS485.
  • Voyez le résultat : Regardez les caractères apparaître dans le Moniteur Série.
  • Astuce Pro : Si vous ne voyez rien, inversez les fils A et B. Une paire croisée est l'erreur RS485 la plus courante.
∞
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 from RS485 Sensor value: 24.6 Sensor value: 24.9 Sensor value: 25.1
Ln 11, Col 1
ESP32C3 Dev Module on COM15
2

Explication du Code Ligne par Ligne

Le code ESP32 C3 Super Mini ci-dessus contient une explication ligne par ligne. Veuillez lire les commentaires dans le code !

Test

Vous pouvez tester le montage en envoyant des données de votre PC vers l'ESP32 C3 Super Mini via RS-485, et inversement. Suivez ces étapes :

  • Connectez le matériel : Reliez l'ESP32 C3 Super Mini à votre PC avec un câble RS485 vers USB, comme illustré ci-dessous.
  • Installez un terminal : Procurez-vous un programme de terminal série comme Tera Term ou PuTTY.
  • Réglez les paramètres : Ouvrez le terminal et choisissez le port COM et le débit de 9600 bauds.
  • 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 dans le terminal.
  • Vérifiez le côté carte : Les mêmes caractères apparaissent aussi dans le Moniteur Série de l'Arduino IDE à 115200.
Communication ESP32 C3 Super Mini RS485 vers PC

※ Note:

La liaison RS485 fonctionne à 9600 bauds et le Moniteur Série à 115200 bauds. Les deux valeurs sont différentes volontairement, et c'est normal. Assurez-vous simplement que les deux extrémités du câble RS485 utilisent la même vitesse.

Idées d'Applications/Projets

Voici des façons simples d'utiliser le RS485 avec l'ESP32 C3 Super Mini.

  • Capteur Longue Distance : Lisez un capteur de température placé à 500 mètres.
  • Maître Modbus RTU : Communiquez avec des compteurs industriels et des variateurs de moteur qui parlent Modbus.
  • Réseau Multi-Cartes : Connectez de nombreuses cartes ESP32 C3 Super Mini sur une seule paire de fils.
  • Surveillance Agricole : Envoyez les données du sol et de la météo depuis un champ jusqu'à la maison.
  • Contrôle d'Accès : Lisez des lecteurs RFID répartis dans un grand bâtiment.
  • Enregistreur d'Onduleur Solaire : Récupérez les données d'énergie d'un onduleur et publiez-les en ligne.

Relevez le Défi

Essayez ces idées pour aller plus loin avec le RS485 sur l'ESP32 C3 Super Mini.

  • Facile : Faites clignoter la LED intégrée sur GPIO8 chaque fois qu'un caractère arrive.
  • Facile : Changez la vitesse RS485 de 9600 à 19200 aux deux extrémités.
  • Moyen : Lisez une ligne entière avec rs485Serial.readStringUntil() au lieu d'un seul caractère.
  • Moyen : Ajoutez une broche DE/RE sur GPIO5 et changez la direction dans votre propre code.
  • Avancé : Donnez une adresse à chaque carte, afin que seule la bonne carte réponde.
  • Avancé : Envoyez les données RS485 vers une page web via Wi-Fi.

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