domingo, 16 de junio de 2013

Centro de descargas con Raspberry Pi

Muy buenas a aquellos que me lean. Esta vez me ha dado por el Raspberry Pi. Resulta que estuve leyendo sobre cómo descargar con pyLoad (un gestor de descargas parecido a JDownloader) y sobre cómo compartir unidades en red local y me gustó la idea de tener el Raspberry como un centro de descargas, es decir, el Raspberry conectado a la red sin pantalla, ratón ni teclado y que únicamente tenga la función de descargar.

Los programas que le he instalado son:

  • pyLoad (gestor de descargas): Es un programita simple escrito en Python. Tiene soporte actualizado para servidores como Mega, RapidShare, MediaFire, y un largo etcétera. A su vez tiene una amplísima gama de plugins para, por ejemplo, reconocer captchas, descompresión de descargas automática, y muchísimos más. Tiene la opción de instalarle o no una interfaz gráfica y también posee la alternativa de usarlo mediante interfaz web. Elegí la interfaz web, por supuesto.
  • Servidor Samba: Tengo modificada la configuración de pyLoad para que las descargas se sitúen en un disco duro externo, conectado al Raspberry, el cual se monta auntomáticamente en el arranque del sistema. Utilizo samba para compartir este disco duro en mi red local.
  • Servidor Apache: No es necesario, pero yo lo he instalado para servir una página web donde se muestren links a los distintos recursos compartidos y demás, para evitar tener que memorizar números de puertos.
  • Cliente NO-IP: No-Ip es un servicio que te ofrece un "dominio" gratuito. El cliente instalado en el Raspberry envía cada cierto tiempo mi IP externa a los servidores de No-Ip y yo accedo a dicha IP por medio de un dominio. A efectos prácticos es como tener una IP externa fija y siempre accedo a mi red por el mismo dominio.
  • SSH: Viene pre-instalado en la distribución Raspbian Wheezy y permite controlar el cacharro desde un ordenador externo. Lo único que he hecho es configurarlo para darle más seguridad y evitar que puedan entrar conexiones no deseadas.
También he programado scripts en Bash para que me inicie todos los servicios que necesito en el arranque del sistema y he creado algunos usuarios con sus respectivos permisos para probar el acceso multiusuario a Samba y pyLoad.

Como resultado he conseguido un cacharro que, encendido las 24 horas todos los días del mes, apenas consumirá unos 4€ en electricidad, puede estar bajando constantemente o en el rango de tiempo que se desee, puede bajar a la velocidad que quieras (por si no quieres tener problemas de lentitud en tu conexión mientras estás usando internet), se puede controlar remotamente (no precisa de pantalla ni periféricos), puede llegar a tener un buen control de usuarios y permisos y almacena las descargas en un disco duro externo, el cual puedes desconectar en un tris y llevártelo a donde sea, o simplemente pasar las descargas a otro ordenador.

En definitiva, otro buen cacharro más puesto a funcionar :)

Imágen del la interfaz web de pyLoad:


sábado, 1 de junio de 2013

Monitorización en tiempo real de un sistema con Arduino a través de la web

Muy buenas a todos. Acabo de terminar una prueba que he estado haciendo los últimos días. Se trata de poder ver el estado de una entrada analógica de Arduino mediante un gráfico actualizado a tiempo real y desde la web.

En este caso lo he hecho con una entrada analógica para simular la señal entrante de un sensor determinado (como puede ser un sensor de nivel), pero la verdad es que también se puede monitorizar una entrada digital o cualquier variable guardada en el Arduino (por ejemplo una variable que vaya contando cuantas veces se completa un ciclo, o lo que sea).

¿Por qué he elegido la web para ver los datos? Últimamente le estoy cogiendo gustillo a hacer procesos por medio de internet ya que no necesitas instalar ningún programa en ningún sitio, sino que todo se carga en tu navegador preferido a través de una página web y sólo necesitas un navegador para acceder a la aplicación (y conexión a internet, claro).

El cacharro consiste en un Arduino conectado a internet que tiene conectado un potenciómetro en la entrada analógica para hacer la prueba (en un caso real podría ser un sensor, aunque también un potenciómetro). Por otro lado, un servidor ya sea en la misma red local o un servidor externo, que es el que sirve la página web y se encarga de el tráfico de información entre Arduino y los usuarios.
La página se actualiza dinámicamente gracias a peticiones AJAX que realiza el cliente.

En fin, aquí os dejo un vídeo cortito de demostración. Espero que os guste :)