Otro de los avances de este fin de semana ha sido que finalmente he conseguido enviar imágenes desde la Raspberry mediante comandos de WhatsApp. Esta ha sido la primera imagen enviada:
La imagen es bastante mala, lo sé, pero mi webcam ha pasado por tiempos mejores.
El método fue el siguiente: conecté una antigua webcam USB a la Raspberry. Instalé la aplicación “fswebcam”, que permite tomar capturas de pantalla de un dispositivo de vídeo (en este caso, la webcam, /dev/video0), y almacenarlas como imágenes. Tras comprobar que esto funcionaba, conseguí por fin modificar el código de Yowsup para que procesara adecuadamente el envío de imágenes, gracias a un código compartido en la web de proyecto, que no me costó demasiado adaptar para que se ejecutara al recibir comandos desde WhatsApp, de una manera similar a como activo y desactivo los relés y el sensor de movimiento.
Las posibilidades de esto son enormes: la idea que tengo ahora es modificar el código de aviso del sensor de movimiento PIR para que, además de avisar de cuándo se ha detectado movimiento, realice una captura automática con la webcam, y la envíe al teléfono. Es decir, tener la posibilidad de tomar capturas bajo demanda, o bien de manera automatizada ante eventos externos.
¿Mejoras? Unas cuantas: la primera es que el código compartido no es capaz de hacer el envío de la miniatura asociada a la imagen, lo que produce en algunas ocasiones que WhatsApp dé un error en Android al intentar mostrar la miniatura (aunque luego la imagen se ve bien). La segunda es conseguir una webcam mejor. En cuanto a la tercera, sigue habiendo un problema: la webcam tiene que estar conectada a la raspberry, lo que no resulta demasiado práctico si el sensor de movimiento está, por ejemplo, en la entrada (y conectado con la raspberry por RF). Sería interesante poder hacer uso de una webcam IP, o algún sistema de captura de imágenes para Arduino.
Por cierto, aunque la imagen que encabeza el artículo es la primera que transmití de manera controlada por WhatsApp, no es en realidad la primera imagen enviada. Hubo otras dos antes:
Esta es la primera imagen que envié al móvil desde la Raspberry, antes de realizar la integración con la webcam. La envié con un comando desde la raspberry, para probar la efectividad de la librería de envío de mensajes.
En cuanto a esta otra, en la primera imagen que envié tras integrar la captura de la webcam en el sistema de envío de mensajes de WhatsApp. Pero, de nuevo, fue enviada desde la raspberry hacia el teléfono, antes de implementar la lógica que permite capturar la imagen desde el teléfono.
Por cierto, lo que se ve en ambas capturas es una estantería de mi estudio llena de libros, y el reloj de riego automatizado.
Ahora sí que sí. Escribía hace unos días que había implementado un sistema de control de relés a través de la Raspberry, utilizando como sistema de mensajería WhatsApp. Pero que ese sistema, que combinaba el uso de una librería en python para procesar el paso de mensajes con un script programado en bash, no era del todo funcional. Pues bien, después de un tiempo de trasteo, he conseguido que todo el sistema funcione:
Finalmente he optado por prescindir del script en bash, y programar la lógica necesaria dentro de la librería python. Para ello, he extendido la funcionalidad de la misma: existía una funcionalidad que permitía el intercambio interactivo de mensajes entre línea de comandos y el contacto remoto. He copiado este sistema de mensajería en una nueva funcionalidad, que en vez de mostrar los mensajes por pantalla, los parsea y ejecuta.
Para ello, he importado el sistema de control de los GPIO que proporciona WebIOPi dentro de yowsup, y a partir de ahí, tan sólo se ha tratado de adaptar la lógica del script bash a la función que procesa los mensajes parseados que se reciben por parte del contacto móvil.
Si alguien está interesado, puedo pasar el fichero py, pero que no espere mucha belleza en el código, ya que es mi primer programa python.
Etiquetas: domótica, electroválvula, python, raspberry, webiopi, whatsapp, yowsup
Ya he hablado del aerogenerador que he instalado, y de la Raspberry con la que ando trasteando. Y como no podía ser menos, he “unificado” ambos proyectos. Pasos naturales, que se dice.
En primer lugar, como se puede apreciar en el vídeo anterior, el aerogenerador es todo un éxito. Sigue sumamente bien el viento y empieza a girar con muy poca cantidad de aire aunque, claro, necesita una cantidad moderada de viento para rendir los 550W de capacidad máxima que tiene. Pero, de momento, al tratarse de un sistema aislado que genera una salida de 12V DC, me basta y me sobra (mientras consigo un inversor de corriente a 220V AC). Y eso, combinado con una batería convencional de coche de 12V y 60 Ah, permite hacer cosas divertidas como la siguiente:
Lo que se aprecia es el controlador del aerogenerador. Recibe la electricidad producida por el aerogenerador (12V AC trifásica), la convierte a 12V DC, y carga la batería. Por otro lado, proporciona una salida 12V DC. Y es ahí donde he conectado un cargador de mechero de coche modificado, que transforma los 12V DC en 5V DC, y lo sirve mediante un conector MicroUSB. Y es aquí donde se conecta la Raspberry. ¿No está mal, no?
Cuando llegue el inversor seguiremos haciendo diabluras, pero de mayor calado.
Etiquetas: aerogenerador, raspberry