ESP32 C3 Super Mini - RS485
RS485 ist ein serieller Standard, der Daten über lange Leitungen mit starkem Störschutz überträgt. Mit einem günstigen TTL-zu-RS485-Modul kann der ESP32 C3 Super Mini mit Geräten kommunizieren, die Hunderte von Metern entfernt sind. Dieses Tutorial zeigt Ihnen, wie Sie die RS485-Kommunikation am ESP32 C3 Super Mini verdrahten und programmieren.
In diesem Tutorial lernen Sie:
- Was RS485 ist und warum es einfaches TTL-Serial übertrifft
- Wie Sie ein TTL-zu-RS485-Modul an den ESP32 C3 Super Mini anschließen
- Wie Sie den ESP32 C3 Super Mini programmieren, um Daten von RS485 zu lesen
- Wie Sie den ESP32 C3 Super Mini programmieren, um Daten an RS485 zu senden
- Wie Sie Daten von Ihrem PC über RS485 an den ESP32 C3 Super Mini und zurück senden

Erforderliche Hardware
Oder Sie können die folgenden Kits kaufen:
| 1 | × | DIYables Sensor-Kit (18 Sensoren/Displays) |
Überblick über TTL to RS485 Module
Ein TTL-zu-RS485-Modul ist eine kleine Platine, die das serielle TTL-Signal des ESP32 C3 Super Mini in ein RS485-Signal umwandelt und umgekehrt.
Der ESP32 C3 Super Mini sendet serielle Daten über einen TX-Pin und empfängt sie über einen RX-Pin. Diese Pins verwenden TTL-Pegel, der nur über eine kurze Leitung funktioniert. Für ein langes Kabel müssen Sie TTL in einen stärkeren Standard wie RS232, RS485 oder RS422 umwandeln.
Hauptmerkmale:
- Große Entfernung: Funktioniert mit einem guten Kabel bis etwa 1200 Meter
- Störsicher: Verwendet zwei Leitungen mit entgegengesetzten Signalen, sodass sich Störungen aufheben
- Mehrere Geräte: Viele Geräte können sich dasselbe Leitungspaar teilen
- Einfach zu verwenden: Normaler Serial-Code, keine spezielle Bibliothek erforderlich
- 3,3V-freundlich: Die meisten Module laufen problemlos am 3,3V-Pin des ESP32 C3 Super Mini
Technische Daten:
- Übliche Chips: MAX13487, MAX3485, SP3485, MAX485
- Versorgungsspannung: 3,3V oder 5V, je nach Modul
- Logikpegel: Muss für den ESP32 C3 Super Mini 3,3V betragen
- Kabeltyp: Ein verdrilltes Paar plus eine GND-Leitung
- Abschluss: 120-Ohm-Widerstand an jedem Ende eines langen Kabels
- Typische Geschwindigkeit: 9600 bis 115200 Baud
WARNING
Der ESP32 C3 Super Mini ist ein 3,3V-Board. Verwenden Sie nur ein TTL-zu-RS485-Modul mit 3,3V-Logik oder fügen Sie einen Pegelwandler hinzu. Ein 5V-TXD/RO-Ausgang, der direkt in einen GPIO-Pin geht, kann den Chip beschädigen. Führen Sie auf der RS485-Seite A und B immer im SELBEN verdrillten Paar des Kabels, verbinden Sie A mit A und B mit B, und setzen Sie an beiden Enden eines langen Kabels einen 120-Ohm-Widerstand ein.
Pinbelegung
Das RS485-zu-TTL-Modul hat zwei Seiten: eine TTL-Seite für das Board und eine RS485-Seite für das lange Kabel.
- VCC-Pin: Stromeingang, mit 3,3V des ESP32 C3 Super Mini verbinden
- GND-Pin: Masse (0V), gemeinsam mit dem ESP32 C3 Super Mini
- RXD-Pin (DI): Dateneingang des Moduls, mit einem TX-Pin des ESP32 C3 Super Mini verbinden
- TXD-Pin (RO): Datenausgang des Moduls, mit einem RX-Pin des ESP32 C3 Super Mini verbinden
- D+ Pin (A oder TR+): Eine Leitung des RS485-Paares, wird für die Datenkommunikation verwendet
- D- Pin (B oder TR-): Die andere Leitung des RS485-Paares, wird für die Datenkommunikation verwendet
- GND-Pin (RS485-Seite): Optional, aber dringend empfohlen, da er Störprobleme verringert
- DE/RE-Pin (nur bei manchen Modulen): Richtungssteuerung, HIGH zum Senden und LOW zum Empfangen
※ Notiz:
Viele Module, wie der Typ MAX13487, wechseln die Richtung selbstständig und haben keinen DE/RE-Pin. Wenn Ihr Modul einen hat, verbinden Sie ihn mit GPIO5 des ESP32 C3 Super Mini, setzen Sie ihn vor dem Senden auf HIGH und zum Empfangen auf LOW.

