문자열을 float로 바꾸는거 에러 좀 봐주세요 ㅠㅠ

merry의 이미지


아두이노에서 온도센서로 온도값 받아와서 파이썬으로 데이터 불러와서 이미지 처리하는데,
다음 코드에서 "dataArray = float(ard)"

이 부분이 자꾸 다음 같은 에러가 나네요 ㅠㅠ
코드가 아예 실행이 안되는것도 아니고 잘 되다가 에러 뜨다가 해요
뭐가 잘못된 걸까요 ㅠㅠ

아두이노 :

void loop() {
Serial.print(mlx.readObjectTempC());
Serial.println();
delay(50);
}

파이썬 :

arduinoString = arduino.readline().decode() # 아두이노 데이터 받아오기.
dataArray = float(arduinoString) # 아두이노에서 받은 문자열을 float형으로 변환
tempC.append(dataArray) # tempC에 데이터 입력

오류 내용 :
Traceback (most recent call last):
File "C:/Users/user/PycharmProjects/aduino/test.py", line 26, in
dataArray = float(ard)
ValueError: could not convert string to float:

File attachments: 
첨부파일 크기
Image icon 캡처.PNG149.2 KB
라스코니의 이미지

이런 경우 대부분은 string 데이터가 들어오다가 중간에 1 바이트씩 빠지는 경우 발생합니다.
문자열을 무조건 변환하지 마시고, 문자열이 모두 수신되었는지 확인해 보세요.
일종의 간략한 포맷도 고려해 보세요.
예를 들어,

Head (1 byte) | String (4 byte, Float) | Tail(1 byte)
0 | 0x12345678 | 1

등으로요. 그러면 다음 패킷도 찾기 쉽고 기타 처리에도 적용할 수 있습니다.