如何在没有 VNC 的情况下远程控制 Raspberry Pi

How to remotely control Raspberry Pi WITHOUT VNC

所以为了更详细一点,我主要是想构建一个程序(它最终会成为一个 gui,但我现在不需要担心这个)使用 python 能够与 raspberry pi 互动。为了详细说明,我需要这个程序在 windows 机器上 运行,raspberry pi 可以通过 wifi 连接到该机器。我说 wifi 是因为这种情况最终需要许多不同的 raspberry pi 能够连接到同一台机器并接收命令并吐出输出。

我不想使用 VNC,因为我不想使用 raspberry pi 的 gui 在 pi 上远程 运行 程序。这就是为什么我更详细地研究了 SSH,但我又一次遇到了 运行 问题。能够通过 CMD 无线命令 pi 做事很好,但我需要一个用户友好的方法来完成这个项目,以便其他人可以做。

基本上,有没有办法在我的 windows PC 上编写一个 python 脚本,该脚本将具有可以自动与 pi 交互的方法,就好像它是通过 SSH 一样?就像如果我在 PC 的脚本中有一个名为 运行Program1() 的方法,它会自动在 raspberry pi 上无线地 运行 program1 吗?我以后总是可以将其转换为图形用户界面,但问题是首先获取 python 脚本。

一个快速的系统需求大纲是 windows pc 能够有一些方法可以做一些事情,比如自动打开 on/off pi,运行 一个已经打开的程序pi,获取 pi 收集的数据并将其吐出到 windows 机器,并向系统添加更多 pi。所有这些都需要通过无线方式完成,因为当 pi 位于最终位置时,它们都将遥不可及。

到目前为止,我还没有在网上找到类似的东西,所以我希望 Whosebug 的专家能提供帮助。我知道有很多问题要问,但只要指出正确的方向就可以帮助解决问题。提前致谢!

我建议您在 raspberry pi 上构建一个非常简单的 flask 网络服务器,并从 Windows gui 发送请求。

from flask import Flask
app = Flask(__name__)

@app.route("/function_one")
def function_one():
    # Do something on rpi or start a subprocess
    return "Some message"

app.run(host='0.0.0.0')

这在您的 rpi 上应该是 运行。 然后,从 Windows gui 中,您可以将带有 requests 库的 get 发送到该端点,可能是 onclick 或您愿意的时候。

import requests
requests.get('http://<yout_rpi_local_ip>:5000/function_one')

这将从 Windows 触发 RPI 上的功能。 您甚至可以通过身份验证来保护它。