Algunas familias tienen un horario complejo: Los niños tienen actividades escolares y extracurriculares, los padres tienen eventos importantes que deben recordar, todos tienen numerosas citas, etc.
Si bien, se puede realizar un seguimiento de todo con el teléfono móvil y una aplicación, ¿No sería mejor tener una pantalla grande de bajo consumo en casa, en la que mostrar el calendario de toda la familia?
¡Conoce el calendario E Ink creado por Javier Pena!
El hardware utilizado
La creación del calendario comenzó como un proyecto de vacaciones, así que intenté reutilizar todo lo que pude. Esto incluía una Raspberry Pi 2 que no se había utilizado durante demasiado tiempo.
No tenía una pantalla de tinta electrónica, así que tuve que comprarla.
Afortunadamente, encontré un proveedor que proporcionó controladores de código abierto y ejemplos listos para pantallas optimizadas para Raspberry Pi, que se conectan mediante algunos puertos GPIO.
Mi familia también quería cambiar entre diferentes calendarios y eso requería algún tipo de información, en lugar de agregar un teclado USB, opté por una solución más simple.
Compré un teclado de matriz de 1 × 4 y eso me permitió conectar el teclado a algunos puertos GPIO de la Raspberry Pi.
Finalmente, necesitaba un marco de fotos para albergar toda la configuración. Se vería un poco desordenado en la parte posterior, pero cumpliría su función final.
El software utilizado
Me inspiré en un proyecto similar y comencé a escribir el código de Python para mi proyecto. Necesitaba obtener los datos de dos áreas:
- Los datos meteorológicos: Recogidos de la API de OpenWeather.
- Los datos del calendario: Recogidos desde el servidor local, mediante el estándar CalDav.
Mientras espere a que llegasen algunas parte del hardware, utilicé un enfoque modular para la entrada y la pantalla para poder depurar la mayor parte del código sin el hardware.
La aplicación de calendario admite controladores, y escribí un controlador Pygame para ejecutarlo en una PC de escritorio.
La mejor parte de escribir el código, fue poder reutilizar proyectos de código abierto existentes, por lo que acceder a las diferentes API fue fácil.
Podía concentrarme en la interfaz de usuario (tener calendarios semanales por persona y diarios para todos, lo que permite la selección de calendario mediante el teclado) y tuve tiempo de agregar algunos toques adicionales, como protectores de pantalla personalizados para ciertos días especiales.
El último paso de la integración fue, asegurarme de que mi aplicación de calendario se ejecutase correctamente. Usé una imagen básica del sistema operativo Raspberry Pi e instalé la aplicación como un servicio systemd para que sobreviviera a fallas y reinicios del sistema.
Una vez que terminé todo, cargué el código en GitHub. Por si deseas crear un calendario similar, ¡No dudes en echarle un vistazo y reutilizarlo!
El resultado final
El calendario se ha convertido en un electrodoméstico de uso diario en nuestra cocina. Nos ayuda a recordar nuestras actividades diarias, e incluso los niños lo usan para revisar su horario antes de ir a la escuela.
En una nota personal, el proyecto me ayudó a apreciar el poder del mundo de la programación abierta. Sin los controladores y las bibliotecas de código abierto y API abiertas, todavía estaríamos organizando nuestros horarios con papel y un bolígrafo. Loco, ¿No?
Fuente: Open Source bajo Licencia Creative Commons
artículo obra de Javier Pena.
[azonpress template=”list” asin=”B07C7FHJDX,B01N48NOXI,B08BKGX6MJ”]