Arduino RS232 zu WiFi

In diesem Tutorial lernen wir, wie man den Arduino Uno R4 WiFi verwendet, um einen Konverter zu erstellen, der RS-232-Geräte mit WLAN verbindet. Mit diesem Aufbau wird der Arduino Daten von einer seriellen RS-232-Schnittstelle lesen und sie an einen TCP-Server senden, entweder im selben lokalen Netzwerk oder über das Internet. Er kann auch Daten vom TCP-Server empfangen und sie wieder über die serielle RS-232-Schnittstelle zurücksenden.

Wenn Sie diese Schritte befolgen, helfen Ihnen diese Schritte dabei, flexible Kommunikationsbrücken zwischen seriellen RS-232-Geräten und TCP/IP-Servern mit Arduino einzurichten.

Arduino RS-232 zu WLAN-Konverter

Über RS-232 und TCP

Wenn Sie nicht wissen, wie man RS-232- und TCP-Kommunikation mit Arduino verwendet, lernen Sie in den folgenden Tutorials mehr darüber:

Wie der RS232-zu-WiFi-Konverter funktioniert

  • Arduino verbindet sich über die RS-232-Schnittstelle mit einem seriellen Gerät.
  • Arduino verhält sich wie ein TCP-Client und verbindet sich mit einem TCP-Server. Der TCP-Server könnte eine Software sein, die auf Ihrem Computer läuft, oder ein weiterer Arduino, der so programmiert ist, als TCP-Server zu fungieren.
  • Arduino liest Informationen von der RS-232-Schnittstelle aus und sendet sie an den TCP-Server.
  • Arduino liest außerdem Daten aus der TCP-Verbindung und sendet sie zurück über die RS-232-Schnittstelle.

Verdrahtungsdiagramm

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

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

  • Schaltplan bei Verwendung von Software-Serial
Arduino RS-232 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-rs232-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 RS232 interface if (TCP_client.available()) { char c = TCP_client.read(); Serial.write(c); } // read data from RS232 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 SoftwareSerial

/* * 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-rs232-to-wifi */ #include <WiFiS3.h> #include <SoftwareSerial.h> SoftwareSerial rs232(7, 6); // RX: 7, TX: 6 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); rs232.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 RS232 interface if (TCP_client.available()) { char c = TCP_client.read(); rs232.write(c); } // read data from RS232 interface and send them to TCP if (rs232.available()) { char c = rs232.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); } } }

Tests

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

  • Serielle Software (auf Ihrem PC) → RS-232 → Arduino → WLAN → TCP-Server-Software (auf Ihrem PC).
  • TCP-Server-Software (auf Ihrem PC) → WLAN → Arduino → RS-232 → Serielle Software (auf Ihrem PC).
Arduino RS-232-Kommunikation mit dem PC

Um es zu tun, folgen Sie den untenstehenden Schritten:

  • Falls dies das erste Mal ist, dass Sie Arduino Uno R4 verwenden, siehe wie man die Umgebung für Arduino Uno R4 in der Arduino IDE einrichtet.
  • Verbinden Sie den Arduino Uno R4 WiFi über ein TTL-zu-RS232-Modul und ein RS232-zu-USB-Kabel mit Ihrem PC, wie im 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, und klicken Sie dann auf die Schaltfläche 'Listen'.
ezTerm TCP-Server
  • Öffnen Sie die Eingabeaufforderung auf Ihrem PC.
  • Finden Sie die IP-Adresse Ihres PCs heraus, indem Sie den folgenden Befehl ausführen:
ipconfig
  • Die Ausgabe sieht unten so 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 (Ihren PC) im Arduino-Code. Im obigen Beispiel: 192.168.0.26
  • Kompilieren und Code auf das Arduino-Board hochladen, indem Sie in der Arduino-IDE auf die Schaltfläche Hochladen klicken.
  • Geben Sie einige Daten aus dem Serial-Programm ein, um sie über Serial an den Arduino zu senden.
  • Wenn es erfolgreich ist, sehen Sie die Echo-Daten in der TCP-Server-Software.
  • Geben Sie einige Daten aus dem 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-232-zu-Ethernet-Konverter verwenden möchten, können Sie CSE-H53N Serial To Ethernet Converter 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!