Raspberry pi3 如何通过串行通信USART将一些传感器值从ATmega8a发送到Raspberry pi 3
我已经用ATmega8a获取了传感器值。现在我想使用串行通信将值从ATmega8a发送到Raspberry pi。然后我想将数据发送到firebase服务器。我在执行这些操作时遇到了一些问题?我可以获得完整的过程吗?我如何完成任务? 我尝试过这种方法。我通过ATmega8a的Tx引脚发送了一个波特率为2400的字符串 树莓pi代码: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
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)
字符串仅包含文本,因此尝试将原始二进制文件当作字符串进行解码通常会导致错误