一种让 Raspberry Pi 等待命令的方法
a way to have a Raspberry Pi wait for a command
我已经四处寻找这个问题的答案,但真的不知道要搜索什么以及在哪里寻找。我主要从事基本的 Web 开发,所以我不熟悉如何让不同计算机上的应用程序相互通信。
我想知道让 raspberry Pi 坐下来等待来自同一本地网络上另一台计算机的命令的最佳和最有效的方法。
我开始了一个小项目,让 Pi 的相机在从同一本地网络上的计算机发送命令时开始和停止录制。我目前有一个小的 python 脚本,它可以在单击两个不同的按钮时开始和停止将视频录制到文件中,但是我想将按钮触发器更改为来自另一台计算机的命令。 Pi 可能一次闲置几天,然后一个命令进来记录。那么实现这一目标的最有效方法是什么。我有几个thoughts/question想知道大家的想法
- 我需要安装网络服务器吗?
- 是否可以休眠 pi 和
它在局域网上唤醒了吗?
- 我应该打开一个套接字并在其中放一个循环吗
python 不断检查消息的脚本?这是能量吗
高效的?
- 我是否应该从计算机发送消息以使用 shell 脚本启动 python 脚本,然后发送启动和停止命令?
如您所见,由于我对应用程序交互的了解有限,所以我到处都不知道我的选择是什么。感谢阅读,我期待着答案...
import socket
host="0.0.0.0"
port=43210 #or some high number unused port
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((host,port))
s.listen(1)
client,address = s.accept()
#this wont run until after something hits that port
然后在另一台计算机上转到
http://ip.of.raspery.pi:43210
这将尝试打开端口...网页无法加载,但 pi 应该执行该评论下方的任何操作
或者你可以做
from flask import Flask
app = Flask(__name__)
@app.route("/start")
def start():
return "OK START"
@app.route("/stop")
def stop():
return "OK STOP!"
if __name__ == "__main__":
app.run("0.0.0.0",port=8080)
和 运行 它在 pi 上......(或者甚至更好地通过 apache 服务......但那是另一个问题)
然后您可以导航至
http://raspberry.pi.ip:8080/start
http://raspberry.pi.ip:8080/stop
这次您会看到一条状态消息
我已经四处寻找这个问题的答案,但真的不知道要搜索什么以及在哪里寻找。我主要从事基本的 Web 开发,所以我不熟悉如何让不同计算机上的应用程序相互通信。
我想知道让 raspberry Pi 坐下来等待来自同一本地网络上另一台计算机的命令的最佳和最有效的方法。
我开始了一个小项目,让 Pi 的相机在从同一本地网络上的计算机发送命令时开始和停止录制。我目前有一个小的 python 脚本,它可以在单击两个不同的按钮时开始和停止将视频录制到文件中,但是我想将按钮触发器更改为来自另一台计算机的命令。 Pi 可能一次闲置几天,然后一个命令进来记录。那么实现这一目标的最有效方法是什么。我有几个thoughts/question想知道大家的想法
- 我需要安装网络服务器吗?
- 是否可以休眠 pi 和 它在局域网上唤醒了吗?
- 我应该打开一个套接字并在其中放一个循环吗 python 不断检查消息的脚本?这是能量吗 高效的?
- 我是否应该从计算机发送消息以使用 shell 脚本启动 python 脚本,然后发送启动和停止命令?
如您所见,由于我对应用程序交互的了解有限,所以我到处都不知道我的选择是什么。感谢阅读,我期待着答案...
import socket
host="0.0.0.0"
port=43210 #or some high number unused port
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((host,port))
s.listen(1)
client,address = s.accept()
#this wont run until after something hits that port
然后在另一台计算机上转到
http://ip.of.raspery.pi:43210
这将尝试打开端口...网页无法加载,但 pi 应该执行该评论下方的任何操作
或者你可以做
from flask import Flask
app = Flask(__name__)
@app.route("/start")
def start():
return "OK START"
@app.route("/stop")
def stop():
return "OK STOP!"
if __name__ == "__main__":
app.run("0.0.0.0",port=8080)
和 运行 它在 pi 上......(或者甚至更好地通过 apache 服务......但那是另一个问题)
然后您可以导航至
http://raspberry.pi.ip:8080/start
http://raspberry.pi.ip:8080/stop
这次您会看到一条状态消息