Arduino RS-422 zu WLAN

In diesem Leitfaden werden wir untersuchen, wie man den Arduino Uno R4 WiFi verwendet, um einen RS-422-zu-WiFi-Konverter zu bauen. Mit diesem Aufbau wird der Arduino Daten von einer RS-422-Seriell-Schnittstelle lesen und sie an einen TCP-Server übertragen, entweder im selben lokalen Netzwerk (LAN) oder remote über das Internet. Er kann auch Daten vom TCP-Server empfangen und sie über die RS-422-Seriell-Schnittstelle zurücksenden.

Diese Schritte ermöglichen es Ihnen, vielseitige Kommunikationsbrücken zwischen seriellen RS-422-Geräten und einem TCP/IP-Server mithilfe von Arduino einzurichten.

Arduino RS-422-zu-WLAN-Konverter

Über RS422 und TCP

Wenn Sie nicht wissen, wie Sie RS422- und TCP-Kommunikation mit Arduino verwenden, informieren Sie sich in den folgenden Tutorials darüber:

Wie der RS-422-zu-WiFi-Konverter funktioniert

  • Arduino verbindet sich mit einem seriellen Gerät über die serielle RS422-Schnittstelle
  • Arduino arbeitet als TCP-Client, der sich mit einem TCP-Server verbindet (das kann eine TCP-Server-Software auf Ihrem PC oder ein weiterer Arduino sein, der als TCP-Server programmiert ist)
  • Arduino liest Daten von der seriellen RS422-Schnittstelle und sendet sie an den TCP-Server
  • Arduino liest Daten aus der TCP-Verbindung und sendet sie an die serielle RS422-Schnittstelle

Verdrahtungsdiagramm

  • Verdrahtungsdiagramm bei Verwendung von Hardware-Serial
Arduino TTL zu RS-422 Verdrahtungsdiagramm

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

  • Schaltplan bei Verwendung von Software-Serial
Arduino RS-422-zu-TTL-Verdrahtungsdiagramm

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

Arduino-Code für Hardware-Serial

/* * Dieser Arduino Code wurde von newbiely.de entwickelt * Dieser Arduino 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/arduino/arduino-rs422-to-wifi */ #include <WiFiS3.h> const char* WIFI_SSID = "YOUR_WIFI_SSID"; // CHANGE TO YOUR WIFI SSID const char* WIFI_PASSWORD = "YOUR_WIFI_PASSWORD"; // CHANGE TO YOUR WIFI PASSWORD const char* TCP_SERVER_ADDR = "192.168.0.26"; // CHANGE TO TCP SERVER'S IP ADDRESS const int TCP_SERVER_PORT = 1470; WiFiClient TCP_client; void setup() { Serial.begin(9600); Serial.println("Arduino: TCP CLIENT"); // check for the WiFi module: if (WiFi.status() == WL_NO_MODULE) { Serial.println("Communication with WiFi module failed!"); // don't continue while (true) ; } String fv = WiFi.firmwareVersion(); if (fv < WIFI_FIRMWARE_LATEST_VERSION) { Serial.println("Please upgrade the firmware"); } Serial.print("Attempting to connect to SSID: "); Serial.println(WIFI_SSID); // attempt to connect to WiFi network: while (WiFi.begin(WIFI_SSID, WIFI_PASSWORD) != WL_CONNECTED) { delay(10000); // wait 10 seconds for connection: } Serial.print("Connected to WiFi "); Serial.println(WIFI_SSID); // connect to TCP server if (TCP_client.connect(TCP_SERVER_ADDR, TCP_SERVER_PORT)) Serial.println("Connected to TCP server"); else Serial.println("Failed to connect to TCP server"); } void loop() { if (TCP_client.connected()) { // read data from TCP and send them to RS422 interface if (TCP_client.available()) { char c = TCP_client.read(); Serial.write(c); } // read data from RS422 interface and send them to TCP if (Serial.available()) { char c = Serial.read(); TCP_client.write(c); } } else { Serial.println("Connection is disconnected"); TCP_client.stop(); // reconnect to TCP server if (TCP_client.connect(TCP_SERVER_ADDR, TCP_SERVER_PORT)) { Serial.println("Reconnected to TCP server"); } else { Serial.println("Failed to reconnect to TCP server"); delay(1000); } } }

Arduino-Code für Software Serial

