gpt4 book ai didi

python - 使用Python通过串口与Raspberry Pi通信

转载 作者:太空宇宙 更新时间:2023-11-03 17:36:52 25 4
gpt4 key购买 nike

您好 stackoverflow 社区,我一直在从事一个个人项目,我需要一些帮助。我有一个 RaspberryPi,用于通过 USB 转串口连接存储来自 PC 的消息。目前,我可以使用 Putty 使用 COM 端口 3 连接到 RPi(要求输入用户 ID/密码)并给我一个 shell (ttyAMA0)。我的最终目标是用 python 编写一段代码,用于监听来自 PC(也在 Python 中)的通信,这样当我键入消息(即“hello world”)时,它会将其发送到 COM3 上的 RPi,然后RPi 将接收它并将其保存到文件中。

我的方法可能是错误的(显然因为它不起作用),但这就是我到目前为止所拥有的:

此 Python 脚本在 RPi 上运行(我通过网络连接 (SSH) 登录),并且它正在通过 ttyAMA0 监听来自 PC 的消息

import serial
import time

def readlineCR(port):
rv = ""
while True:
ch = port.read()
rv += ch
if ch=="\r' or ch=='';
return rv

port = serial.Serial("/dev/ttyAMA0", baudrate=115200, timeout = 3.0)

while True:
rcv = readlineCR(port)
print 'message received: ' + repr(rcv)

此Python脚本在PC上运行

import serial

ser = 0

def init_serial():
COMNUM = 3
global see
ser = serial.Serial()
ser.baudrate = 115200
ser.port = COMNUM - 1 #this makes it COM3
ser.timeout = 10
ser.open()

if ser.isOpen():
print 'Open: ' + ser.portstr

init_serial()
ser.write(‘root’ + '\n')
ser.write(‘<PASWORD HERE>’ + '\n')

while True:
msg = raw_input(“message: \r\n“)
ser.write(msg)
print ‘sent: ‘+ msg +’\r\n’

如有任何建议,我们将不胜感激!

最佳答案

是的,您必须注释掉告诉 raspi 使用 ttyAMA0 的行。请注意,默认情况下,终端绑定(bind)到 ttyAMA0,因此您不能将其用于其他用途。我的意思是,即使您以编程方式与它“对话”,您也将与操作系统“对话”,而不是与 Python 进程“对话”。在“/etc/inittab”底部的某个地方,您会看到有问题的行。当您将其注释掉并重新启动时,您将能够将其用作 pyserial 的普通 COM 端口(从两端)。尽管我会在你的位置上小心,因为如果我没有严重弄错的话,正常的RS232规范给出10V,而raspi上的输出引脚给出3.5V。它可能工作正常,或者在您将其打开一段时间后可能会发生灾难,或者它根本无法使用更长的电缆。您需要一些 IC(例如 maxcom)或其他东西来为您调节电压。或者,只需使用两个 USB2Serial 转换器,一个在 PC 上,另一个在 raspi 上,您无需执行任何特殊操作即可正常工作。

关于python - 使用Python通过串口与Raspberry Pi通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31105644/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com