我正在使用Raspberry Pi ZeroW。我在Pi启动时成功将Pi连接到我的Android设备。然后,打开Internet共享以确保我的Pi可以连接互联网。我想制作一个可以从Android设备接收数据并基于它运行预先存在的脚本而不使用ssh的应用程序(如果可能)。
我通常在Android手机上使用Juice SSH在Pi上运行脚本,但这涉及诸如查找并执行我不希望用户执行的脚本之类的手动工作。
我要运行的脚本是Google Directions Python脚本。我已经准备好脚本,它只需要用户输入Origin和Destination。之后,它将获取方向响应并开始在连接到Pi的屏幕上显示指令。
TLDR::我想知道一种方法,该方法可以通过通过蓝牙连接的Android设备在Raspberry Pi上启动python脚本。我需要做一个服务器吗?可以使用Firebase吗?
答案 0 :(得分:0)
我不久前实际上安装了非常相似的东西。您也许可以解决各种问题,但是我认为无论如何都需要某种server
。
看看at my public repository in github!
git clone https://github.com/NanoSpicer/XpressShutdown
然后您可以像这样修改我的index.js
文件:
#!/usr/bin/node
const command = 'python yourscript.py';
const proc = require('child_process');
const express = require('express');
const app = new express();
const router = express.Router();
router.get('/customComand', (request, response) => {
// you could even catch parameters with this, edit your command string and pass them into the script
proc.exec(command, (err, stdout, stderr) => {
response.json({output: stdout});
});
});
app.use('/raspi', router);
app.listen(80);
console.log('Server is running');
使用以下方法启动该服务器并使其作为后台进程运行:
chmod +x index.js
./index.js & # you can do this because of the shebang
发出HTTP
请求,例如
http://{your-raspi-IP-address}/raspi/customComand
现在,如果您可以对raspi执行http
请求,则可以在世界任何地方运行命令!
答案 1 :(得分:0)
我使用Android的Jsch库解决了这个问题。它非常简单并且有据可查。它使我可以使用要在服务器上执行的set命令启动SSH连接。