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.





lunes, 5 de noviembre de 2012

Mi nueva página web

Muy buenas a todos. Actualmente me encuentro estudiando el "Ciclo Formativo de Grado Superior de Desarrollo de Aplicaciones Multiplataforma" (largo, ¿eh?) y aprovechando que estamos aprendiendo HTML y demás me he construido una web para colgar ahí mis cosillas. Seguramente habreis acabado en este blog a través de ahí, pero para quien no lo haya hecho os dejo la web para que le echeis un vistazo si quereis :)