【问题标题】:How to run a script on Raspberry Pi from Android App over Bluetooth Connection如何通过蓝牙连接从 Android 应用程序在 Raspberry Pi 上运行脚本
【发布时间】:2019-06-08 03:26:09
【问题描述】:

我正在使用 Raspberry Pi Zero W。我已成功在 Pi 启动时将 Pi 连接到我的 Android 设备。然后我打开 Internet 共享以确保我的 Pi 具有 Internet 连接。如果可能的话,我想制作一个可以从 Android 设备接收数据并基于它运行预先存在的脚本而不使用 ssh 的应用程序。

我通常在我的 Android 手机上使用 Juice SSH 在 Pi 上运行脚本,但这涉及到手动工作,例如查找和执行我不希望我的用户执行的脚本。

我要运行的脚本是 Google Directions Python 脚本。我已经准备好脚本,它只需要用户输入 Origin 和 Destination。之后,它获取方向响应并开始在连接到 Pi 的屏幕上显示指令。

TLDR:我想知道一种从通过蓝牙连接的 Android 设备在 Raspberry Pi 上启动 python 脚本的方法。我需要做服务器吗?是否可以使用 Firebase?

【问题讨论】:

  • 你的 Pi 有 wifi 模块吗?如果是这样,我建议你在 Pi 中打开一个 http 服务器,这是简单、快速和最简单的方法。
  • 感谢您的回复。我的 Pi 确实有一个 Wifi 模块。一个简单的 HTTP 服务器就足够了吗?还是您推荐 NodeJS 之类的东西?
  • 我觉得python http server,比如web.py,flask,tornado,已经足够满足你的需求了。

标签: android python firebase bluetooth raspberry-pi


【解决方案1】:

我实际上在不久前安装了一些非常相似的东西。您也许可以通过各种方式绕过,但我认为某种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 请求,现在您可以在世界任何地方运行您的命令!

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-11-21
      • 2016-10-18
      • 2020-12-27
      • 2014-09-07
      • 2014-02-13
      • 2022-01-22
      • 2015-03-27
      • 1970-01-01
      相关资源
      最近更新 更多