从移动设备控制 Raspberry Pi

今天我要发一篇我喜欢的帖子给大家, 它们非常简单,看起来也很漂亮! 井, 如果我们有一台树莓派,并且有一些命令希望可以从手机轻松执行,例如开家里的灯, 或者更改我们Kodi的电视频道, 这是您的帖子! 简单, 简单且适合家庭!

 

通过网页控制树莓派-00-布哈拉

我说了什么, 如果我们有某个脚本,并希望可以从任何移动设备执行它 (iOS系统, 人造人…) 或者从任何浏览器执行… 首先需要安装Apache2并创建一个PHP文件, 一个JS文件,并上传一张PNG图标. 从浏览器点击网页上的ON按钮,将会执行我们指定的.sh文件, 我们要做的就是‘添加到主屏幕’’ dicho acceso directo a esa URL y el móvil bien el iPhone/iPad/Androide nos creará una app con el icono, que al pulsarlo ejecutará nuestro programa en la Pi.

 

Os dejo unos pantallazos de mi móvil de cómo se puede controlar cualquier canal de TV, cualquier dispositivo que tengamos, como encender/apagar la calefacción, subir/bajar las persianas, encender/apagar/regular las luces de la casa, encender/apagar la alarma

 

我说了什么, primero instalaremos los requisitos:

[源代码]sudo apt-get install apache2 php5 libapache2-mod-php5[/源代码]

 

Cambiaremos el usuario que ejecutará apache2 (自选, creo recordar que lo hice para los comandos que llevan audio), editamos el fichero ‘/etc/apache2/envvars’, corrigiendo el usuario:

[源代码]export APACHE_RUN_USER=pi
export APACHE_RUN_GROUP=pi[/源代码]

 

我们重新启动了 Apache:

[源代码]sudo /etc/init.d/apache2 restart[/源代码]

 

Os paso un par de archivos, un PHP y un JS, ahora que los documento también veo lineas que sobran, 如果你们想的话可以纠正😉 不想也没关系, 它也能为你们工作! 这个PHP文件是一个表单,当点击按钮时 “开启” 将会执行脚本‘/home/pi/la6_enciende.sh’ 稍后你们会看到它在我的电视上显示 La Sexta频道. 所有这些, 显然在‘/var/www/’目录下:

la6.php

[源代码]
<HTML格式>
<头>
<标题>家庭智能家居</标题>
<link rel="stylesheet" type="text/css" href="./css/style.css" />
<link rel="apple-touch-icon" href="la6.png">
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<script src="http://code.jquery.com/jquery-1.9.1.min.js"></脚本>
<script src="./amcharts/amcharts.js" type="text/javascript"></脚本>
<script type="text/javascript" src="./js/common.js"></脚本>
<script type="text/javascript" src="la6.js"></脚本>
</头>
<连体紧身衣>
<form id="relay" action="remote_relay.php" method="GET">
<input type="hidden" name="total" id="total" value="">
<input type="button" id="La6submitOn" style="border:1px solid #000; 字体大小:40Px;" value="On" onClick="La6relayOn()"/>
</形式>
<?菲律宾语

$state = $_GET["total"];

如果 ($state == "La6on"){
exec("/home/pi/la6_enciende.sh");
}
?>
<script type='text/javascript'>
self.close();
</脚本>
</连体紧身衣>
</HTML格式>
[/源代码]

la6.js

[源代码]window.onload = function(){
buttonOff = document.getElementById(‘La6submitOn’);
buttonOff.onClick = La6relayOn;
}

function La6relayOn(){

hidden = document.getElementById("total");
hidden.value = "La6on";

form = document.getElementById("relay");
form.method = "GET";
form.action = "la6.php";
form.submit();
}[/源代码]

不错, con esto ya tenemos la posibilidad de ejecutar cualquier script de nuestras Raspberrys desde cualquier móvil de una forma agradable para el resto de la familia 😉 Acordaros de poner el archivo PNG con el icono que queréis que se vea!

一件事, la web PHP tiene 3 lineas que deberéis comentar la primera vez! Ya que la idea de la web PHP es que al pulsar desde el móvil y abrirse, ejecute el comando y luego la web se cierre automáticamente para no quedarse residual en el navegador del móvil. Y si no la comentamos, no podremos la primera vez agregarla como app al ‘Escritoriodel móvil ya que se cerrará y no nos dará tiempo! 所以: Comentamos > La anclamos en pantalla de Inicio > Descomentamos. Líneas en cuestión:

[源代码]#&中尉;script type='text/javascript'&燃气轮机;
# self.close();
#&中尉;/脚本&燃气轮机;[/源代码]

 

Que nos queda? Algo interesante, si tenemos Kodi y tenemos el acceso remoto habilitado, sabremos que podemos manejarlo con aplicaciones tipo: Kodi Remote, Yatse, Korepodemos con JSON administrarlo igual forma desde la shell de nuestra Pi, y crearnos un script que ejecute lo que queramos como es cambiar a un canal de TV, cambiar el idioma de la TV, grabar la TV

 

通过网页控制树莓派-01-布哈拉

Lo primero será saber qué está mandando nuestra app de iOS/Android al Kodi, 为此, desde un PC escucharemos el puerto 9090 de Kodi, para ver qué le manda nuestro Yatse, Kodi Remoteasí que ejecutamos:

[源代码]nc DIRECCION_IP_RASPBERRY 9090[/源代码]

Y esperamos

 

通过网页控制树莓派-02-布哈拉

Teniendo netcat a la escucha, ya podremos pulsar el canal que querramos desde nuestra app del móvil y en pantalla, el nc nos sacará el comando que necesitaremos ejecutar posteriormente, 或者至少提供一个帮助,以便知道每个电视频道的ID!

就我而言, 要播放 La Sexta,我将必须执行以下命令:

[源代码]echo '{"id":1,"jsonrpc":"2.0","method":"Player.Open","params":{"item":{"channelid":93}}}’ | nc 192.168.1.200 9090[/源代码]

 

停止电视的示例:

[源代码]echo '{ "id": 1, "jsonrpc": "2.0", "method": "Player.Stop", "params": { "playerid": 1 } }’ | nc 192.168.1.200 9090[/源代码]

修改电视音频以练习英语的示例!

[源代码]echo '{"jsonrpc": "2.0", "method": "Player.SetAudioStream", "params": { "playerid": 1, "stream": "next"}, "id": 1}’ | nc 192.168.1.200 9090[/源代码]

 

等等, 等… 我们将该命令保存到一个 .sh 文件中,可以在从手机打开 PHP 网页时执行! 尽情享受吧!

 

推荐文章

作者

nheobug@bujarra.com
Autor del blog Bujarra.com Cualquier necesidad que tengas, 请随时与我联系, 我会尽我所能帮助你, 分享就是生活 ;) . 享受文档!!!