[python]시리얼 통신 수신 데이터 화일 저장하기

2022년 12월 14일 by 진아사랑해

    [python]시리얼 통신 수신 데이터 화일 저장하기 목차
반응형

개요

Serial Port를 통하여 데이터를 수신하고 특정 데이터를 만나면 파일에 저장해야 하는 

간단하다면 간단한 일을 맡았습니다.

Python을 하면서 시리얼통신은 사용해 보지 않았습니다.

그러나 라이브러리와 예제들이 많을 것이라는 생각에 도전하게 되었습니다.

프로그램 종료 함수 선언 및 종료 시그널 등록

일반적으로 사용하는 'CTRL + C'를 누르면 프로그램이 종료되도록 만든다

시리얼 포트 관련 데이터 선언  및 열기

Serial 모듈에 대한 import가 되지 않으면 'pip install Pyserial'을 사용하여 해당 모듈을 

다운로드하셔야 합니다.

실행 후 접근권한 없음 등의 에러가 뜨면 

장치 관리자 -> COM 포트에서 사용하고자 하시는 시리얼 포트 번호를 확인하시어 port 변수의 값을

변경하시기 바랍니다.

ser.read()는 시리얼 포트로부터 수신되는 데이터를 읽어오는 함수입니다.

시리얼 포트 수신 데이터( int 타입) 파일 저장

file = open("TextFile.txt", "wb")
for c in ser.read():
file.write(c.to_bytes(1, 'big'))
시리얼 포트를 통하여 데이터를 읽는 경우에 binary mode로 file에 저장을 하려면 위처럼 해야 한다
읽힌 int 값을 c.to_bytes(1, 'big')를 사용하여 bytes 타입으로 변환한 후에 저장하여야 한다


file = open("TextFile.txt", "w")
for c in ser.read():
file.write(c.to_bytes(1, 'big'))
TypeError: write() argument must be str, not bytes

file = open("TextFile.txt", "w")
for c in ser.read():
file.write(c)
TypeError: write() argument must be str, not int

전체 프로그램

즐거운 파이썬 시간 되시기 바랍니다.

 

반응형