Мне нужна помощь в сохранении целочисленного типа данных посредством последовательной связи. Моя настройка сейчас - это микроконтроллер Arduino, который считывает температурный датчик, который выводит число с плавающей точкой через модуль XBee через последовательный порт, который выглядит следующим образом: 76.82, например.Преобразование байтов в целое число в Python
Приемник XBee подключен к компьютеру, на котором программа Python считывает с использованием метода readline()
из последовательного модуля. Однако, когда я делаю readline()
, я получаю b'76.66\r\n'
. Как удалить все символы и просто сохранить номера в исходном типе данных?
Вот мой код Python:
import serial
ser = serial.Serial(6)
while True:
x = ser.readline();
print(x)
Вот мой код для Arduino:
#include <OneWire.h>
#include <DallasTemperature.h>
#define ONE_WIRE_BUS 3
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
DeviceAddress Thermometer = { 0x28, 0x36, 0x0F, 0xB0, 0x02, 0x00, 0x00, 0xF0 };
void setup(void)
{
Serial.begin(9600);
sensors.begin();
sensors.setResolution(Thermometer, 12);
}
void printTemperature(DeviceAddress deviceAddress)
{
float tempC = sensors.getTempC(deviceAddress);
Serial.println(DallasTemperature::toFahrenheit(tempC));
}
void loop(void)
{
delay(5000);
sensors.requestTemperatures();
printTemperature(Thermometer);
}
Спасибо, что это прекрасно! – tabchas
@TabishChasmawala - Счастлив, это решило проблему. Поскольку вы новичок, я надеюсь, вы не возражаете, если я напомню вам, что, когда ответ решает вашу проблему, вы должны выбрать ее как принятую. Помимо предоставления репутации респонденту (что в конечном итоге является единственной причиной, по которой мы все отвечаем на вопросы!), Важно также, чтобы будущий посетитель сразу увидел, что проблема решена навсегда. Только один ответ на вопрос может быть отмечен как принятый. Если более одного ответа верны, вы обычно выбираете тот, который был опубликован первым, или самый полный/более четкий. Добро пожаловать на StackOverflow! :) – mac
Хорошо, я согласился с ответом, как вы сказали, но я не могу проголосовать за ответ, поскольку у меня недостаточно репутации. Но когда я это сделаю, я обязательно приму участие в сообществе StackOverflow. Спасибо за приветствие, а также за помощь! – tabchas