Raspberry pi3 如何通过串行通信USART将一些传感器值从ATmega8a发送到Raspberry pi 3

Raspberry pi3 如何通过串行通信USART将一些传感器值从ATmega8a发送到Raspberry pi 3,raspberry-pi3,microcontroller,serial-communication,Raspberry Pi3,Microcontroller,Serial Communication,我已经用ATmega8a获取了传感器值。现在我想使用串行通信将值从ATmega8a发送到Raspberry pi。然后我想将数据发送到firebase服务器。我在执行这些操作时遇到了一些问题?我可以获得完整的过程吗?我如何完成任务? 我尝试过这种方法。我通过ATmega8a的Tx引脚发送了一个波特率为2400的字符串 树莓pi代码: import datetime from firebase import firebase import serial from time import slee

我已经用ATmega8a获取了传感器值。现在我想使用串行通信将值从ATmega8a发送到Raspberry pi。然后我想将数据发送到firebase服务器。我在执行这些操作时遇到了一些问题?我可以获得完整的过程吗?我如何完成任务? 我尝试过这种方法。我通过ATmega8a的Tx引脚发送了一个波特率为2400的字符串

树莓pi代码:

import datetime
from firebase import firebase

import serial
from time import sleep

firebase = firebase.FirebaseApplication('https://abcd1234******',None)


ser = serial.Serial("/dev/ttyS0",2400)

while True:
        rdata = ser.read()
        sleep(0.03)
        datal = ser.inWaiting()
        rdata += ser.read(datal)
        str(rdata)
        firebase.post('RUET/KSR',rdata)
但结果是

“utf8”代码无法解码位置505:入侵的起始字节中的字节0xf8


我认为您的问题来自尝试将此数据转换为字符串

 str(rdata)
如果此数据包含无效的UTF8值,它将失败。您需要以可以发送到数据库的方式对这些数据进行编码。它能接受二进制数据(BLOB)吗?如果是这样,您应该按原样发送数据,而不将其转换为字符串

 str(rdata)

字符串仅包含文本,因此尝试将原始二进制文件作为字符串进行解码通常会导致错误。

我认为您的问题来自尝试将此数据转换为字符串

 str(rdata)
如果此数据包含无效的UTF8值,它将失败。您需要以可以发送到数据库的方式对这些数据进行编码。它能接受二进制数据(BLOB)吗?如果是这样,您应该按原样发送数据,而不将其转换为字符串

 str(rdata)
字符串仅包含文本,因此尝试将原始二进制文件当作字符串进行解码通常会导致错误