아두이노 나노 ESP32 - RS485 | Arduino Nano ESP32 - RS485

이 튜토리얼은 ESP32에서 RS485 통신을 사용하는 방법을 안내합니다. 구체적으로, 다음과 같은 내용을 배울 것입니다:

준비물

1×Arduino Nano ESP32 Amazon
1×USB Cable Type-C 쿠팡 | Amazon
1×TTL to RS485 Module Amazon
1×Jumper Wires Amazon
1×(Optional) RS485 to USB Cable Amazon
1×(Recommended) Screw Terminal Adapter for Arduino Nano 쿠팡 | Amazon
공개: 이 섹션에서 제공된 링크 중 일부는 제휴 링크입니다. 이 링크를 통해 구매한 경우 추가 비용없이 수수료를 받을 수 있습니다. 지원해 주셔서 감사합니다.

TTL에서 RS485 모듈에 관하여

아두이노 나노 ESP32에서 Serial.print(), Serial.read(), Serial.write()와 같은 함수를 사용하여 직렬 통신을 할 때, 데이터 전송은 TX 핀을 통해 이루어지고 데이터 수신은 RX 핀을 통해 발생합니다. 이 핀들은 TTL 레벨에서 작동하여 제한된 범위의 신호를 처리합니다. 따라서, 보다 긴 거리에 걸친 직렬 통신을 위해서는 TTL 신호를 RS232, RS485, RS422와 같은 표준으로 변환하는 것이 필요합니다.

이 튜토리얼에서는 TTL에서 RS485 모듈을 활용하여 아두이노 나노 ESP32와 함께 RS485(또는 RS-485로도 알려짐)의 활용에 대해 자세히 다룰 것입니다. 이 모듈은 TTL 신호를 RS485 신호로 변환하고 그 반대의 경우도 가능하게 하여, 장거리에서의 신뢰성 있는 통신을 가능하게 합니다.

핀배열

RS485에서 TTL 모듈은 두 가지 인터페이스를 특징으로 합니다:

TTL 인터페이스 (Arduino Nano ESP32에 연결됨):

  • VCC 핀: 이 전원 핀은 VCC(5V 또는 3.3V)에 연결되어야 합니다.
  • GND 핀: 이 전원 핀은 GND(0V)에 연결되어야 합니다.
  • RXD 핀: 이 데이터 핀은 Arduino Nano ESP32의 TX 핀에 연결되어야 합니다.
  • TXD 핀: 이 데이터 핀은 Arduino Nano ESP32의 RX 핀에 연결되어야 합니다.

RS485 인터페이스:

  • D+ (A 또는 TR+) 핀: 이 핀은 데이터 통신을 용이하게 합니다.
  • D- (B 또는 TR-) 핀: 이 핀은 데이터 전송에 사용됩니다.
  • GND 핀: 옵션일 수 있지만, 잡음 간섭을 줄이고 최적의 성능을 보장하기 위해 이 핀을 포함하는 것이 강력히 권장됩니다.
RS-485 module Pinout
image source: diyables.io

선연결

Arduino Nano ESP32 TTL to RS485 Wiring Diagram

이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.

아두이노 나노 ESP32를 RS485 모듈을 사용하도록 프로그래밍하는 방법

시리얼 핀 핀을 정의하다:

#define RX1PIN D2 #define TX1PIN D3

시리얼 인터페이스를 초기화합니다:

Serial1.begin(9600, SERIAL_8N1, RX1PIN, TX1PIN); // RS232을 시작한다.

RS485에서 오는 데이터를 읽으려면, 다음 함수들을 사용할 수 있습니다:

RS485에 데이터를 쓰려면, 다음 함수들을 사용할 수 있습니다:

그리고 Serial reference에서 RS485와 함께 사용할 수 있는 더 많은 함수들이 있습니다.

아두이노 나노 ESP32 코드

/* * 이 Arduino Nano ESP32 코드는 newbiely.kr 에서 개발되었습니다 * 이 Arduino Nano ESP32 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/arduino-nano-esp32/arduino-nano-esp32-rs485 */ #define RX1PIN D2 #define TX1PIN D3 void setup() { // 통신 시작, 보드 레이트 9600 Serial.begin(9600); // 시리얼 모니터 Serial1.begin(9600, SERIAL_8N1, RX1PIN, TX1PIN); // RS485 // 시리얼 포트 초기화를 위해 잠시 기다림 delay(100); } void loop() { // Serial에 데이터가 있는지 확인 if (Serial1.available()) { char data = Serial1.read(); // 받은 문자 읽기 Serial1.print(data); // 데이터를 보낸 곳으로 에코백 Serial.print(data); // 받은 데이터를 시리얼 모니터에 출력 } }

테스트 중입니다

아래 단계를 따라 PC에서 아두이노 나노 ESP32로 RS-485를 통해 데이터를 보내어 테스트를 할 수 있고, 그 반대의 경우도 마찬가지입니다:

아래와 같이 RS485-to-USB 케이블을 사용하여 Arduino Nano ESP32를 PC에 연결하세요:

Arduino Nano ESP32 RS485 to PC communication
  • Tera Term 또는 PuTTY와 같은 시리얼 터미널 프로그램을 설치하세요.
  • 시리얼 터미널 프로그램을 열고 시리얼 매개변수(COM 포트, 보레이트 등)를 구성하세요.
  • 시리얼 터미널에서 일부 데이터를 입력하여 ESP32로 전송하세요.
  • 성공하면, 시리얼 터미널에서 에코 데이터를 볼 수 있습니다.

동영상

비디오 제작은 시간이 많이 걸리는 작업입니다. 비디오 튜토리얼이 학습에 도움이 되었다면, YouTube 채널 을 구독하여 알려 주시기 바랍니다. 비디오에 대한 높은 수요가 있다면, 비디오를 만들기 위해 노력하겠습니다.

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