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

时间:2019-03-15 15:23:38

标签: python ssh raspberry-pi wireless vnc

因此,要更详细地讲,我基本上是在寻求使用能够与树莓派进行交互的python来构建程序(该程序最终将成为gui,但现在我不必担心这一点)。 。详细来说,我需要该程序在树莓派可以通过wifi连接到的Windows机器上运行。我说wifi是因为这种情况最终需要许多不同的树莓派能够连接到同一台机器并接受命令并吐回输出。

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

从本质上讲,是否可以在Windows PC上编写python脚本,该脚本将具有可以自动与pi交互的方法,就像通过SSH一样?就像我在PC上的脚本中有一个名为runProgram1()的方法一样,它将自动在树莓派上无线运行program1吗?我以后总是可以将其转换为gui,但问题是首先获取了python脚本。

一个快速的系统需求概述是Windows pc能够具有一些方法,这些方法可以执行诸如自动打开/关闭pi,在pi上运行程序,获取pi收集的数据并将其吐出的方法。移至Windows机器,并向系统添加更多pi。所有这些都需要无线完成,因为pi摆在最终位置时将全部无法触及。

到目前为止,我还没有在网上找到任何类似的东西,所以我希望stackoverflow的专家们能有所帮助。我知道有很多要问的问题,但是仅指出正确的方向将有助于解决问题。预先感谢!

1 个答案:

答案 0 :(得分:2)

我建议您在树莓派上构建一个非常简单的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上的功能。 您甚至可以通过身份验证来保护它。