Verdrahtungsdiagramm
Verbinden Sie die TTL-Seite des Moduls mit dem ESP32 C3 Super Mini und die RS485-Seite mit Ihrem langen Kabel.
- Hinweis: Verwenden Sie nur 3,3V-Logik. Führen Sie niemals ein 5V-Signal in einen GPIO-Pin.
- Hinweis: GPIO20 und GPIO21 sind der UART des seriellen Monitors, lassen Sie sie daher frei.
- Hinweis: RXD des Moduls geht an einen TX-Pin des Boards und TXD an einen RX-Pin. Sie werden gekreuzt.
- Hinweis: Verwenden Sie nicht GPIO8 oder GPIO9 — das sind Boot-Strapping-Pins.
- Hinweis: Verbinden Sie GND zwischen dem Modul und dem ESP32 C3 Super Mini, sonst funktioniert nichts.

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.
| RS485-Modul-Pin | ESP32 C3 Super Mini Pin |
|---|---|
| VCC | 3,3V |
| GND | GND |
| RXD (DI) | GPIO6 |
| TXD (RO) | GPIO7 |
| DE/RE (nur falls Ihr Modul ihn hat) | GPIO5 |
Wie man den ESP32 C3 Super Mini für das RS485-Modul programmiert
Der ESP32 C3 Super Mini hat mehr als einen Hardware-UART, daher verwenden wir einen zweiten für RS485.
※ Notiz:
Die SoftwareSerial-Bibliothek gibt es auf dem ESP32 C3 Super Mini NICHT. Verwenden Sie stattdessen die eingebaute Klasse HardwareSerial. Sie ist schneller, zuverlässiger und benötigt keine zusätzliche CPU-Zeit. GPIO20 und GPIO21 gehören zum ersten UART, den der serielle Monitor benötigt, daher erhält das RS485-Modul eigene Pins.
- Definieren Sie die seriellen RS485-Pins:
- Erstellen Sie eine zweite Hardware-Serial-Schnittstelle:
- Starten Sie den seriellen Monitor und den RS485-Port:
- Um Daten von RS485 zu lesen, können Sie die folgenden Funktionen verwenden:
- Um Daten an RS485 zu schreiben, können Sie die folgenden Funktionen verwenden:
- Rufen Sie sie über Ihren eigenen Port-Namen auf, zum Beispiel rs485Serial.read() und rs485Serial.print().
- Weitere Funktionen für RS485 finden Sie in der Serial-Referenz
ESP32 C3 Super Mini Code - RS485
Dieser Sketch sendet jedes von RS485 empfangene Zeichen als Echo zurück und gibt es außerdem im seriellen Monitor aus.
Was dieser Code macht:
- Startet den seriellen Monitor mit 115200 Baud am eigenen UART des Boards
- Startet einen zweiten Hardware-UART für RS485 mit 9600 Baud an GPIO7 (RX) und GPIO6 (TX)
- Prüft ständig, ob ein neues Zeichen von RS485 angekommen ist
- Sendet dasselbe Zeichen an den RS485-Absender zurück, ein einfacher Echo-Test
- Gibt das Zeichen im seriellen Monitor aus, damit Sie es auf Ihrem PC 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.
- Bauteile verdrahten: Folgen Sie dem obigen Schaltplan, um das RS485-Modul mit dem ESP32 C3 Super Mini zu verbinden.
- Board anschließen: Verbinden Sie den ESP32 C3 Super Mini mit einem USB-Typ-C-Kabel mit Ihrem PC.
- Arduino IDE öffnen: Starten Sie die Arduino IDE.
- 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 ESP32 C3 Super Mini unter Werkzeuge > Port.
- Code hochladen: Kopieren Sie den obigen Code, fügen Sie ihn in die Arduino IDE ein und klicken Sie dann auf die Schaltfläche Upload.
- Seriellen Monitor öffnen: Stellen Sie die Baudrate auf 115200 ein.
- Daten senden: Senden Sie einige Zeichen vom anderen RS485-Gerät.
- Ergebnis ansehen: Beobachten Sie, wie die Zeichen im seriellen Monitor erscheinen.
- Profi-Tipp: Wenn Sie nichts sehen, vertauschen Sie die Leitungen A und B. Ein vertauschtes Paar ist der häufigste RS485-Fehler.
Zeilenweise Code-Erklärung
Der obige ESP32 C3 Super Mini Code enthält eine zeilenweise Erklärung. Bitte lesen Sie die Kommentare im Code!
Testen
Sie können den Aufbau testen, indem Sie Daten von Ihrem PC über RS-485 an den ESP32 C3 Super Mini und zurück senden. Gehen Sie wie folgt vor:
- Hardware anschließen: Verbinden Sie den ESP32 C3 Super Mini mit einem RS485-zu-USB-Kabel mit Ihrem PC, wie unten gezeigt.
- Parameter einstellen: Öffnen Sie das Terminal und wählen Sie den COM-Port und die Baudrate 9600.
- Daten eingeben: Senden Sie einige Zeichen vom Terminal an den ESP32 C3 Super Mini.
- Echo prüfen: Wenn es funktioniert, kommen dieselben Zeichen im Terminal zurück.
- Board-Seite prüfen: Dieselben Zeichen erscheinen auch im seriellen Monitor der Arduino IDE mit 115200 Baud.

