ESP32 C3 Super Mini RS485
RS485는 강력한 노이즈 보호 기능으로 긴 전선을 통해 데이터를 보내는 시리얼 표준입니다. 저렴한 TTL to RS485 모듈만 있으면 ESP32 C3 Super Mini가 수백 미터 떨어진 장치와 통신할 수 있습니다. 이 튜토리얼에서는 ESP32 C3 Super Mini에서 RS485 통신을 배선하고 프로그래밍하는 방법을 보여줍니다.
이 튜토리얼에서 배울 내용:
- RS485가 무엇이며 왜 일반 TTL 시리얼보다 나은지
- TTL to RS485 모듈을 ESP32 C3 Super Mini에 연결하는 방법
- RS485에서 데이터를 읽도록 ESP32 C3 Super Mini를 프로그래밍하는 방법
- RS485로 데이터를 보내도록 ESP32 C3 Super Mini를 프로그래밍하는 방법
- RS485를 통해 PC에서 ESP32 C3 Super Mini로, 그리고 다시 PC로 데이터를 보내는 방법

필요한 하드웨어
| 1 | × | ESP32 C3 Super Mini | 아마존 | |
| 1 | × | USB 케이블 타입-A to 타입-C (USB-A PC용) | 쿠팡 | 아마존 | |
| 1 | × | USB 케이블 타입-C to 타입-C (USB-C PC용) | 아마존 | |
| 1 | × | TTL-RS485 변환 모듈 | 쿠팡 | 아마존 | |
| 1 | × | (또는) MAX485 RS485 to TTL Module (NOT soldered) | 아마존 | |
| 1 | × | (또는) MAX485 RS485 to TTL Module *(soldered) | 아마존 | |
| 1 | × | 점퍼케이블 | 쿠팡 | 아마존 | |
| 1 | × | (옵션) USB-RS485 변환기 | 쿠팡 | 아마존 | |
| 1 | × | (옵션) USB to RS485 Cable | 아마존 |
TTL to RS485 모듈 정보
TTL to RS485 모듈은 ESP32 C3 Super Mini의 TTL 시리얼 신호를 RS485 신호로, 그리고 그 반대로 바꿔주는 작은 보드입니다.
ESP32 C3 Super Mini는 TX 핀으로 시리얼 데이터를 보내고 RX 핀으로 받습니다. 이 핀들은 TTL 레벨을 사용하며, 짧은 전선에서만 작동합니다. 긴 케이블을 사용하려면 TTL을 RS232, RS485 또는 RS422 같은 더 강한 표준으로 변환해야 합니다.
주요 기능:
- 장거리: 좋은 케이블에서 약 1200미터까지 작동합니다
- 노이즈 방지: 반대 신호를 가진 두 개의 전선을 사용하므로 노이즈가 상쇄됩니다
- 다중 장치: 여러 장치가 같은 전선 쌍을 공유할 수 있습니다
- 사용이 간단함: 일반 시리얼 코드로 작동하며 특별한 라이브러리가 필요 없습니다
- 3.3V 호환: 대부분의 모듈은 ESP32 C3 Super Mini의 3.3V 핀에서 잘 작동합니다
기술 사양:
- 일반적인 칩: MAX13487, MAX3485, SP3485, MAX485
- 공급 전압: 모듈에 따라 3.3V 또는 5V
- 로직 레벨: ESP32 C3 Super Mini에는 반드시 3.3V여야 합니다
- 케이블 유형: 트위스트 페어 한 쌍과 GND 선 하나
- 종단: 긴 케이블의 양쪽 끝에 각각 120옴 저항
- 일반적인 속도: 9600 ~ 115200 보드레이트
WARNING
ESP32 C3 Super Mini는 3.3V 보드입니다. 3.3V 로직의 TTL to RS485 모듈만 사용하거나 레벨 시프터를 추가하세요. 5V TXD/RO 출력을 GPIO 핀에 직접 보내면 칩이 손상될 수 있습니다. RS485 쪽에서는 항상 A와 B를 케이블의 같은 트위스트 페어로 연결하고, A는 A에, B는 B에 연결하며, 긴 케이블의 양쪽 끝에 120옴 저항을 다세요.
핀아웃
RS485 to TTL 모듈에는 두 쪽이 있습니다: 보드용 TTL 쪽과 긴 케이블용 RS485 쪽입니다.
- VCC 핀: 전원 입력, ESP32 C3 Super Mini의 3.3V에 연결
- GND 핀: 접지(0V), ESP32 C3 Super Mini와 공유
- RXD 핀 (DI): 모듈의 데이터 입력, ESP32 C3 Super Mini의 TX 핀에 연결
- TXD 핀 (RO): 모듈의 데이터 출력, ESP32 C3 Super Mini의 RX 핀에 연결
- D+ 핀 (A 또는 TR+): RS485 쌍의 한쪽 전선, 데이터 통신에 사용
- D- 핀 (B 또는 TR-): RS485 쌍의 다른 쪽 전선, 데이터 통신에 사용
- GND 핀 (RS485 쪽): 선택 사항이지만 강력히 권장, 노이즈 문제를 줄여줍니다
- DE/RE 핀 (일부 모듈에만 있음): 방향 제어, 송신 시 HIGH, 수신 시 LOW
※ 주의:
MAX13487 계열 같은 많은 모듈은 스스로 방향을 전환하므로 DE/RE 핀이 없습니다. 모듈에 DE/RE 핀이 있다면 ESP32 C3 Super Mini의 GPIO5에 연결하고, 송신 전에 HIGH로, 수신할 때는 LOW로 설정하세요.

