ESP32 C3 Super Mini - RS422
Der ESP32 C3 Super Mini ist ein winziges 3,3V-Board, das über lange Kabel kommunizieren kann, wenn Sie ein TTL-zu-RS422-Modul hinzufügen. RS422 ist ein robuster serieller Standard, der in Fabriken, auf Booten und in der Gebäudetechnik verwendet wird. Dieses Tutorial zeigt Ihnen, wie Sie es verdrahten und wie Sie mit einfachem Code Daten senden und empfangen.
In diesem Tutorial lernen Sie:
- Was ein TTL-zu-RS422-Modul ist und welche Funktion jeder Pin hat.
- Wie Sie den ESP32 C3 Super Mini mit dem TTL-zu-RS422-Modul verbinden.
- Wie Sie den ESP32 C3 Super Mini programmieren, um Daten vom RS422-Bus zu empfangen.
- Wie Sie den ESP32 C3 Super Mini programmieren, um Daten an den RS422-Bus zu senden.
- Wie Sie Daten zwischen Ihrem PC und dem ESP32 C3 Super Mini über RS422 in beide Richtungen senden.

Erforderliche Hardware
| 1 | × | ESP32 C3 Super Mini | |
| 1 | × | USB-Kabel Typ-A zu Typ-C (für USB-A PC) | |
| 1 | × | USB-Kabel Typ-C zu Typ-C (für USB-C PC) | |
| 1 | × | TTL-zu-RS422-Modul | |
| 1 | × | Verbindungskabel | |
| 1 | × | (Optional) RS422-zu-USB-Kabel |
Oder Sie können die folgenden Kits kaufen:
| 1 | × | DIYables Sensor-Kit (18 Sensoren/Displays) |
Überblick über TTL to RS422 Module
Ein TTL-zu-RS422-Modul ist ein kleiner Wandler, der die seriellen TTL-Signale des ESP32 C3 Super Mini in RS422-Signale umwandelt und umgekehrt.
Warum Sie es benötigen:
- Die TX- und RX-Pins des ESP32 C3 Super Mini verwenden Signale mit TTL-Pegel (3,3V).
- TTL-Signale reichen nur über eine kurze Entfernung, etwa 1 Meter bei einem Breadboard-Kabel.
- RS422 verwendet zwei Leitungspaare mit entgegengesetzten Spannungen, sodass sich Störungen gegenseitig aufheben.
- Dadurch können Ihre Daten viel weiter und mit deutlich weniger Fehlern übertragen werden.
Hauptmerkmale:
- Vollduplex: RS422 sendet und empfängt gleichzeitig auf zwei getrennten Leitungspaaren.
- Große Entfernung: Bis zu etwa 1200 m (4000 ft) bei niedriger Baudrate.
- Störfest: Die differenzielle Signalübertragung ignoriert elektrische Störungen von Motoren und Relais.
- Multi-Drop-Empfang: Ein Sender kann bis zu 10 Empfänger versorgen.
- Kein Treiber erforderlich: Das Modul wandelt die Signale in Hardware um, ohne zusätzliche Software.
Technische Daten:
- Spannung auf der TTL-Seite: 3,3V oder 5V. Verwenden Sie 3,3V für den ESP32 C3 Super Mini.
- Signaltyp: Differenziell, zwei Paare. Ein Paar sendet, ein Paar empfängt.
- Typische Chips: MAX13487, MAX3422 und ähnliche RS422-Transceiver.
- Maximale Kabellänge: Etwa 1200 m bei niedriger Baudrate, kürzer bei hohen Geschwindigkeiten.
- Übliche Baudraten: 9600, 19200, 38400, 57600, 115200.
Pinbelegung
Das RS422-zu-TTL-Modul hat zwei Seiten: eine TTL-Seite, die zu Ihrem Board zeigt, und eine RS422-Seite, die zum langen Kabel zeigt.
TTL-Schnittstelle (mit dem ESP32 C3 Super Mini verbunden):
- VCC: Versorgungs-Pin. Mit 3,3V am ESP32 C3 Super Mini verbinden.
- GND: Masse-Pin (0V). Mit GND verbinden.
- RXD (DI): Dateneingang. Mit einem TX-Pin des ESP32 C3 Super Mini verbinden.
- TXD (RO): Datenausgang. Mit einem RX-Pin des ESP32 C3 Super Mini verbinden.
RS422-Schnittstelle (Seite des langen Kabels):
- A (R+): Der RX+-Pin des Moduls. Mit dem TX+-Pin (T+ oder Y-Pin) des anderen RS422-Geräts verbinden.
- B (R-): Der RX--Pin des Moduls. Mit dem TX--Pin (T- oder Z-Pin) des anderen RS422-Geräts verbinden.
- Y (T+): Der TX+-Pin des Moduls. Mit dem RX+-Pin (R+ oder A-Pin) des anderen RS422-Geräts verbinden.
- Z (T-): Der TX--Pin des Moduls. Mit dem RX--Pin (R- oder B-Pin) des anderen RS422-Geräts verbinden.

