# 허니웰 바코드 리더기 COM 포트 리딩 프로그램 COM3 포트에 연결된 허니웰 바코드 리더기에서 바코드를 실시간으로 읽어 터미널에 출력하는 Python 프로그램입니다. ## 필수 라이브러리 설치 ```bash pip install pyserial ``` ## 사용 방법 ### 1. 기본 실행 (COM3 포트, 9600 bps) ```bash python barcode_reader.py ``` ### 2. 다른 COM 포트 사용 ```bash python barcode_reader.py --port COM5 ``` ### 3. 통신 속도 변경 ```bash python barcode_reader.py --baudrate 115200 ``` ### 4. 사용 가능한 COM 포트 목록 확인 ```bash python barcode_reader.py --list-ports ``` ## 출력 예시 ``` [시작] 바코드 리더기 연결 중... 포트: COM3 속도: 9600 bps ------------------------------------------------------------ [성공] COM3 포트 연결 완료! [대기] 바코드를 스캔해주세요... (종료: Ctrl+C) ============================================================ [스캔 #1] 2026-01-07 15:30:45 바코드: 8801234567890 길이: 13자 원본(HEX): 383830313233343536373839300d0a ------------------------------------------------------------ [스캔 #2] 2026-01-07 15:30:52 바코드: ABC123XYZ 길이: 9자 원본(HEX): 4142433132335859 5a0d0a ------------------------------------------------------------ ``` ## 프로그램 종료 - **Ctrl + C** 키를 눌러 프로그램을 종료합니다. - 종료 시 총 스캔한 바코드 개수가 표시됩니다. ## 트러블슈팅 ### 1. "포트 연결 실패" 오류 **원인:** - COM3 포트가 다른 프로그램에서 사용 중 - 바코드 리더기가 제대로 연결되지 않음 - 잘못된 포트 번호 **해결 방법:** ```bash # 1. 사용 가능한 포트 목록 확인 python barcode_reader.py --list-ports # 2. 올바른 포트 번호로 실행 python barcode_reader.py --port COM5 ``` ### 2. 바코드가 읽히지 않음 **확인 사항:** - 바코드 리더기의 LED가 켜지는지 확인 - 바코드 리더기 설정 확인 (USB-COM 모드인지) - 케이블 연결 상태 확인 ### 3. 글자가 깨져서 나옴 **원인:** - 잘못된 통신 속도(baudrate) 설정 **해결 방법:** ```bash # 다른 통신 속도 시도 python barcode_reader.py --baudrate 115200 python barcode_reader.py --baudrate 19200 ``` 허니웰 바코드 리더기의 일반적인 통신 속도: - 9600 bps (기본값) - 19200 bps - 38400 bps - 115200 bps ## 허니웰 바코드 리더기 설정 일부 허니웰 바코드 리더기는 USB-COM 모드로 전환해야 할 수 있습니다. ### USB-COM 모드 활성화 방법: 1. 바코드 리더기 매뉴얼에서 "USB Serial Emulation" 설정 바코드 찾기 2. 해당 바코드 스캔하여 USB-COM 모드 활성화 3. 컴퓨터 재연결 후 장치 관리자에서 COM 포트 확인 ## 장치 관리자에서 COM 포트 확인 1. `Windows + X` → **장치 관리자** 실행 2. **포트(COM & LPT)** 항목 확장 3. 바코드 리더기의 COM 포트 번호 확인 (예: COM3, COM5 등) ## 코드 구조 ```python # 주요 함수 read_barcode_from_com3(port, baudrate, timeout) ├─ 시리얼 포트 열기 ├─ 바코드 데이터 실시간 읽기 ├─ UTF-8/ASCII 디코딩 └─ 터미널 출력 list_available_ports() └─ 사용 가능한 COM 포트 목록 출력 ``` ## 참고 - 프로그램은 바코드 스캔 시 자동으로 감지하여 출력합니다. - 각 바코드마다 스캔 번호, 시간, 내용, HEX 값이 표시됩니다. - 바코드 리더기는 일반적으로 스캔 후 개행문자(\r\n)를 전송합니다.