微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

我可以通过 SSH/WiFi 将 python 脚本输出发送到 Raspberry Pi 吗?

如何解决我可以通过 SSH/WiFi 将 python 脚本输出发送到 Raspberry Pi 吗?

我正在组装一架无人机,我在 RaspBerry Pi 上运行了一个 Python 脚本,该脚本接收 XBox 控制器输入并将它们转换为我可以使用的 Python 输出,例如:

if (event.code == 'ABS_Y'):
    if event.state in range(25001,32768):
        print("Full Throttle Reverse Left")
        kit.motor1.throttle = -1

但是控制器需要连接到 RaspBerry Pi,这限制了我的范围。我可以将控制器连接到笔记本电脑并通过路由器将这些输出发送到 RaspBerry Pi 以执行 Python 命令吗?

我刚开始接触编程,我确信有更聪明的方法可以做到这一点,因此欢迎提供任何帮助或替代建议。

解决方法

方法如下:

在 Raspberry Pi 中,确保您有 OpenSSH(您可能有,如果无法连接,请尝试运行 apt install openssh-server),并且您的计算机上还需要 OpenSSH 客户端('ssh' 命令)。

  1. 首先,让我们看看您的脚本。在您的 Python 脚本上,您可以编写如下内容来输出 JSON:

print(json.dumps(your message here....))

  1. 在您的 Raspberry Pi 上,找出您的私有 IP。您可以执行以下操作:ifconfig | grep 192

  2. 在您的计算机上,键入: ssh pi@<your private IP> 'python <your script path,example: /home/pi/Desktop/script.py>'

    您可能需要将 pi 更改为您在 Raspberry Pi 上使用的用户名。

  3. 该脚本将在您的 Raspberry Pi 上运行,您将在您的计算机上获得 JSON 输出!您可以使用 subprocessjson.loads 轻松实现自动化。这种方式也是安全的,因为 SSH 使用加密。

如果这对您有帮助,请告诉我。如果您遇到问题,请在下方发表评论。

,

我建议为您的应用程序使用套接字。 客户端(在笔记本电脑上运行)可以接收 xbox 控制器输入并将其发送到服务器(在 raspberry pi 上运行)。

这是一个简单的套接字应用程序:

客户:

$tempName = $SQL->query("Select temporadas.nome from temporadas INNER JOIN episodios ON 
  temporadas.url_anime = episodios.url_anime AND temporadas.temporada = 
  episodios.temporada WHERE temporadas.nome = 1 LIMIT  500");

服务器:

import socket

ip = "192.168.xxx.yyy" # IP of Raspberry Pi

# connect to server
client = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
client.connect((ip,8080))
print("CLIENT: connected")

# send a message
msg = "I am CLIENT"
client.send(msg.encode())

# recive a message and print it
from_server = client.recv(4096).decode()
print("Recieved: " + from_server)

# exit
client.close()

可以在here找到更多信息。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。