如何通过蓝牙连接从Android App在Raspberry Pi上运行脚本

时间:2019-01-14 06:08:06

标签: android python firebase bluetooth raspberry-pi

我正在使用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吗?

2 个答案:

答案 0 :(得分:0)

我不久前实际上安装了非常相似的东西。您也许可以解决各种问题,但是我认为无论如何都需要某种server

看看at my public repository in github

  1. 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');
  1. 使用以下方法启动该服务器并使其作为后台进程运行:

    chmod +x index.js

    ./index.js & # you can do this because of the shebang

  2. 发出HTTP请求,例如 http://{your-raspi-IP-address}/raspi/customComand

现在,如果您可以对raspi执行http请求,则可以在世界任何地方运行命令!

答案 1 :(得分:0)

我使用Android的Jsch库解决了这个问题。它非常简单并且有据可查。它使我可以使用要在服务器上执行的set命令启动SSH连接。