18 junio 2017

Control remoto de la Raspberry Pi


El otro día les mostré como se configuraba un servidor NAS en la Raspberry, una de las cosas interesantes es que podemos tener tantos computadores como tarjetas micro SD, así es que con tarjetas de 8 Gb, que están muy baratas, se pueden tener varios sistemas operativos y configuraciones distintas, solo le cambiamos la pequeña tarjeta, lo hacemos arrancar y tenemos una máquina diferente.

La cosa es que en una micro SD instalé el sistema Open Media Vault para el servidor NAS que les mostré el otro día, después, con el tiempo encontré una caja de plástico más una pantalla táctil de 3.5 pulgadas y como pienso conectarle varios discos duros (para el NAS) y otras cosas a futuro, por ejemplo conectarla con el controlador Arduino para automatizar cosas en la casa, se me ocurrió aprovechar el gabinete ATX de un viejo computador y su fuente de poder, que con 500 watts de potencia puede alimentar con 5 volts a todos los dispositivos que necesite. Quedó muy bien aunque tendría que ordenar las cosas adentro, por ahora las tengo todas desparramadas. Esas fuentes de poder ATX que muchas veces tenemos botadas son muy prácticas.

En eBay encontré un kit de una caja plástica más una pantalla táctil por 21 dólares. Si no me equivoco esas cajas las hacen con impresoras 3D, son 9 capas de acrílico más cuatro pernos con sus tuercas, es el primer producto comercial impreso en 3D que tengo y me parece que la calidad es perfecta. La pantalla -china y sin marca- por su bajo precio tenía su problema, es muy difícil instalarle los drivers en las distintas versiones de Linux, así es que los chinos hicieron la imagen de un Linux a la medida con los drivers instalados, una solución como cuando los chilenos usamos alambrito en lugar de pernos, pero funciona sin problemas.

Control remoto
Una vez instalado todo vi unos videos en Youtube donde controlaban la Raspberry desde un computador remoto a través de la red, me pareció una idea excelente poder controlarla desde mi laptop, al menos desde dentro de la casa usando la red Wifi o cableada, además me sirvió para refrescar mis conocimientos de cuando pituteada remotamente en los servidores de IPcoast, la empresa de mi amigo Stephen Gutcknecht ,hace más de 10 años atrás.

El control remoto es bien simple de implementar especialmente si estamos dentro de una red privada por ejemplo todos los computadores que hay en la casa se pueden controlar remotamente con facilidad porque las direcciones IP privadas son asignadas por nuestro router y son estáticas.. Si queremos controlar un computador en cualquier lugar del mundo, el único problema que tenemos es que la mayoría tienen IP dinámicas (DHCP) que cambian porque el proveedor de Internet asocia una distinta cada vez que nos conectamos. Con los que tienen IP fija eso no es gran problema, pero generalmente solo las instituciones contratan conexión con IP fija, que tiene un costo adicional.

Claro que ese problema también se puede solucionar usando alguno de los servicios no-IP que permiten emular una dirección fija, pero ese es otro cuento. El asunto es que resulta bastante sencillo, si uno tiene acceso a otro computador con IP fija, instalarle un programa de control remoto y así podremos espiar todo lo que hagan y controlarlo a veces sin que el usuario remoto se de cuenta. Ese es el principio de los troyanos y backdoors, que parecen cosa de magia negra, pero en realidad no son tan complicados. Pero me estoy alejando del tema.

Volvamos a lo que quiero. Mi idea es poder, desde cualquiera de nuestros computadores Windows, tener acceso al Raspberry con Linux, ya sea a su consola de comandos o bien a su interface gráfica. Yo lo hice para los dos casos y es muy cómodo de manejar.

Lo primero que hay que hacer es ir al Linux del Raspberry y habilitarle el SSH, que viene por defecto deshabilitado, eso se hace (si mal no recuerdo) con el menú Preferencias, Raspberry, Interfaces. Luego de habilitar el SSH estamos dejando una puerta abierta donde cualquiera podría entrar a nuestro equipo, así es que el segundo paso es cambiar el password. Por defecto el usuario es Pi y el password raspberry, mantenemos el usuario pi pero cambiamos el password de administrador a otro que sea seguro.

Son eso me parece que ya estamos listos para entrar de manera remota a la consola de Linux del Raspberry, en nuestro Laptop o equipo que deseamos usar como controlador, descargamos el programa Putty y también el Wireless Network Watcher, para ver que equipos están conectados a nuestra red privada y especialmente cual es la IP del Raspberry. Con eso nos conectamos como muestra el video y ya tenemos control de consola del Linux en el Raspberry, desde allí podemos hacer casi de todo, el proceso se muestra en el video..

Pero a los que nos gustan las ventanas y preferimos el entorno gráfico no nos podemos quedar contentos con acceder solo a la consola. Para acceder a cualquier otro equipo, incluso si tiene un sistema operativo diferente, Windows tiene una aplicación (bastante escondida) que se llama Escritorio Remoto o Remote Desktop. Esto debemos instalarlo en el equipo anfitrión también, es decir en la Raspberry, nos conectamos con Putty, entrramos usuario, password y en la consola escribimos:

sudo apt-get install xrdp

La raspberry instalará el escritorio remoto y luego estaremos listos para conectarnos como muestra el video, es como quitarle un dulce a un niño.

Y hasta allí voy por ahora, mi próximo paso será encender y apagar el Raspberry de manera remota desde cualquier parte de la casa, con un control que también compré en China y se comanda con un control similar al de la alarma del auto, es este, ya lo tengo prácticamente listo..


