ESP8266 - RS-422

In diesem Leitfaden werden wir uns eingehend damit befassen, wie man RS422-Kommunikation mit dem ESP8266 einrichtet. Wir gehen die folgenden Schritte gründlich durch:

Das Tutorial enthält auch Anleitungen für Hardware-Serial und SoftwareSerial.

Erforderliche Hardware

1×ESP8266 NodeMCU
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
1×(Empfohlen) Schraubklemmen-Erweiterungsboard für ESP8266
1×(Empfohlen) Stromverteiler für ESP8266 Typ-C

Oder Sie können die folgenden Kits kaufen:

1×DIYables Sensor-Kit (30 Sensoren/Displays)
1×DIYables Sensor-Kit (18 Sensoren/Displays)
Offenlegung: Einige der in diesem Abschnitt bereitgestellten Links sind Amazon-Affiliate-Links. Wir können eine Provision für Käufe erhalten, die über diese Links getätigt werden, ohne zusätzliche Kosten für Sie. Wir schätzen Ihre Unterstützung.

Über TTL-zu-RS422-Modul

Bei der seriellen Kommunikation mit dem ESP8266 über Funktionen wie Serial.print(), Serial.read() und Serial.write() sendet der ESP8266 Daten über den TX-Pin und empfängt Daten über den RX-Pin. Diese Pins arbeiten auf TTL-Ebene, was bedeutet, dass die Signale, die sie verarbeiten, eine begrenzte Reichweite haben. Daher ist es bei serieller Kommunikation über längere Strecken notwendig, das TTL-Signal auf RS232-, RS422- oder RS422-Signale umzuwandeln.

In diesem Tutorial befassen wir uns mit der Nutzung von RS-422 (auch RS-422 genannt) mit dem ESP8266, indem wir ein TTL-zu-RS-422-Modul verwenden. Dieses Modul ermöglicht die Umwandlung von TTL-Signalen in RS-422-Signale und umgekehrt.

Pinbelegung

Das RS422-zu-TTL-Modul verfügt über zwei Schnittstellen:

  • Die TTL-Schnittstelle (mit dem ESP8266 verbunden) umfasst 4 Pins
    • VCC-Pin: Versorgungs-Pin, muss mit VCC verbunden werden (5 V oder 3,3 V)
    • GND-Pin: Versorgungs-Pin, muss mit GND (0 V) verbunden werden
    • RXD-Pin: Datenpin, muss mit einem TX-Pin des ESP8266 verbunden werden
    • TXD-Pin: Datenpin, muss mit einem RX-Pin des ESP8266 verbunden werden
  • Die RS422-Schnittstelle umfasst die folgenden Pins:
    • A (R+) Pin: RX+-Pin des Moduls; verbinden Sie diesen Pin mit dem TX+-Pin (T+ oder Y-Pin) des anderen RS422-Geräts.
    • B (R-) Pin: RX- Pin des Moduls; verbinden Sie diesen Pin mit dem TX- Pin (T- oder Z-Pin) des anderen RS422-Geräts.
    • Y (T+) Pin: TX+-Pin des Moduls; verbinden Sie diesen Pin mit dem RX+-Pin (R+ oder A-Pin) des anderen RS422-Geräts.
    • Z (T-) Pin: TX- Pin des Moduls; verbinden Sie diesen Pin mit dem RX- Pin (R- oder B-Pin) des anderen RS422-Geräts.
    RS-422-Modul-Pinbelegung
    image source: diyables.io

Verdrahtungsdiagramm

  • Schaltplan bei Verwendung von Hardware-Serial
ESP8266 NodeMCU TTL zu RS422 Verdrahtungsdiagramm

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

Weitere Informationen finden Sie unter ESP8266-Pinbelegung und wie man ESP8266 und andere Komponenten mit Strom versorgt.

  • Schaltplan, wenn SoftwareSerial verwendet wird
ESP8266 NodeMCU RS-422-zu-TTL-Schaltplan

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

So programmieren Sie den ESP8266, um das RS-422-Modul zu verwenden.

Um mit dem ESP8266 in der Arduino IDE zu beginnen, befolgen Sie diese Schritte:

Serial.begin(9600);
  • Wenn Sie SoftwareSerial verwenden, müssen Sie die Bibliothek einbinden und ein SoftwareSerial-Objekt deklarieren:
#define RX_PIN D7 #define TX_PIN D6 // Definiere die SoftwareSerial-Objekte und deren Pins SoftwareSerial rs422(RX_PIN, TX_PIN);

ESP8266-Code für Hardware-Seriell

/* * Dieser ESP8266 NodeMCU Code wurde von newbiely.de entwickelt * Dieser ESP8266 NodeMCU 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/esp8266/esp8266-rs422 */ void setup() { // start communication with baud rate 9600 Serial.begin(9600); // wait a moment to allow serial ports to initialize delay(100); } void loop() { // Check if there's data available on Serial if (Serial.available()) { char data = Serial.read(); // read the received character Serial.print(data); // echo back to data to the sender } }

ESP8266-Code für Software-Serial

/* * Dieser ESP8266 NodeMCU Code wurde von newbiely.de entwickelt * Dieser ESP8266 NodeMCU 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/esp8266/esp8266-rs422 */ #include <SoftwareSerial.h> #define RX_PIN D7 #define TX_PIN D6 // define the SoftwareSerial object and their pins SoftwareSerial rs422(RX_PIN, TX_PIN); void setup() { // start communication with baud rate 9600 rs422.begin(9600); // wait a moment to allow serial ports to initialize delay(100); } void loop() { // Check if there's data available on rs422 if (rs422.available()) { char data = rs422.read(); // read the received character rs422.print(data); // echo back to data to the sender } }

Testen

Sie können einen Test durchführen, indem Sie Daten von Ihrem PC über RS-422 zum ESP8266 senden und umgekehrt. Um dies durchzuführen, befolgen Sie die folgenden Schritte:

  • Verbinden Sie den ESP8266 mit Ihrem PC über ein RS422-zu-USB-Kabel wie unten gezeigt.
ESP8266 NodeMCU RS-422-Kommunikation zum PC
  • Installiere ein serielles Terminalprogramm wie Tera Term oder PuTTY
  • Öffne das serielle Terminalprogramm und konfiguriere die seriellen Parameter (COM-Port, Baudrate...)
  • Gib einige Daten vom seriellen Terminal ein, um sie an den ESP8266 zu senden.
  • Wenn es gelingt, siehst du die Echo-Daten im seriellen Terminal.

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.

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!