ESP32 S3 RS485

RS485 (auch als RS-485 bekannt) ist ein weit verbreiteter serieller Kommunikationsstandard für die störfeste Datenübertragung über große Entfernungen in industriellen und eingebetteten Systemen. In diesem Tutorial lernen Sie, wie Sie die RS485-Kommunikation mit dem ESP32 S3 nutzen, indem Sie ihn an ein TTL-zu-RS485-Modul anschließen und so programmieren, dass er Daten sendet und empfängt.

ESP32 S3 RS485

Was Sie bauen werden:

  1. Eine Kabelverbindung zwischen dem ESP32 S3 und einem TTL-zu-RS485-Modul.
  2. ESP32 S3-Code, der die serielle RS485-Schnittstelle initialisiert.
  3. Einen Testaufbau, der Daten von Ihrem PC über RS485 an den ESP32 S3 sendet und das Echo zurückempfängt.
  4. Eine funktionierende RS485-Kommunikationsverbindung für industrielle oder serielle Anwendungen über große Entfernungen.

Überblick über TTL to RS485 Module

Bei der seriellen Kommunikation am ESP32 S3 mit Funktionen wie Serial.print(), Serial.read() und Serial.write() erfolgt die Datenübertragung über den TX-Pin, während der Datenempfang über den RX-Pin stattfindet. Diese Pins arbeiten mit TTL-Pegel, das heißt, sie verarbeiten Signale mit einem begrenzten Spannungsbereich und eignen sich daher ohne Umwandlung nicht für die Kommunikation über große Entfernungen. Um Daten über größere Strecken zu senden, muss das TTL-Signal in einen robusten Standard wie RS485 umgewandelt werden, der Kabellängen von bis zu 1200 Metern und Bus-Topologien mit mehreren Geräten unterstützt.

In diesem Tutorial verwenden Sie ein TTL-zu-RS485-Modul, das die Signalumwandlung in beide Richtungen automatisch übernimmt, sodass der ESP32 S3 ohne zusätzlichen Hardwareaufwand über einen RS485-Bus kommunizieren kann.

Wichtige Spezifikationen

  • Schnittstelle: TTL (3,3V/5V-kompatibel) auf der einen Seite, RS485-Differenzpaar auf der anderen
  • Maximale Kabellänge: Bis zu 1200 Meter
  • Maximale Baudrate: Bis zu 10 Mbit/s (abhängig vom Modul)
  • Busteilnehmer: Unterstützt bis zu 32 Knoten an einem einzigen RS485-Bus
  • Gängige ICs: MAX13487, MAX3485, SP3485

Pinbelegung

