Día 4 — ¡Casi terminado!

Publicado el: 26 de julio de 2020
Última actualización: 10 de septiembre de 2020
cd ..

Estuve dos días escribiendo el código (ahora disponible en GitHub), y así es cómo funciona:

El editor

Es una página hosteada en Vercel (no quería usar mucha CPU de RasPi, así que la hosteé afuera): esta página. En esta, le decís la IP de la RasPi y la página mediante llamadas HTTP obtiene la configuración (lo explico luego).

Si no estás logueado con Spotify, el editor en sí se encargará de todo el Authorization Flow y le enviará las credenciales a la RasPi.

Tiene una interfaz tipo dashboard, con todos los valores personalizables. Cuando terminaste de editar la configuración, esta se envía a la RasPi vía POST.

Finalmente, esta página tiene una API que le permite a la RasPi enviarle las credenciales de Spotify y que vuelva la canción con toda la metadata.

El Editor

El Wake-up-ator (WUA)

Está compuesto de dos partes: la primera es el editor server, que es el encargado de recibir los llamados del Editor. Tiene dos métodos: GET y POST, los cuales envían y reciven-escriben la configuración respectivamente.

La segunda parte está formada de varios scripts de Python que controlan las luces y la música. Cada 15 minutos, un cron ejecuta main.py, el cual decide qué hacer dependiendo de la hora: puede encender las luces, cambiar el color, o encender la alarma.

Diagramas

Flujo de Login
Flujo de seteo de configuración
Flujo de obtención de la canción

Cosas que no deberían ser como son

← Día 3 | Día 5 →