如何解决我可以通过 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' 命令)。
- 首先,让我们看看您的脚本。在您的 Python 脚本上,您可以编写如下内容来输出 JSON:
print(json.dumps(your message here....))
-
在您的 Raspberry Pi 上,找出您的私有 IP。您可以执行以下操作:
ifconfig | grep 192
-
在您的计算机上,键入:
ssh pi@<your private IP> 'python <your script path,example: /home/pi/Desktop/script.py>'
您可能需要将 pi 更改为您在 Raspberry Pi 上使用的用户名。
-
该脚本将在您的 Raspberry Pi 上运行,您将在您的计算机上获得 JSON 输出!您可以使用
subprocess
和json.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 举报,一经查实,本站将立刻删除。