Arduino Nano ESP32 - RS485

Este tutorial ensina como usar a comunicação RS485 com o ESP32. Em detalhes, vamos aprender os seguintes aspectos:

Sobre o Módulo TTL para RS485

Ao usar a comunicação serial no Arduino Nano ESP32 com funções como Serial.print(), Serial.read() e Serial.write(), a transmissão de dados acontece pelo pino TX, enquanto a recepção de dados ocorre pelo pino RX. Esses pinos operam em nível TTL, tratando sinais com alcance limitado. Portanto, para a comunicação serial a longas distâncias, é necessário converter o sinal TTL para padrões como RS232, RS485 ou RS422.

Neste tutorial, vamos nos aprofundar no uso do RS485 (também conhecido como RS-485) com o Arduino Nano ESP32, empregando um módulo TTL para RS485. Esse módulo facilita a conversão de sinais TTL em sinais RS485 e vice-versa, permitindo uma comunicação confiável a longas distâncias.

Pinagem

O módulo RS485 para TTL possui duas interfaces:

  • Interface TTL (conectada ao Arduino Nano ESP32):
    • Pino VCC: Este pino de alimentação deve ser conectado ao VCC (5V ou 3.3V).
    • Pino GND: Este pino de alimentação deve ser conectado ao GND (0V).
    • Pino RXD: Este pino de dados deve ser conectado a um pino TX do Arduino Nano ESP32.
    • Pino TXD: Este pino de dados deve ser conectado a um pino RX do Arduino Nano ESP32.
  • Interface RS485:
    • Pino D+ (A ou TR+): Este pino facilita a comunicação de dados.
    • Pino D- (B ou TR-): Este pino é utilizado para a transmissão de dados.
    • Pino GND: Embora opcional, é fortemente recomendado incluir este pino para reduzir a interferência de ruído, garantindo o desempenho ideal.
    RS-485 module Pinout
    image source: diyables.io

Diagrama de Ligação

The wiring diagram between Arduino Nano ESP32 and TTL to RS485

This image is created using Fritzing. Click to enlarge image

Como Programar o Arduino Nano ESP32 para usar o módulo RS485

  • Defina os pinos serial:
#define RX1PIN D2 #define TX1PIN D3
  • Inicialize a interface Serial:
Serial1.begin(9600, SERIAL_8N1, RX1PIN, TX1PIN); // RS232

Código Arduino Nano ESP32

/* * Este código de Arduino Nano ESP32 foi desenvolvido por pt.newbiely.com * Este código de Arduino Nano ESP32 é disponibilizado ao público sem nenhuma restrição. * Para tutoriais completos e diagramas de ligação, visite: * https://pt.newbiely.com/tutorials/arduino-nano-esp32/arduino-nano-esp32-rs485 */ #define RX1PIN D2 #define TX1PIN D3 void setup() { // start communication with baud rate 9600 Serial.begin(9600); // Serial Monitor Serial1.begin(9600, SERIAL_8N1, RX1PIN, TX1PIN); // RS485 // wait a moment to allow serial ports to initialize delay(100); } void loop() { // Check if there's data available on Serial if (Serial1.available()) { char data = Serial1.read(); // read the received character Serial1.print(data); // echo back to data to the sender Serial.print(data); // print the recived data to Serial Monitor } }

Testando

Você pode fazer um teste enviando dados do seu PC para o Arduino Nano ESP32 via RS-485 e vice-versa. Para isso, siga os passos abaixo:

  • Conecte o Arduino Nano ESP32 ao seu PC por meio de um cabo RS485 para USB, como abaixo:
Arduino Nano ESP32 RS485 to PC communication
  • Instale um programa de Terminal Serial, como o Tera Term ou o PuTTY
  • Abra o programa de Terminal Serial e configure os parâmetros Serial (porta COM, baurate...)
  • Digite alguns dados no Terminal Serial para enviá-los ao ESP32.
  • Se tudo der certo, você verá os dados de eco no Terminal Serial.

Vídeo

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