Arduino RS485 zu WLAN

In diesem Leitfaden werden wir untersuchen, wie man den Arduino Uno R4 WiFi verwendet, um einen RS485-zu-WiFi-Konverter zu bauen. Mit dieser Einrichtung liest der Arduino Daten von einer seriellen RS485-Schnittstelle und überträgt sie an einen TCP-Server, entweder im selben lokalen Netzwerk (LAN) oder remote über das Internet. Er kann auch Daten vom TCP-Server empfangen und sie über die serielle RS485-Schnittstelle zurücksenden.

Diese Schritte ermöglichen es Ihnen, vielseitige Kommunikationsbrücken zwischen seriellen RS-485-Geräten und einem TCP/IP-Server mit Arduino zu erstellen.

Arduino RS-485-zu-WiFi-Konverter

Über RS485 und TCP

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

Wie der RS-485-zu-WiFi-Konverter funktioniert.

  • Arduino verbindet sich mit einem seriellen RS-485-Gerät über die RS-485-Schnittstelle
  • Arduino fungiert als TCP-Client, der sich mit einem TCP-Server verbindet (es kann sich um eine TCP-Server-Software auf Ihrem PC handeln oder um einen anderen Arduino, der als TCP-Server programmiert ist)
  • Arduino liest Daten von der seriellen RS-485-Schnittstelle und sendet sie an den TCP-Server
  • Arduino liest Daten aus der TCP-Verbindung und sendet sie an die serielle RS-485-Schnittstelle

Verdrahtungsdiagramm

  • Verdrahtungsdiagramm, wenn Hardware-Serial verwendet wird
Arduino TTL zu RS-485 Verdrahtungsdiagramm

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

  • Verdrahtungsdiagramm bei Verwendung von Software-Serial
Arduino RS-485 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-rs485-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 RS485 interface if (TCP_client.available()) { char c = TCP_client.read(); Serial.write(c); } // read data from RS485 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-rs485-to-wifi */ #include <WiFiS3.h> #include <SoftwareSerial.h> // define the SoftwareSerial object and their pins SoftwareSerial rs485(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); rs485.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 RS485 interface if (TCP_client.available()) { char c = TCP_client.read(); rs485.write(c); } // read data from RS485 interface and send them to TCP if (rs485.available()) { char c = rs485.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-485 → Arduino → WLAN → TCP-Server-Software (auf Ihrem PC).
  • TCP-Server-Software (auf Ihrem PC) → WLAN → Arduino → RS-485 → Serielle Software (auf Ihrem PC).
Arduino RS485-Kommunikation mit dem PC

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, indem Sie das TTL-zu-RS485-Modul und das RS485-zu-USB-Kabel wie im oben gezeigten Verdrahtungsdiagramm verwenden.
  • 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 folgt 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 laden Sie den Code auf das Arduino-Board, indem Sie auf die Schaltfläche Hochladen in der Arduino-IDE 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-485-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!