배선 다이어그램
모듈의 TTL 쪽을 ESP32 C3 Super Mini에 연결하고, RS485 쪽을 긴 케이블에 연결합니다.
- 참고: 3.3V 로직만 사용하세요. GPIO 핀에 5V 신호를 절대 넣지 마세요.
- 참고: GPIO20과 GPIO21은 시리얼 모니터가 사용하는 UART이므로 비워 두세요.
- 참고: 모듈의 RXD는 보드의 TX 핀으로, TXD는 RX 핀으로 연결합니다. 서로 교차됩니다.
- 참고: GPIO8이나 GPIO9는 사용하지 마세요 — 부트 스트래핑 핀입니다.
- 참고: 모듈과 ESP32 C3 Super Mini는 GND를 공유해야 합니다. 그렇지 않으면 아무것도 작동하지 않습니다.

이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.
| RS485 모듈 핀 | ESP32 C3 Super Mini 핀 |
|---|---|
| VCC | 3.3V |
| GND | GND |
| RXD (DI) | GPIO6 |
| TXD (RO) | GPIO7 |
| DE/RE (모듈에 있는 경우에만) | GPIO5 |
RS485 모듈을 사용하도록 ESP32 C3 Super Mini를 프로그래밍하는 방법
ESP32 C3 Super Mini에는 하드웨어 UART가 여러 개 있으므로 RS485에는 두 번째 UART를 사용합니다.
※ 주의:
ESP32 C3 Super Mini에는 SoftwareSerial 라이브러리가 없습니다. 대신 내장된 HardwareSerial 클래스를 사용하세요. 더 빠르고 안정적이며 추가 CPU 시간을 사용하지 않습니다. GPIO20과 GPIO21은 시리얼 모니터에 필요한 첫 번째 UART에 속하므로 RS485 모듈은 별도의 핀을 사용합니다.
- RS485 시리얼 핀을 정의합니다:
- 두 번째 하드웨어 시리얼 포트를 만듭니다:
- 시리얼 모니터와 RS485 포트를 시작합니다:
- RS485에서 들어오는 데이터를 읽으려면 다음 함수를 사용할 수 있습니다:
- RS485로 데이터를 쓰려면 다음 함수를 사용할 수 있습니다:
- 직접 만든 포트 이름으로 호출하세요. 예를 들어 rs485Serial.read()와 rs485Serial.print()처럼 사용합니다.
- RS485와 함께 사용할 수 있는 더 많은 함수는 Serial 레퍼런스에서 확인하세요
ESP32 C3 Super Mini 코드 - RS485
이 스케치는 RS485에서 받은 모든 문자를 에코하고 시리얼 모니터에도 출력합니다.
이 코드가 하는 일:
- 보드 자체 UART에서 115200 보드레이트로 시리얼 모니터를 시작합니다
- GPIO7(RX)과 GPIO6(TX)에서 9600 보드레이트로 RS485용 두 번째 하드웨어 UART를 시작합니다
- RS485에서 새 문자가 도착했는지 계속 확인합니다
- 같은 문자를 RS485 송신자에게 다시 보냅니다. 이는 간단한 에코 테스트입니다
- 문자를 시리얼 모니터에 출력하여 PC에서 확인할 수 있게 합니다
빠른 단계
- ESP32 C3 Super Mini가 처음이신가요? 먼저 ESP32 C3 슈퍼 미니 - 시작하기 튜토리얼을 완료하여 개발 환경을 설정하세요.
- 부품 배선: 위의 배선 다이어그램을 따라 RS485 모듈을 ESP32 C3 Super Mini에 연결합니다.
- 보드 연결: USB Type-C 케이블로 ESP32 C3 Super Mini를 PC에 연결합니다.
- Arduino IDE 열기: Arduino IDE 소프트웨어를 실행합니다.
- 보드 선택: Tools > Board에서 ESP32 C3 Super Mini가 선택되어 있는지 확인하세요.
- 포트 선택: Tools > Port에서 ESP32 C3 Super Mini의 COM 포트를 선택합니다.
- 코드 업로드: 위의 코드를 복사하여 Arduino IDE에 붙여넣은 다음 Upload 버튼을 클릭합니다.
- 시리얼 모니터 열기: 보드레이트를 115200으로 설정합니다.
- 데이터 보내기: 다른 RS485 장치에서 몇 개의 문자를 보냅니다.
- 결과 확인: 시리얼 모니터에 문자가 표시되는 것을 확인합니다.
- 전문가 팁: 아무것도 보이지 않으면 A와 B 선을 바꿔 보세요. 쌍을 교차 연결하는 것이 RS485에서 가장 흔한 실수입니다.
라인별 코드 설명
위의 ESP32 C3 Super Mini 코드에는 라인별 설명이 포함되어 있습니다. 코드의 주석을 읽어주세요!
테스트
RS-485를 통해 PC에서 ESP32 C3 Super Mini로 데이터를 보내고 다시 돌려받아 설정을 테스트할 수 있습니다. 다음 단계를 따르세요:
- 하드웨어 연결: 아래와 같이 RS485-to-USB 케이블로 ESP32 C3 Super Mini를 PC에 연결합니다.
- 파라미터 설정: 터미널을 열고 COM 포트와 보드레이트 9600을 선택합니다.
- 데이터 입력: 터미널에서 ESP32 C3 Super Mini로 몇 개의 문자를 보냅니다.
- 에코 확인: 작동하면 같은 문자가 터미널로 돌아옵니다.
- 보드 쪽 확인: 같은 문자가 115200 보드레이트의 Arduino IDE 시리얼 모니터에도 표시됩니다.

