Conversor Serial para WiFi com Arduino

Neste tutorial, vamos aprender como usar o Arduino Uno R4 WiFi para criar um conversor Serial para WiFi. O Arduino lê dados da porta Serial e os envia a um servidor TCP localizado na mesma rede LAN ou remotamente na internet, e vice-versa. Além disso, conectando módulos RS232, RS485 ou RS422 ao Arduino, podemos criar conversores RS232 para WiFi, RS485 para WiFi e RS422 para WiFi.

Conversor RS232 para WiFi com Arduino

Neste tutorial, vamos aprender como criar um conversor Serial para WiFi de forma geral. Para cada tipo específico de interface Serial, vamos aprender nos outros tutoriais abaixo:

Esses passos vão permitir que você estabeleça pontes de comunicação versáteis entre dispositivos seriais e redes WiFi usando o Arduino.

Como Funciona

  • O Arduino se conecta a um dispositivo serial por meio de uma interface serial (TTL, RS232, RS485 ou RS422)
  • O Arduino funciona como um cliente TCP que se conecta a um servidor TCP (pode ser um software de servidor TCP no seu PC ou outro Arduino funcionando como servidor TCP)
  • O Arduino lê dados da interface serial e os envia ao servidor TCP
  • O Arduino lê dados da conexão TCP e os envia para a interface serial

Código Arduino

/* * Este código de Arduino foi desenvolvido por pt.newbiely.com * Este código de Arduino é disponibilizado ao público sem nenhuma restrição. * Para tutoriais completos e diagramas de ligação, visite: * https://pt.newbiely.com/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); } } }

Teste

Você pode fazer um teste enviando dados nos seguintes fluxos:

  • Serial Monitor (no seu PC) → Serial → Arduino → WiFi → Software de Servidor TCP (no seu PC).
  • Software de Servidor TCP (no seu PC) → WiFi → Arduino → Serial → Serial Monitor (no seu PC).
Comunicação serial do Arduino com o PC

Para isso, siga os passos abaixo:

  • Conecte o Arduino ao seu PC por meio de um cabo USB Type-C
  • Instale um programa de servidor TCP como o ezTerm
  • Abra o Serial Monitor
  • Abra o programa de servidor TCP, configure-o como TCP Server e então clique no botão Listen
Servidor TCP no ezTerm
  • Abra o Prompt de Comando no seu PC.
  • Descubra o endereço IP do seu PC executando o comando abaixo:
ipconfig
  • A saída será parecida com esta:
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 . . . . . . . . . :
  • Altere o endereço IP do seu servidor TCP (o seu PC) no código Arduino. No exemplo acima, ele está indicado por 192.168.0.26.
  • Compile e faça upload do código para a placa Arduino clicando no botão Upload na Arduino IDE.
  • Digite alguns dados no Serial Monitor para enviá-los ao Arduino pela Serial.
  • Se tudo funcionar corretamente, você verá os dados no software de servidor TCP.
  • Digite alguns dados no programa de servidor TCP para enviá-los ao Arduino por TCP.
  • Se der certo, você verá os dados no Serial Monitor.
Arduino Serial para TCP

Se você quiser usar um conversor Serial para Ethernet comercial, pode comprar os seguintes produtos comerciais:

※ NOSSAS MENSAGENS

  • Fique à vontade para compartilhar o link deste tutorial. Porém, por favor, não use nosso conteúdo em outros sites. Investimos muito esforço e tempo para criar este conteúdo, por favor respeite nosso trabalho!