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



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

树莓派代码:

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,它将失败。您需要以可以将其发送到数据库的方式对此数据进行编码。它可以接受二进制数据(斑点(吗?如果是这样,则应按原样发送数据,而不将其转换为字符串。

字符串

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

最新更新