从移动设备控制 Raspberry Pi

Hoy os voy a poner un post de los que me gustan, son sencillísimos y quedan chulísimos! 井, si tenemos alguna Raspberry Pi y tenemos algún comando que queremos que se pueda ejecutar fácilmente desde el móvil como encender alguna luz de casa, o cambiar un canal de TV de nuestro Kodi, 这是您的帖子! Facil, 简单且适合家庭!

 

Manejar-Raspberry-por-Web-00-布哈拉

我说了什么, si tenemos algún script por ahí y queremos poder ejecutarlo desde cualquier dispositivo móvil (iOS系统, 人造人…) o desde cualquier navegadorlo primero será tener instalado Apache2 y crear un archivo PHP, un JS y subir una imagen PNG para el icono. Al pulsar desde el navegador el botón ON que saldrá en la web ejecutará el archivo .sh que digamos, lo que haremos será ‘añadir a la pantalla de iniciodicho 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, si queréis las corregís 😉 si no, da igual que os funcionará también! Este archivo PHP es un formulario que al pulsar el botonOnejecutará el script ‘/home/pi/la6_enciende.shque veréis más adelante que pone La Sexta en mi TV. Todo ello, obviamente en ‘/var/www/’:

la6.php

[源代码]
<HTML格式>
<头>
<标题>Domotica casa</标题>
<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!

Una cosa, 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

 

Manejar-Raspberry-por-Web-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

 

Manejar-Raspberry-por-Web-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, o al menos una ayuda para saber el ID de cada canal de TV!

En mi caso pues, para poner La Sexta tendré que ejecutar el siguiente comando:

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

 

Ejemplo de parar TV:

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

Ejemplo para cambiar el audio de la TV para que practiquemos el inglés!

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

 

Etc, 等… guardamos dicho comando en un archivo .sh que podremos ejecutar al abrir la web PHP desde nuestro móvil! A disfrutarlo!

 

推荐文章

作者

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