본문 바로가기
GUI 프로젝트/저울 연결하기 (시리얼통신) (Tkinter)

[파이썬 저울 연결] 3. 명령어 입력 시 현재 무게 받아오기

by 만다린망고 2022. 1. 6.
반응형

지난시간까지 만든 코드는 아래와 같다. 

 

import serial
import sys

ser = serial.Serial(port='COM8', baudrate=9600, bytesize=serial.EIGHTBITS,
                    parity=serial.PARITY_NONE, timeout=None)

 

문제가 하나 있었는데, 저울에서 정보가 1초마다 전송되기 때문에 정보가 계속 쌓인다. 따라서 ser.readline( ) 명령어로 정보를 받아올 때, 현재 정보가 아니라 누적된 정보의 초기값부터 불러오기 시작한다. 

 

이 문제를 해결하기 위해 고민했고 방법을 찾았다. 시리얼을 닫고 연 뒤 불러오면 된다. 닫고 여는 명령어는 아래와 같다. 

 

ser.close()

ser.open()

 

아래와 같이 while 문을 통해 물건을 올려 놓는 순간 변한 무게를 받아올 수 있도록 하였다 .

 

import serial
import sys

ser = serial.Serial(port='COM8', baudrate=9600, bytesize=serial.EIGHTBITS,
                    parity=serial.PARITY_NONE, timeout=None)


while(True):
    ser.close()
    ser.open()
    res=ser.readline()
    print(res)

 

출력 결과는 아래와 같다. 

 

 

다음 할 일은 문자열에서 숫자만 추출하는 것이다. 

반응형

댓글