Das RS485-zu-TTL-Modul besitzt zwei Schnittstellen:

  • TTL-Schnittstelle (mit dem ESP32 S3 verbunden):
    1. VCC-Pin: Dieser Versorgungspin sollte mit VCC (5V oder 3,3V) verbunden werden.
    2. GND-Pin: Dieser Versorgungspin sollte mit GND (0V) verbunden werden.
    3. RXD-Pin: Dieser Datenpin sollte mit einem TX-Pin des ESP32 S3 verbunden werden.
    4. TXD-Pin: Dieser Datenpin sollte mit einem RX-Pin des ESP32 S3 verbunden werden.
  • RS485-Schnittstelle:
    1. D+ (A oder TR+) Pin: Dieser Pin dient der Datenkommunikation.
    2. D- (B oder TR-) Pin: Dieser Pin wird für die Datenübertragung verwendet.
    3. GND-Pin: Dieser Pin ist optional, sein Anschluss wird jedoch dringend empfohlen, um Störeinflüsse zu verringern und eine optimale Leistung sicherzustellen.
    Pinbelegung RS-485-Modul
    image source: diyables.io

    Verdrahtungsdiagramm

    Schließen Sie das TTL-zu-RS485-Modul wie im folgenden Diagramm gezeigt an Ihren ESP32 S3 an. Verwenden Sie auf der TTL-Seite kurze, zuverlässige Jumper-Kabel und für das RS485-Differenzpaar ein verdrilltes Kabel, um Störungen zu minimieren.

    Sicherheitshinweise

    Halten Sie das RS485-Differenzpaar (D+/D-) von Stromleitungen und hochfrequenten Signalen fern. Verbinden Sie immer die RS485-GND-Leitung zwischen den Geräten, um einen gemeinsamen Bezug herzustellen und Gleichtaktstörungen zu verringern. Überschreiten Sie nicht die zulässige VCC-Spannung des Moduls.

    TTL-zu-RS485-Modul ESP32 S3
    VCC 3.3V
    GND GND
    RXD TX2 (GPIO17)
    TXD RX2 (GPIO18)
    Schaltplan ESP32 S3 TTL zu RS485

    Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.

    So programmieren Sie den ESP32 S3 für das RS485-Modul

    Die Programmierung des ESP32 S3 für die Kommunikation über RS485 ist unkompliziert, da das TTL-zu-RS485-Modul die gesamte Signalumwandlung transparent übernimmt. Sie initialisieren einfach die Hardware-Serielle Schnittstelle am ESP32 S3 und verwenden dann die Standard-Serial-Funktionen zum Senden und Empfangen von Daten, genau wie bei jeder UART-basierten Kommunikation.

    Der folgende Code zeigt, wie Sie die serielle Schnittstelle für die RS485-Kommunikation initialisieren:

    • Initialisiert die serielle Schnittstelle:
    Serial2.begin(9600);

    ESP32 S3 Code

    Der folgende Code zeigt ein vollständiges RS485-Echo-Beispiel für den ESP32 S3. Alle am RS485-Bus empfangenen Daten werden sofort zurückgesendet, sodass sich die bidirektionale Kommunikation einfach von einem PC-Terminal aus testen lässt.

    /* * Dieser ESP32 S3 Code wurde von newbiely.de entwickelt * Dieser ESP32 S3 Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt. * Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte: * https://newbiely.de/tutorials/esp32-s3/esp32-s3-rs485 */ /* * This ESP32-S3 code is created by esp32io.com * * This ESP32-S3 code is released in the public domain * * For more detail (instruction and wiring diagram), visit https://esp32io.com/tutorials/esp32-s3-rs485 */ void setup() { // start communication with baud rate 9600 Serial.begin(9600); // Serial Monitor Serial2.begin(9600, SERIAL_8N1, 18, 17); // RS485 // wait a moment to allow serial ports to initialize delay(100); } void loop() { // Check if there's data available on Serial if (Serial2.available()) { char data = Serial2.read(); // read the received character Serial.print(data); // print the recived data to Serial Monitor } }

    Schnelle Schritte

    Führen Sie die folgenden Schritte aus, um die RS485-Kommunikation mit Ihrem ESP32 S3 einzurichten und zu testen:

    1. Neu beim ESP32 S3? Arbeiten Sie zuerst unsere Anleitung Erste Schritte mit dem ESP32 S3 durch.
    2. Verdrahten Sie das TTL-zu-RS485-Modul gemäß dem obigen Schaltplan mit dem ESP32 S3.
    3. Verbinden Sie den ESP32 S3 über das USB-Type-C-Kabel mit Ihrem PC.
    4. Öffnen Sie die Arduino IDE und fügen Sie den oben gezeigten ESP32 S3-Code ein.
    5. Wählen Sie im Menü Tools der Arduino IDE das richtige Board und den COM-Port aus.
    6. Klicken Sie auf Upload, um den Code auf den ESP32 S3 zu flashen.
    7. Verbinden Sie die RS485-Leitungen D+/D- mit einem USB-zu-RS485-Wandler, der an Ihren PC angeschlossen ist.
    8. Öffnen Sie ein serielles Terminalprogramm wie Tera Term oder PuTTY am RS485-COM-Port mit passenden Baudraten-Einstellungen.
    9. Geben Sie im Terminal einen Text ein und drücken Sie Enter — wenn alles korrekt verdrahtet ist, sehen Sie die vom ESP32 S3 zurückgesendeten Daten.
    10. Profi-Tipp: Verwenden Sie für die RS485-Leitungen D+/D- ein verdrilltes Kabel und fügen Sie an jedem Ende des Busses einen 120-Ohm-Abschlusswiderstand hinzu, um Signalreflexionen bei höheren Baudraten oder längeren Kabelstrecken zu verhindern.

    Serieller Monitor

    Öffnen Sie den seriellen Monitor der Arduino IDE (auf 9600 Baud eingestellt), um die Aktivität auf der Seite des ESP32 S3 zu beobachten. Sie sollten eine Ausgabe ähnlich der folgenden sehen:

    ∞
    Newbiely | Arduino IDE 2.3.8
    ──
    ☐
    ✕
    File
    Edit
    Sketch
    Tools
    Help
    ESP32S3 Dev Module
    Newbiely.ino
    ···
    8 Serial.println("Hello World!");
    Output
    Serial Monitor
    Message (Enter to send message to 'ESP32S3 Dev Module' on 'COM15')
    New Line
    9600 baud
    [2026-01-15 09:12:04] RS485 ready. Waiting for data... [2026-01-15 09:12:11] Received: Hello ESP32 S3 [2026-01-15 09:12:11] Echo sent: Hello ESP32 S3 [2026-01-15 09:12:19] Received: RS485 test 123 [2026-01-15 09:12:19] Echo sent: RS485 test 123
    Ln 11, Col 1
    ESP32S3 Dev Module on COM15
    2

    Test

    Sie können einen vollständigen End-to-End-Test durchführen, indem Sie Daten von Ihrem PC über RS485 an den ESP32 S3 senden und die Echo-Antwort beobachten. Verbinden Sie den ESP32 S3 wie unten gezeigt über ein USB-zu-RS485-Kabel mit Ihrem PC, konfigurieren Sie Ihr serielles Terminal passend zur Baudrate im Code und geben Sie Daten in das Terminal ein.

    • Verbinden Sie den RS485-Ausgang des ESP32 S3 wie unten gezeigt über ein RS485-zu-USB-Kabel mit Ihrem PC:
    Kommunikation ESP32 S3 RS485 mit PC
    • Installieren Sie ein serielles Terminalprogramm wie Tera Term oder PuTTY
    • Öffnen Sie das serielle Terminalprogramm und konfigurieren Sie die seriellen Parameter (COM-Port, Baudrate ...)
    • Geben Sie im seriellen Terminal einige Daten ein, um sie an den ESP32 S3 zu senden.
    • Bei Erfolg sehen Sie die zurückgesendeten Daten im seriellen Terminal.

    Anwendungen

    RS485 ist ein vielseitiger Kommunikationsstandard, der sich gut für eine Vielzahl professioneller und industrieller Anwendungsfälle eignet, bei denen Zuverlässigkeit und Kabellänge wichtig sind.

    1. Industrieautomation: Verbinden Sie den ESP32 S3 über einen RS485-Bus in der Fabrik mit SPS, Sensoren und Aktoren zur Datenerfassung und Steuerung.
    2. Gebäudeleittechnik: Verwenden Sie den ESP32 S3 als RS485-Knoten, um mit HLK-Steuerungen, Beleuchtungssystemen und Energiezählern zu kommunizieren.
    3. Netzwerke mit mehreren Geräten: Realisieren Sie einen RS485-Multidrop-Bus mit bis zu 32 Geräten, die vom ESP32 S3 als Master einzeln adressiert werden.
    4. Serielle Verbindungen über große Entfernungen: Ersetzen Sie USB- oder TTL-Verbindungen mit kurzer Reichweite durch RS485 für eine zuverlässige Kommunikation über Strecken von bis zu 1200 Metern.
    5. Modbus-RTU-Protokoll: Verwenden Sie den ESP32 S3 mit einem RS485-Modul als Modbus-RTU-Master oder -Slave, um mit Industrieinstrumenten zu kommunizieren.

    Video Tutorial

    Wir erwägen die Erstellung von Video-Tutorials. Wenn Sie Video-Tutorials für wichtig halten, abonnieren Sie bitte unseren YouTube-Kanal , um uns zu motivieren, die Videos zu erstellen.

    Sehen Sie sich unten die Schritt-für-Schritt-Videoanleitung für dieses ESP32 S3-Projekt an.

    Herausforderungen

    Diese Herausforderungen helfen Ihnen, Ihr Verständnis der RS485-Kommunikation mit dem ESP32 S3 zu vertiefen und fortgeschrittenere Anwendungsfälle zu erkunden.

    1. Anfänger: Ändern Sie den Code so, dass jeder zurückgesendeten Nachricht ein Zeitstempel vorangestellt wird, damit Sie nachvollziehen können, wann die Daten empfangen wurden.
    2. Fortgeschritten: Implementieren Sie auf dem ESP32 S3 einen einfachen Parser für Modbus-RTU-Frames, der eine Anfrage nach einem Holding-Register liest und über RS485 eine gültige Antwort zurückgibt.
    3. Experte: Bauen Sie ein RS485-Netzwerk mit mehreren Knoten aus zwei oder mehr ESP32 S3-Boards mit jeweils eindeutiger Adresse auf und implementieren Sie ein Master-Slave-Protokoll, bei dem der Master jeden Slave reihum abfragt.

    Verwandte Tutorials

    ※ UNSERE NACHRICHTEN

    • Sie können gerne den Link zu diesem Tutorial teilen. Bitte verwenden Sie jedoch unsere Inhalte nicht auf anderen Websites. Wir haben viel Mühe und Zeit in die Erstellung der Inhalte investiert, bitte respektieren Sie unsere Arbeit!