ESP32 C3 Super Mini RS232
RS232를 사용하면 ESP32 C3 Super Mini가 긴 케이블을 통해 오래된 시리얼 장치와 통신할 수 있습니다. 작은 TTL to RS232 모듈이 전압 변환을 대신 처리해 줍니다. 이 튜토리얼에서는 배선과 코드를 간단한 단계로 보여줍니다.
이 튜토리얼에서 배울 내용:
- TTL to RS232 모듈이 무엇이며 왜 필요한지
- 모듈을 ESP32 C3 Super Mini에 배선하는 방법
- 시리얼 모니터가 계속 작동하도록 두 번째 하드웨어 시리얼 포트(UART1)를 사용하는 방법
- RS232에서 데이터를 읽도록 ESP32 C3 Super Mini를 프로그래밍하는 방법
- RS232로 데이터를 보내도록 ESP32 C3 Super Mini를 프로그래밍하는 방법

필요한 하드웨어
| 1 | × | ESP32 C3 Super Mini | 아마존 | |
| 1 | × | USB 케이블 타입-A to 타입-C (USB-A PC용) | 쿠팡 | 아마존 | |
| 1 | × | USB 케이블 타입-C to 타입-C (USB-C PC용) | 아마존 | |
| 1 | × | TTL-RS232 변환 모듈 | 쿠팡 | 아마존 | |
| 1 | × | (또는) MAX3232 RS232 to TTL Module | 아마존 | |
| 1 | × | 점퍼케이블 | 쿠팡 | 아마존 | |
| 1 | × | 브레드보드 | 쿠팡 | 아마존 | |
| 1 | × | (옵션) USB to RS232 Cable | 쿠팡 | 아마존 | |
| 1 | × | (옵션) USB to RS232 Converter | 쿠팡 | 아마존 |
TTL to RS232 모듈 정보
TTL to RS232 모듈은 ESP32 C3 Super Mini의 TTL 신호를 RS232 신호로, 그리고 그 반대로 변환하는 작은 보드입니다.
필요한 이유:
- ESP32 C3 Super Mini의 TX와 RX 핀은 TTL 레벨(0V와 3.3V)을 사용합니다
- TTL 신호는 약해서 멀리 전달될 수 없습니다
- RS232는 훨씬 큰 전압을 사용하므로 긴 케이블에서도 작동합니다
- 모듈은 보드와 시리얼 장치 사이에 위치하여 양방향으로 변환합니다
주요 기능:
- 양방향 변환: TTL에서 RS232로, RS232에서 TTL로
- 3.3V 로직에서 작동하는 MAX3232 계열 칩 사용
- RS232 쪽에 DB9 암 커넥터
- 간단한 4핀 TTL 쪽: VCC, GND, RXD, TXD
- 코드 라이브러리가 필요 없음 - 단순한 하드웨어 변환기입니다
기술 사양:
- 공급 전압: 3.3V 또는 5V
- TTL 쪽 로직 레벨: VCC를 따르므로 이 보드에는 3.3V를 사용하세요
- 일반적인 보드레이트: 9600 (115200까지도 잘 작동)
- 데이터 형식: 8 데이터 비트, 패리티 없음, 1 정지 비트 (SERIAL_8N1)
- 케이블 길이: 9600 보드레이트에서 약 15m까지
WARNING
RS232의 원시 전압은 약 +/-12V까지 변동합니다. DB9 라인을 GPIO 핀에 직접 연결하지 마세요 - ESP32 C3 Super Mini가 망가집니다. 반드시 MAX3232 계열 레벨 변환 모듈을 사용하고, 로직이 보드와 일치하도록 TTL 쪽 전원을 3.3V 핀에서 공급해야 합니다.
핀아웃
TTL to RS232 모듈에는 두 쪽이 있습니다: 하나는 ESP32 C3 Super Mini용이고 다른 하나는 시리얼 장치용입니다.
- VCC: 전원 핀 - ESP32 C3 Super Mini의 3.3V 핀에 연결
- GND: 접지 핀(0V) - GND에 연결
- RXD: 모듈의 데이터 입력 - ESP32 C3 Super Mini의 TX 핀에 연결
- TXD: 모듈의 데이터 출력 - ESP32 C3 Super Mini의 RX 핀에 연결
- DB9 커넥터: RS232 쪽 - 시리얼 장치로 연결되는 암 D-Sub 플러그

배선 다이어그램
모듈을 GPIO6와 GPIO7에 연결하고, 시리얼 모니터 핀은 비워 두세요.
- 참고: GPIO20과 GPIO21은 시리얼 모니터가 사용하는 UART입니다. 모듈에 사용하지 마세요.
- 참고: 모듈 전원은 3.3V로만 공급하세요. TTL 쪽에 5V를 공급하면 GPIO 핀에 5V가 들어갈 수 있습니다.
- 참고: TX는 RXD로, RX는 TXD로 연결합니다. 라인은 항상 교차됩니다.
- 참고: 모듈의 GND와 보드의 GND는 반드시 연결해야 합니다. 그렇지 않으면 데이터가 노이즈가 됩니다.
| TTL to RS232 모듈 핀 | ESP32 C3 Super Mini 핀 |
|---|---|
| VCC | 3.3V |
| GND | GND |
| RXD | GPIO6 (UART1의 TX) |
| TXD | GPIO7 (UART1의 RX) |

