Arduino python serial 无法解决简单的错误

Arduino python serial can't solve simple error

我最近开始使用 Python。

我必须为传感器项目使用 arduino 和 raspberry pi 串行通信,我想试验传感器出现之前创建的数据。我将从 arduino 发送总共 8 个数据,发送这些数据时遇到问题。

arduino 代码:

void setup() {

Serial.begin(9600);
}
void loop() {

Serial.println(String("255") + "," + String("255") + "," + String("255")  + "," + String("21.651")  + "," + String("25.152")  + "," + String("12.051")  + "," + String("168.125") + "," + String("120"));
delay(1000);
}

arduino这边,前三个数据会在0-255之间。接下来的 4 个数据将是浮点数,最后一个数据将是整数。这是来自传感器的数据,我确定。

python这边是这样的:

import serial
com = serial.Serial('/dev/ttyUSB0', 9600, timeout=1)
com.reset_input_buffer()

while True :
   sensorData = com.readline().decode('utf-8').rstrip()
   temp_array = str(sensorData).split(',')
   a = temp_array[0]
   b = temp_array[1]
   c = temp_array[2]
   d = temp_array[3]
   e = temp_array[4]
   f = temp_array[5]
   g = temp_array[6]
   h = temp_array[7]
   print(c)

我遇到的错误如下:

  File "/home/gorkem/Desktop/process/8data.py", line 9, in <module>
  b = temp_array[1]
  IndexError: list index out of range

如果我尝试打印 sensorData,它会打印一次或两次空白数据。这可能是因为什么?

gorkem@Gorkem-MSI:~/Desktop/process$ /bin/python3 
/home/gorkem/Desktop/process/8data.py

0,0,0,21.651,25.152,12.051,168.125,120
0,0,0,21.651,25.152,12.051,168.125,120
0,0,0,21.651,25.152,12.051,168.125,120
0,0,0,21.651,25.152,12.051,168.125,120
0,0,0,21.651,25.152,12.051,168.125,120
import serial
com = serial.Serial('/dev/ttyUSB0', 9600, timeout=1)
com.reset_input_buffer()

while True :
   sensorData = com.readline().decode('utf-8').rstrip()
   temp_array = str(sensorData).split(',')
   if len(temp_array) > 7:
       a = temp_array[0]
       b = temp_array[1]
       c = temp_array[2]
       d = temp_array[3]
       e = temp_array[4]
       f = temp_array[5]
       g = temp_array[6]
       h = temp_array[7]
       print(c)

我建议这样做,以确保它读取的每一行实际上都包含这 7 个输入。