Masterpiece/스타트업 업무 V

[V] 자판기 테스트 프로그램 (Window)

탱탱규탱 2022. 2. 4. 15:47

안녕하세요! 탱탱규탱입니다!

 

이번 글은 임베디드 시스템 작동 테스트를 위해 개발한 프로그램입니다!

 

[계기]

자판기 PCB는 PC와 시리얼 통신을 통해 작동되고 있습니다.

개발자인 저는 터미널창으로 시리얼 통신이 가능하지만 공장, 현장에서는 어려운 상황이였습니다.

이를 타파하고자!!

키오스크 화면에서 테스트할 수 있도록 만들어보았습니다 :)

 

[소요 시간]

- 약 10일 + 오류 수정

 

[Stack]

- Python (pyserial, tkinter, pyinstaller)

 

[사유]

- Python을 고른 이유?

   Python GUI로 도전해보고 싶었습니다!

 

 

[시리얼 통신]

python 시리얼 통신을 세상 누구보다 쉽게 되어있습니다!

 

ser = serial.Serial(pcb_port, 9600, timeout=1)

send_str = "??"

ser.write(send_str.encode('utf-8'))

try:

   if ser.readable():

     data_ = ser.read(2) data_ = data_.decode()

except ValueError: print("receive_fail")

ser.flushInput()

 

와우!! 이게 끝이라고?!!

맞습니다! 시리얼 통신 끝!

 

하지만 저희는 PCB와 카드리더기 2개의 시리얼 통신이 있기에 처리가 조금 필요했죠!

또한! PC마다 시리얼 포트(COMx)가 다르다는 거!!

 

자동으로 잡기 위해서 조금의 첨가가 필요했습니다!

 

[GUI]

tkinter는 조금 답답하지만 충분이 누구나 할 수 있습니다!

tkinter 설명은 다른 블로그가 짱짱이니! 참고해주세요!! :)

 

[배포]

배포는 pyinstaller로 exe 파일을 생성하게 했습니다!

이것을 자판기 PC에 옮겨서 실행해주면 끝!

정말 쉽죠?

 

 

이미지와 함께 설명하겠습니다.

 

 

[Main Page]

- 시리얼 포트 연결 성공 확인 및 메뉴 선택 화면입니다.

- 카드리더기, PCB 두가지를 자동으로 포트를 잡아줍니다.

- 카드리더기는 CAT-ID까지 정보를 수신하도록 했습니다!

- 시리얼 포트가 안 잡힐 경우는 2번 그림과 같이 안내를 하도록 했습니다.

 

[Card Page]

- 카드리더기 테스트 페이지 입니다.

- CAT-ID를 원격으로 교체 가능하도록 했습니다.

- 결제는 10원 결제!

- 카드리더기가 이상하다! 그럼 원격으로 초기화까지 가능합니다.

 

[PCB Page]

- PCB의 작동 테스트 및 상태 확인 페이지입니다.

- 이상한 것이 있다면 2번 그림과 같이 안내를 해줍니다! < 투출 센서 오류 힘들었습니다 ㅠㅠ >

 

[Motor Page]

- 모터 작동 페이지입니다.

- 자판기 제작이 완료됬다면 정상 작동 확인을 해봐야겠죠?

- 모터 오류인지, 투출이 안되었는지, 투출이 잘 되었는지 확인할 수 있습니다!

 

[결과]

공장과 현장에서 정말 잘 사용 중 입니다 :)

처음 로딩이 조금 느려서 그렇지!

만들고 유지보수하기에는 딱 좋아!