Convertisseur série Arduino vers WiFi

Dans ce tutoriel, nous apprendrons à utiliser l'Arduino Uno R4 WiFi pour créer un convertisseur Série à WiFi. L'Arduino lit les données provenant du port Série et les envoie à un serveur TCP situé soit sur le même réseau LAN, soit à distance sur Internet, et vice versa. De plus, en connectant des modules RS232, RS485 ou RS422 à l'Arduino, nous pouvons créer des convertisseurs RS232 à WiFi, RS485 à WiFi et RS422 à WiFi.

Convertisseur Arduino RS232 vers WiFi

Dans ce tutoriel, nous apprendrons comment créer un convertisseur de série à WiFi en général. Pour un type spécifique d'interface série, nous apprendrons dans d'autres tutoriels ci-dessous :

Ces étapes vous permettront de créer des passerelles de communication polyvalentes entre des dispositifs série et des réseaux WiFi en utilisant Arduino.

Préparation du matériel

1×Arduino UNO R4 WiFi
1×USB Cable Type-C
1×(Optional) Jumper Wires
1×(Optional) 9V Power Adapter for Arduino
1×(Recommended) Screw Terminal Block Shield for Arduino Uno
1×(Optional) Transparent Acrylic Enclosure For Arduino Uno

Or you can buy the following sensor kits:

1×DIYables Sensor Kit (30 sensors/displays)
1×DIYables Sensor Kit (18 sensors/displays)
Divulgation : Certains des liens fournis dans cette section sont des liens affiliés Amazon. Nous pouvons recevoir une commission pour tout achat effectué via ces liens, sans coût supplémentaire pour vous. Nous vous remercions de votre soutien.

Comment ça marche

  • Arduino se connecte à un appareil série via une interface série (TTL, RS232, RS485 ou RS422)
  • Arduino fonctionne comme un client TCP qui se connecte à un serveur TCP (peut être un logiciel serveur TCP sur votre PC ou un autre serveur TCP Arduino)
  • Arduino lit les données de l'interface série et les envoie au serveur TCP
  • Arduino lit les données de la connexion TCP et les envoie à l'interface série

Code Arduino

/* * Ce code Arduino a été développé par newbiely.fr * Ce code Arduino est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/tutorials/arduino/arduino-serial-to-wifi-converter */ #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 Serial interface if (TCP_client.available()) { char c = TCP_client.read(); Serial.write(c); } // read data from Serial 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); } } }

Test

Vous pouvez effectuer un test en envoyant des données dans les flux suivants :

  • Moniteur série (sur votre PC) → Série → Arduino → WiFi → Logiciel de serveur TCP (sur votre PC).
  • Logiciel de serveur TCP (sur votre PC) → WiFi → Arduino → Série → Moniteur série (sur votre PC).
Communication série Arduino vers PC

Pour ce faire, suivez les étapes ci-dessous :

  • Connectez Arduino à votre PC via un câble USB Type-C
  • Installez un programme de serveur TCP comme ezTerm
  • Ouvrez le moniteur série
  • Ouvrez le programme serveur TCP et configurez-le comme serveur TCP, puis cliquez sur le bouton Écouter
Serveur TCP ezTerm
  • Ouvrez l'invite de commande sur votre PC.
  • Trouvez l'adresse IP de votre PC en exécutant la commande ci-dessous :
ipconfig
  • La sortie ressemble à ce qui suit :
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 . . . . . . . . . :
  • Changez l'adresse IP de votre serveur TCP (votre PC) dans le code Arduino. Dans l'exemple ci-dessus, elle est indiquée par 192.168.0.26.
  • Compilez et téléchargez le code sur la carte Arduino en cliquant sur le bouton Upload dans l'IDE Arduino.
  • Tapez des données dans le moniteur série pour les envoyer à l'Arduino via série.
  • Si tout fonctionne correctement, vous verrez les données sur le logiciel du serveur TCP.
  • Tapez des données dans le programme du serveur TCP pour les envoyer à l'Arduino via TCP.
  • Si cela réussit, vous verrez les données dans le moniteur série.
Arduino série vers TCP

Si vous souhaitez utiliser un convertisseur commercial Série-vers-Ethernet, vous pouvez acheter les produits commerciaux suivants :

※ OUR MESSAGES

  • Please feel free to share the link of this tutorial. However, Please do not use our content on any other websites. We invested a lot of effort and time to create the content, please respect our work!