/* * Dieser Arduino Code wurde von newbiely.de entwickelt * Dieser Arduino 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/arduino/arduino-rs422-to-wifi */ #include <WiFiS3.h> #include <SoftwareSerial.h> // define the SoftwareSerial object and their pins SoftwareSerial rs422(6, 7); // RX: 6, TX: 7 const char* WIFI_SSID = "YOUR_WIFI_SSID"; // CHANGE TO YOUR WIFI SSID const char* WIFI_PASSWORD = "YOUR_WIFI_PASSWORD"; // CHANGE TO YOUR WIFI PASSWORD const char* TCP_SERVER_ADDR = "192.168.0.26"; // CHANGE TO TCP SERVER'S IP ADDRESS const int TCP_SERVER_PORT = 1470; WiFiClient TCP_client; void setup() { Serial.begin(9600); rs422.begin(9600); Serial.println("Arduino: TCP CLIENT"); // check for the WiFi module: if (WiFi.status() == WL_NO_MODULE) { Serial.println("Communication with WiFi module failed!"); // don't continue while (true) ; } String fv = WiFi.firmwareVersion(); if (fv < WIFI_FIRMWARE_LATEST_VERSION) { Serial.println("Please upgrade the firmware"); } Serial.print("Attempting to connect to SSID: "); Serial.println(WIFI_SSID); // attempt to connect to WiFi network: while (WiFi.begin(WIFI_SSID, WIFI_PASSWORD) != WL_CONNECTED) { delay(10000); // wait 10 seconds for connection: } Serial.print("Connected to WiFi "); Serial.println(WIFI_SSID); // connect to TCP server if (TCP_client.connect(TCP_SERVER_ADDR, TCP_SERVER_PORT)) Serial.println("Connected to TCP server"); else Serial.println("Failed to connect to TCP server"); } void loop() { if (TCP_client.connected()) { // read data from TCP and send them to RS422 interface if (TCP_client.available()) { char c = TCP_client.read(); rs422.write(c); } // read data from RS422 interface and send them to TCP if (rs422.available()) { char c = rs422.read(); TCP_client.write(c); } } else { Serial.println("Connection is disconnected"); TCP_client.stop(); // reconnect to TCP server if (TCP_client.connect(TCP_SERVER_ADDR, TCP_SERVER_PORT)) { Serial.println("Reconnected to TCP server"); } else { Serial.println("Failed to reconnect to TCP server"); delay(1000); } } }

Testen

Sie können einen Test durchführen, indem Sie Daten in den folgenden Abläufen senden:

  • Serielle Software (auf Ihrem PC) → RS-422 → Arduino → WLAN → TCP-Server-Software (auf Ihrem PC).
  • TCP-Server-Software (auf Ihrem PC) → WLAN → Arduino → RS-422 → Serielle Software (auf Ihrem PC).
Arduino RS-422-zu-PC-Kommunikation

Um dies zu tun, befolgen Sie die untenstehenden Schritte:

  • Wenn Sie Arduino Uno R4 zum ersten Mal verwenden, lesen Sie wie man die Umgebung für Arduino Uno R4 in der Arduino IDE einrichtet.
  • Verbinden Sie Arduino Uno R4 WiFi mit Ihrem PC mithilfe eines TTL-zu-RS422-Moduls und eines RS422-zu-USB-Kabels gemäß dem oben gezeigten Verdrahtungsdiagramm.
  • Installieren Sie ein serielles Terminalprogramm wie Tera Term oder PuTTY.
  • Installieren Sie eine TCP-Server-Software wie ezTerm.
  • Öffnen Sie das serielle Programm und konfigurieren Sie die seriellen Parameter (COM-Port, Baudrate...).
  • Öffnen Sie das TCP-Server-Programm und konfigurieren Sie es als TCP-Server, dann klicken Sie auf die Schaltfläche 'Listen'.
ezTerm TCP-Server
  • Öffnen Sie die Eingabeaufforderung auf Ihrem PC.
  • Finden Sie die IP-Adresse Ihres PCs, indem Sie den folgenden Befehl ausführen:
ipconfig
  • Die Ausgabe sieht wie unten aus:
Command Prompt
C:\WINDOWS\system32>ipconfig Windows IP Configuration Ethernet adapter: Subnet Mask . . . . . . . . . . . : 255.0.0.0 IPv4 Address. . . . . . . . . . . : 192.168.0.26 Subnet Mask . . . . . . . . . . . : 255.255.255.0 Default Gateway . . . . . . . . . :
  • Aktualisieren Sie die IP-Adresse des TCP-Servers (Ihres PCs) im Arduino-Code. Im obigen Beispiel: 192.168.0.26
  • Kompilieren und Hochladen des Codes auf das Arduino-Board, indem Sie in der Arduino IDE auf die Schaltfläche Upload klicken.
  • Geben Sie einige Daten im Serial-Programm ein, um sie über die serielle Schnittstelle an den Arduino zu senden.
  • Wenn es erfolgreich ist, sehen Sie die Echo-Daten in der TCP-Server-Software.
  • Geben Sie einige Daten im TCP-Server-Programm ein, um sie über TCP an den Arduino zu senden.
  • Wenn es erfolgreich ist, sehen Sie die Echo-Daten im Serial-Programm.
Arduino-Seriell zu TCP

Wenn Sie einen kommerziellen RS-422-zu-Ethernet-Konverter verwenden möchten, können Sie CSE-H55N2 Seriell-zu-Ethernet-Konverter kaufen

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.

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