본문 바로가기
끄적/기타

시리얼 통신 모니터링 프로그램

by iwbap 2026. 1. 23.
728x90
반응형

 uart 통신 분석이 필요해서 usb to ttl 케이블을 구매했다. 근데 인터넷에 돌아다니는 모니터링 프로그램들이 전부 맘에 안들어서 새로 만들었음. 사용하실분 사용하세요. 아래에 사용자 설명서 확인하세요.
업데이트 예정 없음.

 

https://github.com/yonghunJeon/usb-ttl-read-serial-custom.git

 

GitHub - yonghunJeon/usb-ttl-read-serial-custom

Contribute to yonghunJeon/usb-ttl-read-serial-custom development by creating an account on GitHub.

github.com

 

 

https://link.coupang.com/a/dx791d

 

CH340 USB to TTL 시리얼 변환 케이블 (다운로드/업그레이드용) - 변환젠더 | 쿠팡

쿠팡에서 CH340 USB to TTL 시리얼 변환 케이블 (다운로드/업그레이드용) 구매하고 더 많은 혜택을 받으세요! 지금 할인중인 다른 변환젠더 제품도 바로 쿠팡에서 확인할 수 있습니다.

www.coupang.com

"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."


시리얼 통신 모니터 프로그램 사용 설명서

📋 목차

  1. 프로그램 소개
  2. 시스템 요구사항
  3. 설치 방법
  4. 프로그램 실행
  5. 기능 설명
  6. 사용 방법
  7. 문제 해결

프로그램 소개

시리얼 통신 모니터는 USB-TTL 시리얼 통신을 위한 GUI 프로그램입니다. Arduino, ESP32, STM32 등 마이크로컨트롤러와의 시리얼 통신을 모니터링하고 제어할 수 있습니다.

주요 기능

  • ✅ 실시간 시리얼 통신 모니터링
  • ✅ 텍스트 및 HEX 형식 데이터 송수신
  • ✅ 실시간 데이터 그래프 표시
  • ✅ 통신 데이터 로깅 및 저장
  • ✅ 직관적인 사용자 인터페이스

시스템 요구사항

최소 요구사항

  • 운영체제: Windows 10 이상
  • 메모리: 512MB RAM 이상
  • 디스크 공간: 50MB 이상

하드웨어

  • USB-TTL 변환 모듈 (CH340, CP2102, FT232 등)
  • 또는 마이크로컨트롤러 보드 (Arduino, ESP32 등)

설치 방법

방법 1: 실행 파일 사용 (권장)

  1. dist 폴더에서 SerialMonitor.exe 파일을 다운로드합니다.
  2. 원하는 위치에 폴더를 생성하고 SerialMonitor.exe를 복사합니다.
  3. 더블클릭하여 실행합니다.

참고: 별도의 Python 설치가 필요하지 않습니다.

방법 2: 소스 코드에서 실행

  1. Python 설치 (3.8 이상 버전)
  2. 의존성 패키지 설치또는 개별 설치:
  3. pip install PyQt5>=5.15.0 pip install pyserial>=3.5 pip install pyqtgraph>=0.13.0 pip install numpy>=1.21.0
  4. pip install -r requirements.txt
  5. 프로그램 실행
    •     run.bat 파일을 더블클릭하거나
    •     명령 프롬프트에서 python main.py 실행

프로그램 실행

실행 파일 사용 시

  1. SerialMonitor.exe를 더블클릭합니다.
  2. 프로그램 창이 열립니다.

소스 코드 실행 시

python main.py

기능 설명

1. 연결 설정 패널

  • 포트 선택: 사용 가능한 COM 포트 목록에서 선택
  • 새로고침: 포트 목록 업데이트
  • Baudrate: 통신 속도 선택 (300 ~ 921600)
  • 연결/연결 해제: 시리얼 포트 연결 및 해제

2. 데이터 송신 패널

  • 송신 모드:
    • 텍스트: 일반 텍스트 데이터 전송
    • HEX: 16진수 형식 데이터 전송 (예: FF 00 AA)
  • 전송 버튼: 입력한 데이터 전송
  • 전송 (+ \n): 줄바꿈 문자를 추가하여 전송

3. 데이터 수신 패널

  • 수신 표시 모드:
    • ASCII: 텍스트 형식으로 표시
    • HEX: 16진수 형식으로 표시
    • 혼합: ASCII와 HEX를 함께 표시
  • 수신된 데이터가 실시간으로 표시됩니다.

4. 실시간 그래프 패널

  • 수신 데이터에서 숫자를 자동으로 추출하여 그래프로 표시
  • 표시 포인트: 그래프에 표시할 최대 데이터 포인트 수 (100~5000)
  • 자동 스케일: Y축 자동 조정
  • 그리드: 격자 표시/숨김
  • 최대 4개 채널 동시 표시 (빨강, 초록, 파랑, 자홍)

5. 컨트롤 패널

  • 화면 지우기: 수신 화면 초기화
  • 그래프 지우기: 그래프 데이터 초기화
  • 로깅 시작/중지: 데이터 로깅 시작 및 중지
  • 로그 저장: 로깅된 데이터를 파일로 저장 (CSV 또는 TXT 형식)

사용 방법

기본 사용 절차

1단계: 하드웨어 연결

  1. USB-TTL 모듈을 컴퓨터에 연결합니다.
  2. 장치 관리자에서 COM 포트 번호를 확인합니다.