※ 주의:
RS485 링크는 9600 보드레이트로, 시리얼 모니터는 115200 보드레이트로 작동합니다. 두 숫자는 의도적으로 다르며, 문제없습니다. RS485 케이블의 양쪽 끝이 같은 속도를 사용하는지만 확인하세요.
응용/프로젝트 아이디어
ESP32 C3 Super Mini에서 RS485를 사용하는 간단한 방법은 다음과 같습니다.
- 장거리 센서: 500미터 떨어진 곳에 설치된 온도 센서를 읽습니다.
- Modbus RTU 마스터: Modbus를 사용하는 산업용 계측기와 모터 드라이브와 통신합니다.
- 다중 보드 네트워크: 여러 ESP32 C3 Super Mini 보드를 하나의 전선 쌍에 연결합니다.
- 농장 모니터링: 밭의 토양 및 날씨 데이터를 집으로 보냅니다.
- 출입 통제: 큰 건물 곳곳에 설치된 RFID 리더를 읽습니다.
- 태양광 인버터 로거: 인버터에서 에너지 데이터를 가져와 온라인에 게시합니다.
도전 과제
ESP32 C3 Super Mini에서 RS485를 더 깊이 다루려면 다음 아이디어를 시도해 보세요.
- 쉬움: 문자가 도착할 때마다 GPIO8의 내장 LED를 깜빡입니다.
- 쉬움: 양쪽 모두 RS485 속도를 9600에서 19200으로 변경합니다.
- 중간: 한 문자씩이 아니라 rs485Serial.readStringUntil()로 한 줄 전체를 읽습니다.
- 중간: GPIO5에 DE/RE 핀을 추가하고 직접 작성한 코드로 방향을 전환합니다.
- 고급: 각 보드에 주소를 부여하여 해당 보드만 응답하도록 만듭니다.
- 고급: Wi-Fi를 통해 RS485 데이터를 웹 페이지로 보냅니다.