ESP32 C3 Super Mini RS232

RS232를 사용하면 ESP32 C3 Super Mini가 긴 케이블을 통해 오래된 시리얼 장치와 통신할 수 있습니다. 작은 TTL to RS232 모듈이 전압 변환을 대신 처리해 줍니다. 이 튜토리얼에서는 배선과 코드를 간단한 단계로 보여줍니다.

이 튜토리얼에서 배울 내용:

ESP32 C3 Super Mini - rs232

필요한 하드웨어

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 플러그
rs232 핀아웃

배선 다이어그램

모듈을 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)
ESP32 C3 Super Mini ttl to rs232 배선 다이어그램

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

RS232 모듈을 사용하도록 ESP32 C3 Super Mini를 프로그래밍하는 방법

ESP32 C3 Super Mini에는 하드웨어 UART가 여러 개 있으므로 모듈은 자체 포트를 사용합니다.

  • 중요: ESP32 C3 Super Mini에는 SoftwareSerial이 없습니다. 대신 HardwareSerial을 사용하세요.
  • 이유: UART0(GPIO20 / GPIO21)은 이미 USB 시리얼 모니터가 사용하고 있습니다.
  • 해결책: HardwareSerial rs232Serial(1);로 두 번째 포트를 만들고 비어 있는 핀을 할당하세요.
  • 헤더를 포함하고 시리얼 핀을 정의합니다:
#include <HardwareSerial.h> #define RX1PIN 7 // The ESP32 C3 SuperMini pin connected to the TXD pin of the module #define TX1PIN 6 // The ESP32 C3 SuperMini pin connected to the RXD pin of the module HardwareSerial rs232Serial(1); // use UART1, UART0 is used by Serial Monitor
  • 두 개의 시리얼 인터페이스를 초기화합니다:
Serial.begin(115200); // Serial Monitor rs232Serial.begin(9600, SERIAL_8N1, RX1PIN, TX1PIN); // RS232

※ 주의:

두 보드레이트는 의도적으로 다릅니다. 115200은 PC의 시리얼 모니터용입니다. 9600은 RS232 장치의 속도입니다. 두 숫자 모두 해당 링크의 상대편과 일치해야 합니다.

RS232용 ESP32 C3 Super Mini 코드

이 스케치는 RS232로 받은 모든 문자를 보낸 쪽으로 다시 돌려보내고(에코), 시리얼 모니터에도 출력합니다.

이 코드가 하는 일:

  • 115200 보드레이트로 시리얼 모니터를 엽니다
  • GPIO7(RX)과 GPIO6(TX)에서 9600 보드레이트로 UART1을 엽니다
  • RS232 쪽에서 새 문자가 도착했는지 확인합니다
  • 그 문자를 RS232 장치로 바로 다시 보냅니다
  • 같은 문자를 시리얼 모니터에 출력하여 확인할 수 있게 합니다
/* * 이 ESP32 C3 Super Mini 코드는 newbiely.kr 에서 개발되었습니다 * 이 ESP32 C3 Super Mini 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/esp32-c3/esp32-c3-super-mini-rs232 */ #include <HardwareSerial.h> #define RX1PIN 7 // The ESP32 C3 SuperMini pin connected to the TXD pin of the TTL to RS232 module #define TX1PIN 6 // The ESP32 C3 SuperMini pin connected to the RXD pin of the TTL to RS232 module HardwareSerial rs232Serial(1); // use UART1 of ESP32 C3 SuperMini, UART0 is used by Serial Monitor void setup() { // start communication with baud rate 115200 Serial.begin(115200); // Serial Monitor // start communication with baud rate 9600 rs232Serial.begin(9600, SERIAL_8N1, RX1PIN, TX1PIN); // RS232 // wait a moment to allow serial ports to initialize delay(100); } void loop() { // Check if there's data available on rs232Serial if (rs232Serial.available()) { char data = rs232Serial.read(); // read the received character rs232Serial.print(data); // echo back to data to the sender Serial.print(data); // print the recived data to Serial Monitor } }

빠른 단계

  • 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 사이에서 양방향으로 데이터가 이동하는 것을 테스트할 수 있습니다.

ESP32 C3 Super Mini rs232와 pc 간 통신
  • Tera Term 또는 PuTTY와 같은 시리얼 터미널 프로그램을 설치합니다.
  • 시리얼 터미널 프로그램을 열고 시리얼 파라미터(COM 포트, 9600 보드레이트, 8N1)를 설정합니다.
  • 시리얼 터미널에 데이터를 입력하여 ESP32 C3 Super Mini로 보냅니다.
  • 테스트가 성공하면 시리얼 터미널에서 같은 데이터가 에코되어 돌아오는 것을 볼 수 있습니다.
  • 동시에 Arduino IDE 시리얼 모니터에는 보드가 받은 내용이 표시됩니다.

시리얼 모니터 출력

RS232 터미널에 입력하는 동안 Arduino IDE 시리얼 모니터에 표시되는 내용은 다음과 같습니다.

∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
ESP32C3 Dev Module
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'ESP32C3 Dev Module' on 'COM15')
New Line
9600 baud
Hello RS232 ESP32 C3 Super Mini is listening Temperature: 24.6 C Temperature: 24.9 C Temperature: 25.1 C Link OK 2026-05-12 09:41:07
Ln 11, Col 1
ESP32C3 Dev Module on COM15
2

응용 및 프로젝트 아이디어

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를 통해 웹 페이지로 전달합니다

댓글