2단계: 프로그램 설정

  1. 프로그램을 실행합니다.
  2. 포트 드롭다운에서 연결된 COM 포트를 선택합니다.
  3. Baudrate를 설정합니다 (장치와 동일한 속도로 설정).
  4. 연결 버튼을 클릭합니다.

3단계: 데이터 송수신

  • 데이터 전송: 송신 패널에 데이터를 입력하고 전송 버튼 클릭
  • 데이터 수신: 수신 패널에서 실시간으로 데이터 확인
  • 그래프 확인: 수신 데이터의 숫자 값이 자동으로 그래프에 표시

4단계: 데이터 로깅 (선택사항)

  1. 로깅 시작 버튼을 클릭합니다.
  2. 통신이 진행되는 동안 데이터가 기록됩니다.
  3. 로깅 중지 버튼을 클릭합니다.
  4. 로그 저장 버튼을 클릭하여 파일로 저장합니다.

사용 예시

예시 1: Arduino와 통신

1. Arduino를 USB로 연결
2. 포트: COM3 선택
3. Baudrate: 9600 선택
4. 연결 버튼 클릭
5. Arduino에서 보내는 데이터가 수신 패널에 표시됨

예시 2: HEX 데이터 전송

1. 송신 모드에서 "HEX" 선택
2. 입력 필드에 "FF 00 AA" 입력
3. 전송 버튼 클릭

예시 3: 센서 데이터 그래프 표시

1. 센서에서 숫자 데이터를 전송 (예: "25.5 30.2 15.8")
2. 수신된 데이터가 자동으로 그래프에 표시됨
3. 각 숫자는 다른 채널로 표시됨

문제 해결

포트가 보이지 않을 때

  • 해결 방법:
    1. 장치 관리자에서 포트가 정상적으로 인식되는지 확인
    2. 새로고침 버튼 클릭
    3. USB 케이블을 다시 연결
    4. 드라이버가 설치되어 있는지 확인

연결이 안 될 때

  • 해결 방법:
    1. 다른 프로그램에서 포트를 사용 중인지 확인 (종료)
    2. 포트 번호가 올바른지 확인
    3. Baudrate가 장치와 일치하는지 확인
    4. USB 케이블이 데이터 전송을 지원하는지 확인

데이터가 표시되지 않을 때

  • 해결 방법:
    1. 연결 상태 확인 (연결 버튼이 "연결 해제"로 표시되어야 함)
    2. 수신 표시 모드 확인 (ASCII/HEX/혼합)
    3. 장치에서 실제로 데이터를 전송하는지 확인
    4. Baudrate가 올바른지 확인

그래프가 표시되지 않을 때

  • 해결 방법:
    1. 수신 데이터에 숫자가 포함되어 있는지 확인
    2. 숫자 형식이 올바른지 확인 (예: "123", "45.6", "-10")
    3. 그래프 지우기 버튼으로 초기화 후 다시 시도

프로그램이 느릴 때

  • 해결 방법:
    1. 그래프의 표시 포인트 수를 줄임 (예: 500 → 200)
    2. 불필요한 로깅 중지
    3. 수신 화면을 주기적으로 지우기

고급 기능

로그 파일 형식

CSV 형식

Timestamp,Elapsed(s),Direction,Length,HEX,ASCII
2026-01-23 10:30:15.123,0.000,TX,5,48 65 6C 6C 6F,"Hello"
2026-01-23 10:30:15.456,0.333,RX,5,57 6F 72 6C 64,"World"

TXT 형식

================================================================================
시리얼 통신 로그
시작 시간: 2026-01-23 10:30:15
총 엔트리: 2
================================================================================

[2026-01-23 10:30:15.123] [0.000s] <TX> (5 bytes)
  HEX: 48 65 6C 6C 6F
  ASCII: 'Hello'
----------------------------------------

그래프 데이터 형식

  • 수신 데이터에서 숫자를 자동으로 추출합니다.
  • 쉼표, 공백, 줄바꿈으로 구분된 숫자를 인식합니다.
  • 예: "25.5, 30.2, 15.8" → 채널 1: 25.5, 채널 2: 30.2, 채널 3: 15.8

주의사항

⚠️ 중요 사항

  • 프로그램 종료 전에 반드시 연결 해제를 해주세요.
  • 같은 포트를 다른 프로그램에서 사용 중이면 연결할 수 없습니다.
  • 로깅 중에는 충분한 디스크 공간을 확보해주세요.
  • 높은 Baudrate에서는 데이터 손실이 발생할 수 있습니다.

기술 지원

프로그램 사용 중 문제가 발생하거나 개선 사항이 있으면:

  • 블로그 댓글로 문의

버전 정보

  • 프로그램명: 시리얼 통신 모니터 (Serial Monitor)
  • 버전: 1.0
  • 개발 환경: Python 3.12, PyQt5
  • 라이선스: 자유 사용

업데이트 이력

v1.0 (2026-01-23)

  • 초기 릴리스
  • 기본 시리얼 통신 기능
  • 실시간 그래프 표시
  • 데이터 로깅 기능

즐거운 시리얼 통신 되세요! 🚀

728x90
반응형

'끄적 > 기타' 카테고리의 다른 글

프로그램 자동 재실행 프로그램 (ProgramChecker)  (0) 2025.12.19