Проблема при получении данных от Arduino Выводит символы конца строки Python - PullRequest
0 голосов
/ 14 февраля 2020

Привет, как я могу удалить строки \ r \ n и "['']"? Это барометр c регистратор данных. Мои планы на будущее - сделать gui и показать значения там. И моя печатная плата имеет Bluetooth для того, как я могу добавить поддержку Bluetooth.

Python Код

import serial
ser = serial.Serial('COM6', baudrate = 9600, timeout=1)
 while 1:
  arduinoData = ser.readline().decode('ascii')
  parsed = arduinoData.split(',')
  print(parsed)

Python Выход

enter code here
['']
['26.03', '882.70', '1340.80\r\n']
['']
['26.03', '882.68', '1341.02\r\n']
['']
['26.03', '882.66', '1341.13\r\n']
['']
['26.03', '882.66', '1341.14\r\n']

Arduino Code

#include <Wire.h>
#include <SPI.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_BMP280.h>

Adafruit_BMP280 bme;
#define SEALEVELPRESSURE_HPA (1037.3)



 void setup() {
 Serial.begin(9600);
   bme.begin(0x76);
  }

 void loop() {
  Serial.print(bme.readTemperature());
  Serial.print(",");
  Serial.print(bme.readPressure()/100);
  Serial.print(",");
  Serial.print(bme.readAltitude(SEALEVELPRESSURE_HPA));
  Serial.println("");
  delay(1000);

}

1 Ответ

0 голосов
/ 14 февраля 2020

Замените

parsed = arduinoData.split(',')

на

parsed = [datum.strip() for datum in arduinoData.split(',')]

, который удалит пробелы с обеих сторон каждого элемента. \r и \n считаются пробелами, поэтому они будут удалены.


Кроме того, похоже, что

Serial.print(bme.readAltitude(SEALEVELPRESSURE_HPA));

уже выводит новую строку - пустые списки, которые вы Вы можете получить от второй новой строки, которую вы получаете от Serial.println(""). Попробуйте удалить эту строку и посмотреть, исправит ли она вашу проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...