Verdrahtungsdiagramm
Verbinden Sie die TTL-Seite des Moduls mit dem ESP32 C3 Super Mini und anschließend die RS422-Seite mit einem Twisted-Pair-Kabel mit dem anderen Gerät.
- Hinweis: GPIO20 und GPIO21 sind der UART des seriellen Monitors. Lassen Sie sie frei, sonst verlieren Sie Ihre Debug-Meldungen.
- Hinweis: Wir verwenden stattdessen eine zweite Hardware-Serial-Schnittstelle an GPIO6 und GPIO7.
- Hinweis: TX geht immer an RX, und RX geht immer an TX. Das Vertauschen ist der häufigste Fehler.
- Hinweis: Der ESP32 C3 Super Mini und das Modul müssen eine gemeinsame Masse (GND) haben.
| TTL-zu-RS422-Modul-Pin | ESP32 C3 Super Mini Pin |
|---|---|
| VCC | 3,3V |
| GND | GND |
| RXD (DI) | GPIO6 |
| TXD (RO) | GPIO7 |
WARNING
Der ESP32 C3 Super Mini ist ein 3,3V-Board. Seine GPIO-Pins sind NICHT 5V-tolerant. Versorgen Sie das Modul über den 3,3V-Pin und führen Sie niemals ein 5V-TTL-Signal in GPIO6 oder GPIO7. Dies kann den Chip beschädigen. Wenn Ihr Modul nur mit 5V funktioniert, setzen Sie einen Logikpegelwandler in die TXD-Leitung.
Auf der RS422-Seite müssen Sie die Paare einhalten. RS422 ist vollduplex und verwendet daher ZWEI verdrillte Paare: ein Paar für Y/Z (TX+ und TX-) und ein Paar für A/B (RX+ und RX-). Y und Z müssen sich ein verdrilltes Paar teilen. A und B müssen sich das andere verdrillte Paar teilen. Das Mischen von Adern aus verschiedenen Paaren zerstört die Störunterdrückung. Bei einem langen Kabel fügen Sie über jedes Paar einen 120-Ohm-Abschlusswiderstand ein, und zwar nur am EMPFANGSENDE dieses Paares. Widerstände an beiden Enden oder am falschen Paar schwächen das Signal.

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.
Wie man den ESP32 C3 Super Mini für das RS422-Modul programmiert
Der ESP32 C3 Super Mini hat keine SoftwareSerial-Bibliothek, daher verwenden wir stattdessen einen zweiten Hardware-UART.
- Erstellen Sie eine Hardware-Serial-Schnittstelle und definieren Sie die beiden Pins:
- Initialisieren Sie die serielle RS422-Schnittstelle in setup():
※ Notiz:
Verwenden Sie HardwareSerial, nicht SoftwareSerial. Die SoftwareSerial-Bibliothek gibt es auf dem ESP32 C3 Super Mini nicht, daher lässt sich ein von einem AVR-Board kopierter Sketch nicht kompilieren. Die gute Nachricht: Der ESP32 C3 kann einen echten Hardware-UART auf fast jeden freien GPIO legen, was schneller und zuverlässiger ist als eine Software-Serial-Schnittstelle.
- Lassen Sie den seriellen Monitor auf seinem eigenen Port mit 115200 Baud:
- Die RS422-Baudrate (hier 9600) muss exakt mit der des anderen RS422-Geräts übereinstimmen.
- Um Daten von RS422 zu lesen, können Sie die folgenden Funktionen verwenden:
- Um Daten an RS422 zu schreiben, können Sie die folgenden Funktionen verwenden:
- Weitere Funktionen für RS422 finden Sie in der Serial-Referenz
ESP32 C3 Super Mini Code
Dieser Sketch sendet jedes Zeichen, das über RS422 ankommt, an den Absender zurück und gibt es außerdem im seriellen Monitor aus.
Was dieser Code macht:
- Startet den seriellen Monitor mit 115200 Baud zur Fehlersuche.
- Startet einen zweiten Hardware-UART mit 9600 Baud an GPIO7 (RX) und GPIO6 (TX) für RS422.
- Prüft, ob RS422-Daten angekommen sind.
- Sendet jedes Zeichen an den RS422-Absender zurück.
- Gibt dasselbe Zeichen im seriellen Monitor aus, damit Sie es sehen können.
Schnelle Schritte
- Neu beim ESP32 C3 Super Mini? Absolvieren Sie zuerst unser Tutorial Erste Schritte mit dem ESP32 C3 Super Mini, um Ihre Entwicklungsumgebung einzurichten.
- Modul verdrahten: Folgen Sie der obigen Verdrahtungstabelle. Prüfen Sie, dass RXD an GPIO6 und TXD an GPIO7 geht.
- Stromversorgung prüfen: Verwenden Sie den 3,3V-Pin, nicht 5V.
- Board anschließen: Verbinden Sie den ESP32 C3 Super Mini mit einem USB-Typ-C-Kabel mit Ihrem PC.
- IDE öffnen: Starten Sie die Arduino IDE auf Ihrem Computer.
- Board auswählen: Stellen Sie sicher, dass ESP32 C3 Super Mini unter Werkzeuge > Board ausgewählt ist.
- Port auswählen: Wählen Sie den COM-Port Ihres Boards unter Werkzeuge > Port.
- Code hochladen: Kopieren Sie den obigen Code in den Editor und klicken Sie auf Upload.
- Seriellen Monitor öffnen: Stellen Sie die Baudrate auf 115200 ein.
- Daten senden: Senden Sie Zeichen vom anderen RS422-Gerät und beobachten Sie, wie sie erscheinen.
- Profi-Tipp: Wenn Sie nichts sehen, vertauschen Sie zuerst die A/B-Leitungen und dann die Y/Z-Leitungen. Ein vertauschtes Differenzpaar ist der zweithäufigste RS422-Fehler.
Ausgabe im seriellen Monitor
Testen
Sie können die Verbindung testen, indem Sie Daten von Ihrem PC über RS-422 an den ESP32 C3 Super Mini und wieder zurück senden.
- Kabel anschließen: Verbinden Sie den ESP32 C3 Super Mini mit einem RS422-zu-USB-Kabel mit Ihrem PC, wie unten gezeigt.