이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.
RS232 모듈을 사용하도록 ESP32 C3 Super Mini를 프로그래밍하는 방법
ESP32 C3 Super Mini에는 하드웨어 UART가 여러 개 있으므로 모듈은 자체 포트를 사용합니다.
- 중요: ESP32 C3 Super Mini에는 SoftwareSerial이 없습니다. 대신 HardwareSerial을 사용하세요.
- 이유: UART0(GPIO20 / GPIO21)은 이미 USB 시리얼 모니터가 사용하고 있습니다.
- 해결책: HardwareSerial rs232Serial(1);로 두 번째 포트를 만들고 비어 있는 핀을 할당하세요.
- 헤더를 포함하고 시리얼 핀을 정의합니다:
- 두 개의 시리얼 인터페이스를 초기화합니다:
※ 주의:
두 보드레이트는 의도적으로 다릅니다. 115200은 PC의 시리얼 모니터용입니다. 9600은 RS232 장치의 속도입니다. 두 숫자 모두 해당 링크의 상대편과 일치해야 합니다.
- RS232에서 들어오는 데이터를 읽으려면 다음 함수를 사용할 수 있습니다:
- RS232로 데이터를 쓰려면 다음 함수를 사용할 수 있습니다:
- 각 함수를 rs232Serial에서 호출하세요. 예를 들어 rs232Serial.read() 또는 rs232Serial.println("Hello")와 같이 사용합니다.
- RS232와 함께 사용할 수 있는 더 많은 함수는 Serial 레퍼런스에서 확인하세요
RS232용 ESP32 C3 Super Mini 코드
이 스케치는 RS232로 받은 모든 문자를 보낸 쪽으로 다시 돌려보내고(에코), 시리얼 모니터에도 출력합니다.
이 코드가 하는 일:
- 115200 보드레이트로 시리얼 모니터를 엽니다
- GPIO7(RX)과 GPIO6(TX)에서 9600 보드레이트로 UART1을 엽니다
- RS232 쪽에서 새 문자가 도착했는지 확인합니다
- 그 문자를 RS232 장치로 바로 다시 보냅니다
- 같은 문자를 시리얼 모니터에 출력하여 확인할 수 있게 합니다
빠른 단계
- ESP32 C3 Super Mini가 처음이신가요? 먼저 ESP32 C3 슈퍼 미니 - 시작하기 튜토리얼을 완료하여 개발 환경을 설정하세요.
- 모듈 배선: 위의 표를 따르세요 - VCC는 3.3V, GND는 GND, RXD는 GPIO6, TXD는 GPIO7
- 보드 연결: USB Type-C 케이블로 ESP32 C3 Super Mini를 PC에 연결합니다
- IDE 열기: 위의 코드를 복사하여 Arduino IDE에 붙여넣습니다
- 보드 선택: Tools > Board에서 ESP32 C3 Super Mini가 선택되어 있는지 확인하세요.
- 포트 선택: Tools > Port에서 올바른 COM 포트를 선택합니다
- 코드 업로드: Upload 버튼을 클릭하고 "Done uploading"이 나타날 때까지 기다립니다
- 시리얼 모니터 열기: 보드레이트를 115200으로 설정합니다
- 텍스트 보내기: 시리얼 터미널 프로그램에 입력하고 표시되는 것을 확인합니다
- 전문가 팁: 아무것도 보이지 않으면 먼저 RXD와 TXD 선을 바꿔 보세요 - 교차 연결 실수가 가장 흔한 실수입니다.
테스트
RS232를 통해 PC와 ESP32 C3 Super Mini 사이에서 양방향으로 데이터가 이동하는 것을 테스트할 수 있습니다.
- 아래 이미지처럼 RS232-to-USB 케이블을 사용하여 모듈을 PC에 연결합니다:

- 시리얼 터미널 프로그램을 열고 시리얼 파라미터(COM 포트, 9600 보드레이트, 8N1)를 설정합니다.
- 시리얼 터미널에 데이터를 입력하여 ESP32 C3 Super Mini로 보냅니다.
- 테스트가 성공하면 시리얼 터미널에서 같은 데이터가 에코되어 돌아오는 것을 볼 수 있습니다.
- 동시에 Arduino IDE 시리얼 모니터에는 보드가 받은 내용이 표시됩니다.
시리얼 모니터 출력
RS232 터미널에 입력하는 동안 Arduino IDE 시리얼 모니터에 표시되는 내용은 다음과 같습니다.
응용 및 프로젝트 아이디어
RS232는 여전히 기계와 실험 장비 곳곳에서 사용되므로 이 기술은 매우 유용합니다.
- 산업용 기계 리더: PLC나 CNC 기계에서 상태 메시지를 읽습니다
- 바코드 스캐너 로거: RS232 바코드 건에서 코드를 받아 저장합니다
- 전자저울 디스플레이: 실험실 저울에서 무게를 읽어 OLED에 표시합니다
- GPS 수신기 연결: 오래된 RS232 GPS 장치에서 NMEA 데이터를 받습니다
- 장거리 센서 연결: 시리얼 데이터를 손실 없이 15m 전송합니다
- 레거시 장치 브리지: RS232 데이터를 WiFi로 전달하여 최신 앱에서 사용할 수 있게 합니다
도전 과제
ESP32 C3 Super Mini에서 RS232에 대해 더 배우려면 다음과 같은 작은 개선을 시도해 보세요.
- 쉬움: 보드와 터미널 모두에서 RS232 보드레이트를 19200으로 변경합니다
- 쉬움: 1초마다 "Hello from ESP32 C3 Super Mini" 메시지를 보냅니다
- 중간: 한 문자씩이 아니라 readStringUntil('\n')으로 한 줄 전체를 읽습니다
- 중간: 바이트가 도착할 때마다 GPIO8의 내장 LED를 잠깐 켭니다
- 고급: LED ON과 LED OFF 같은 간단한 텍스트 명령에 보드가 응답하도록 만듭니다
- 고급: RS232에서 받은 모든 내용을 WiFi를 통해 웹 페이지로 전달합니다