※ Notiz:
Die RS485-Verbindung läuft mit 9600 Baud und der serielle Monitor mit 115200 Baud. Die beiden Werte sind absichtlich unterschiedlich, und das ist in Ordnung. Stellen Sie nur sicher, dass beide Enden des RS485-Kabels dieselbe Geschwindigkeit verwenden.
Anwendungs-/Projektideen
Hier sind einfache Möglichkeiten, RS485 mit dem ESP32 C3 Super Mini zu verwenden.
- Sensor über große Entfernung: Einen Temperatursensor lesen, der 500 Meter entfernt ist.
- Modbus-RTU-Master: Mit Industriezählern und Motorantrieben kommunizieren, die Modbus sprechen.
- Netzwerk aus mehreren Boards: Viele ESP32 C3 Super Mini Boards über ein einziges Leitungspaar verbinden.
- Landwirtschaftliche Überwachung: Boden- und Wetterdaten von einem Feld zurück zum Haus senden.
- Zugangskontrolle: RFID-Leser auslesen, die über ein großes Gebäude verteilt sind.
- Solarwechselrichter-Logger: Energiedaten von einem Wechselrichter abrufen und online veröffentlichen.
Fordern Sie sich selbst heraus
Probieren Sie diese Ideen aus, um mit RS485 am ESP32 C3 Super Mini weiterzukommen.
- Einfach: Lassen Sie die eingebaute LED an GPIO8 jedes Mal blinken, wenn ein Zeichen ankommt.
- Einfach: Ändern Sie die RS485-Geschwindigkeit an beiden Enden von 9600 auf 19200.
- Mittel: Lesen Sie mit rs485Serial.readStringUntil() eine ganze Zeile statt eines einzelnen Zeichens.
- Mittel: Fügen Sie einen DE/RE-Pin an GPIO5 hinzu und schalten Sie die Richtung in Ihrem eigenen Code um.
- Fortgeschritten: Geben Sie jedem Board eine Adresse, sodass nur das richtige Board antwortet.
- Fortgeschritten: Senden Sie die RS485-Daten per WLAN an eine Webseite.