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 :)



sábado, 11 de mayo de 2013

Servidor Apache y Samba con Raspberry Pi

Tras varios meses con los cacharros dejados de lado, tenía ganas de ponerme a enrredar un poco de nuevo. Decidí montar un servidor privado de páginas web y de archivos sólo por el hecho de ver cómo funcionaría y para ello instalé Apache (para servir webs) y Samba (para servir archivos y carpetas). Para sacar provecho a este último le incorporé al Raspberry un dico duro externo, ya que si tuviera que depender del espacio en la SD del Raspberry, mal vamos.

Tras instalar y configurar todo lo necesario (cosa para nada complicada), tanto en el Raspberry como en mi router tuve listo un servidor completo de webs (con soporte para HTML, PHP, MySQL, ...) y de archivos, y accesible desde internet.

El precio del consumo energético de todo el conjunto en un mes (suponiendo que esté todo las 24 horas encendido) viene a ser de unos 2 o 3 €, lo cual es genial.

Con todo esto, os animo a todos los que tengais un Raspberry Pi a haceros un servidor privado de este tipo, aunque sólo sea por enrredar un rato.

sábado, 12 de enero de 2013

Smart Garage. Una solución para gestionar un garaje particular o comunitario.

Muy buenas a todos, acabo de pulir algunos detalles de una aplicación que he estado haciendo durante las últimas tres semanas y aquí la dejo para quien quiera echar un vistazo.

Se trata de una aplicación para Android con la cual se gestiona un garaje particular o comunitario, permitiendo acceso a los usuarios que se necesite y denegándoselo a los demás. Es una forma más fácil de abrir dicho garaje sin tener que recurrir a el típico mandito.


Espero que os guste y comentad si lo hace :P

viernes, 23 de noviembre de 2012

Overclock en Raspberry Pi y pruebas con OpenCV

Por fin conseguí instalar correctamente OpenCV en la Raspberry con todo lo necesario (tras bastante tiempo y metiendo la pata varias veces). Nada más conseguirlo descargué unos códigos de prueba escritos en Python para enrredar un poco. Como resultado saqué en limpio tres programas: el primero me hace una captura desde la webcam y la guarda. El segundo saca por pantalla un streaming de la webcam y el tercero detecta mi cara y mis ojos (este lo retoqué al final para que sólo detectara la cara, para reducirle la carga al procesador).

La resolución de captura de la webcam debía ser muy (pero muy muy) baja porque con resoluciones más altas el procesado de ésta tiene una carga sensiblemente mayor en el procesador y da tirones. Hablamos de unos 160x120 píxeles. Por tanto, necesitaba una potencia de procesado que la Rasperry Pi no tiene.

Fue entonces cuando buscando en Google leí que con la última actualización del firmware de la placa habían habilitado el overclock y que además no afectaba a la vida útil de aparato (me froté las manos, y directo a meterle caña).

El overclock se configura con un programa de la Raspberry y es muy sencillo, pues viene con presets y sólo hay que seleccionar uno y reiniciar. Además, los señores programadores se han preocupado por la salud de nuestros ARM's y para que no se sobrecaliente nada han puesto limitaciones por temperatura y por corriente. Así da gusto. Además, el overclock se hace "por demanda", es decir, el procesador trabaja a sus 700 MHz normales y cuando esa velocidad se le queda pequeña sube automáticamente a lo que necesite.

Actualicé el firmware, y puse el overclock a 1 GHz en comparación con los 700 MHz normales (el máximo permitido por los presets). Es cierto que se nota más rapidez como es lógico, pero no es nada bestial. Ejecutando el mismo programa de OpenCV (de detección de la cara y los ojos) con overclock obtenemos algunos fps más y la verdad es que se agradecen. El arranque, la ejecución del sistema en sí y la navegación por internet son notablemente más rápidos.

Un punto muy bueno es que la temperatura del procesador no subía de los 45º con lo que no tuve que preocuparme por nada. Fuera ya de OpenCV, estuve compilando una librería durante 3 o 4 horas con el procesador a 1 GHz, y la temperatura seguía estable.

En definitiva, para los que tengamos un ordenador de estos, podemos ampliar un poco sus capacidades sin riesgo de destrucción, aunque siempre vigilando que nada salga fuera de lo normal :P

miércoles, 14 de noviembre de 2012

Imprimiendo con una impresora matricial con Arduino

¿Darle a un botoncito e imprimir todo lo que quieras con tu nueva y flamante impresora láser, a todo color y con buena resolución? Demasiado fácil. Yo prefiero ver letras hechas de puntitos, impresas lentamente, en blanco y negro y con el chirrido infernal que caracteriza a las impresoras matriciales.

Con este pequeño sistema consigo enviar información desde Arduino a la impresora e imprimirla. Evidentemente, esto está más que obsoleto hoy en día, pero me apetecía desenterrar esta vieja impresora :)



martes, 6 de noviembre de 2012

Pequeño mensajero con Python

Tras recibir mi Raspberry Pi en casa, le instalé el sistema operativo y los programas básicos y me puse directamente a hacer algo con Python. A parte de aprender lo más básico, hice unas cuantas conexiones cliente - servidor intercambiando caracteres y tal, para aprender a manejarme un poco con el lenguaje más que nada.
Tras varias pruebas, hice un programa que me permitía comunicarme con otro usuario de linux en mi misma red, usando la consola.

Ya sé que no es nada pero como primer programa en Python no está mal.