Es un aparatito muy interesante que también compré en China por 8 o 10 dólares, se trata de un transmisor de 200 metros de alcance (una cuadra y media a la redonda más o menos) que permite activar a 4 relés, con uno prenderé y apagaré la Raspberry y los demás creo que los usaré para prender y apagar luces en la casa. Me imagino que Michael Townley estaría feliz con un aparato de estos.

12 comentarios:

  1. jaja "etílico" es la palabra mágica. HAs hecho varias cosas que tengo en carpeta para el futuro cercano. Quiero instalar un servidor apache, etc. y el servicio de no-ip, creo que es fundamental tener una ip fija aunque sea bamba para acceder desde afuera de la red privada.

    Buena idea de crear otro usuario que no sea administrador para trabajar con ese el día a día. Yo estoy interesado en hacer cosas con el Arduino, cámaras de vigilancia por ejemplo, estoy pensando que cosas se podrían automatizar en la casa y en el auto, el Arduino es muy bueno para captar datos por la puerta serie, temperaturas, sonido, movimiento, etc. no cuesta nada!

    ResponderBorrar
  2. A propósito estaba pensando que es el regalo ideal del día del padre para Michaael Tonley ¡apuesto que está fascinado armando bombas con eso! jaja, lo voy a twitear altiro.

    ResponderBorrar
  3. Soy un completo y absoluto ignorante en estos temas, pero algo entendí (o quise entender) sobre tener varios computadores como efecto de tener sistemas operativos en unidades externas.
    ¿Eso me permitiría por ejemplo tener el autocad que consume Ram como condenado, en un dd externo, y conectarlo al compu solo cuando lo quiero ocupar?
    Si fuese así, sería espectacular, porque yo uso varios softwares de ingeniería que ponen muy lento el compu, incluso al estar usando solo el Excel

    ResponderBorrar
  4. PAblo, en ese caso específico (Autocad en una Raspberry) casi te podría asegurar que no funciona, por la gran cantidad de recursos que consume.

    Pero tu problema es mucho más sencillo de resolver, simplemente instalas el Autocad Portable en una Usb y listo, lo corres en cualquier equipo que tenga la RAm y el proocesador adecuados

    ResponderBorrar

  5. Tomas estimado,

    No pretendo entender su entrada de hoy.

    Es que está escrita en un lenguaje cuya locomotora me ha dejado atrás, de manera irreversible. Me pregunto si el tal tren se detuvo alguna vez en mi estación, y si yo estaba ausente en tal entonces.

    Me dirijo a usted en idioma del vino, que hoy recorre mis venas como Pedro por su casa.

    Saludos!

    ResponderBorrar
  6. Estimado Enrique

    In vino veritas
    In vino fraternitas

    Eso nomas

    ResponderBorrar
  7. Oye tomas te dejo un desafio tecnologico: ¿¿¿como obtener internet gratis via inalambrica o cableada ???....es increible lo cabronas que estan las compañias de teleco con el internet....

    Hace unos dias estuve sin internet y fue como estar sin agua....ya es un servicio indispensable para todo.

    ResponderBorrar

  8. Escuche Tomas, que aquí van mis memorias:

    Me desvelo por conseguir una copa de formas, de parte de una bestia que no sabe de fondos. Se ha vuelto algo seca mi parra; apenas se riega con un poco de tinta.

    He discutido a mis ancestros por largo tiempo, sin haber descorchado. La sombra del cuento se hizo novela, la tarde se hizo noche interminable; a mi Chile no le gusta vivir sin su alma.

    ResponderBorrar
  9. Si, no debería ser más que desempaquetar e instalar, Linux se toma su tiempo eso si. Lo que a mi me frena todavía (aparte que no me han llegado las SD de repuesto) es lo de la Ip fija, me inscribí en un servicio no-Ip pero la opción gratis hay que actualizarla todos los meses (obvio que prefieren que uno pague) todavía no me animo a probarla, como tengo servicio con DHCP un servidor no me serviría de mucho, para hacer pruebas dentro de la casa nomas.

    Sobre los dispositivos que se chupan, eso es por la corriente, muchos alimentan la RP con esos cargadores rascas que dan como 400mA y Raspberry considera como mínimo algo así como 3 o 4 amperes. Si le vas conectando más cosas más corriente consume hasta que los dispositivo se empiezan a chupar. Una fuente AT como la que tengo yo entrega como 8 amperes con 5V o sea tengo corriente para regalar, le puedo conectar lo que quiero sin problemas.

    Hay unos cargadores chiquitos de teléfonos Motorola que dan como 2.5 amperes, especiales cuando uno anda trayendo el Rpi en una mochila o lo que sea, un cargador de esos me funciona con un disco duro, un pendrive y un dongle para teclado y mouse todo conectado, ¡Ah, y además la pantalla! sin dramas

    ResponderBorrar
  10. Me corrijo, la fuente de poder ATX da hasta 40 amperes con 5 volt ¡tengo corriente para regalar!

    ResponderBorrar
  11. Hace algún tiempo, para no depender de servicios NO-IP, hice un pequeño script de PHP, que alojado en un hosting gratuito, respondía a un "wget" del equipo remoto y almacenaba en la base de datos el IP asignado.
    No funcionaba como DNS; pero me permitía tener un acceso bastante seguro al IP en cuestión...
    Creo que por ahí lo debo tener si te interesa (aunque es casi trivial de programar)...

    ResponderBorrar
  12. ¡Mándalo si lo encuentras! por último para ver como se hace porque nunca he programado nada útil en PHP (tarea pendiente, además de Java Script)

    ResponderBorrar

"Send me a postcard, drop me a line
Stating point of view
Indicate precisely what you mean to say
Yours sincerely, wasting away
Give me your answer, fill in a form
Mine for evermore
Will you still need me, will you still feed me
When I'm sixty-four"