- Parameter einstellen: Öffnen Sie das Terminal und wählen Sie den COM-Port sowie 9600 Baud, 8 Datenbits, keine Parität, 1 Stoppbit.
- Daten eingeben: Senden Sie einige Zeichen vom Terminal an den ESP32 C3 Super Mini.
- Echo prüfen: Wenn es funktioniert, kommen dieselben Zeichen direkt zum Terminal zurück.
- Monitor prüfen: Dieselben Zeichen erscheinen auch im seriellen Monitor der Arduino IDE mit 115200 Baud.
※ Notiz:
Ihr RS422-zu-USB-Kabel erhält einen eigenen COM-Port, getrennt vom USB-Port des ESP32 C3 Super Mini. Sie können beide gleichzeitig öffnen: ein Terminal am RS422-Port mit 9600 Baud und den seriellen Monitor der Arduino IDE am Port des Boards mit 115200 Baud.
Anwendungs- und Projektideen
RS422 mit dem ESP32 C3 Super Mini ist ideal, wenn Ihr Kabel lang ist oder die Umgebung elektrisch stark gestört ist.
- Entfernter Sensorknoten: Einen 100 m entfernten Sensor lesen und die Werte über RS422 zurücksenden.
- Verbindung zu Fabrikmaschinen: Mit einer Industriesteuerung oder einem Motorantrieb kommunizieren, die nur RS422 bieten.
- Boots- oder Wohnmobil-Panel: Daten zwischen einem Steuerstand-Display und einer Motorsensor-Box übertragen.
- Gewächshaus-Überwachung: Mehrere weit voneinander entfernte Temperatur- und Feuchtigkeitsstationen mit einem Hub verbinden.
- Gebäudeautomation: Tür-, Licht- und Klimasteuerungen über verschiedene Stockwerke hinweg verbinden.
- Waagen- oder Druckerleser: Eine Tischwaage oder einen Etikettendrucker mit RS422-Anschluss auslesen.
Fordern Sie sich selbst heraus
Probieren Sie diese kleinen Erweiterungen aus, um sicherer im Umgang mit RS422 am ESP32 C3 Super Mini zu werden.
- Einfach: Ändern Sie die RS422-Baudrate an beiden Enden auf 19200 und prüfen Sie, ob es weiterhin funktioniert.
- Einfach: Geben Sie jedes Mal, wenn eine vollständige Zeile ankommt, eine kurze Meldung im seriellen Monitor aus.
- Mittel: Erfassen Sie mit readStringUntil() eine ganze Zeile und senden Sie sie in Großbuchstaben zurück.
- Mittel: Senden Sie alle 2 Sekunden einen Temperaturwert über RS422 in der Form TEMP:24.6.
- Fortgeschritten: Bauen Sie ein kleines Befehlsprotokoll, sodass LED:ON und LED:OFF über RS422 die eingebaute LED an GPIO8 schalten.
- Fortgeschritten: Fügen Sie jeder Nachricht ein Prüfsummen-Byte hinzu und ignorieren Sie jede Nachricht mit falscher Prüfsumme.