Как запустить скрипт на Raspberry Pi из приложения для Android через соединение Bluetooth - PullRequest
0 голосов
/ 14 января 2019

Я использую Raspberry Pi Zero W. Мне удалось подключить Pi к моему устройству Android при запуске Pi. Затем я включаю общий доступ к Интернету, чтобы убедиться, что у моего Pi есть подключение к Интернету. Я хочу создать приложение, которое может получать данные с Android-устройства и запускать существующие сценарии на его основе без использования ssh, если это возможно.

Я обычно использую Juice SSH на своем телефоне Android для запуска сценариев на Pi, но это включает ручную работу, например поиск и выполнение сценария, что я не хочу, чтобы мой пользователь делал.

Сценарий, который я хочу запустить, является Python Script Google Directions. У меня есть готовый сценарий, он просто принимает ввод Origin и Destination от пользователя. После этого он получает ответ о направлении и начинает показывать инструкции на экране, подключенном к Pi.

TLDR: Я хотел бы узнать, как запустить скрипт Python на Raspberry Pi с устройства Android, подключенного через Bluetooth. Нужно ли делать сервер? Возможно ли использовать Firebase?

Ответы [ 2 ]

0 голосов
/ 07 февраля 2019

Я решил эту проблему с помощью библиотеки Jsch для Android. Это довольно просто и хорошо задокументировано. Это позволяет мне запускать SSH-соединение с помощью команды set, которую я хочу выполнить на Сервере.

0 голосов
/ 15 января 2019

Я действительно смонтировал нечто очень похожее не так давно. Возможно, вам удастся обойти разные пути, но я думаю, что какой-то server понадобится в любом случае.

Взгляните на мой публичный репозиторий в 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

И теперь вы можете запустить свою команду в любой точке мира, если сможете выполнить http запрос к вашему распи!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...