Paso 1: Idea General
Antes de empezar siempre es bueno para hacerse una idea general de cómo funciona el proyecto. Vamos a hablar en términos de bits software en lugar de dispositivos específicos porque el hardware que pasó a ser el que ya tenían, y no todo es necesario. Por supuesto en los pasos siguientes a entrar en más detalles.
¿Cómo funciona exactamente?
Cada miembro de la familia tiene un smartphone (lo siento pero esto es un requisito previo): tomemos A usuario, que tiene un teléfono con Android.
En este teléfono hay una aplicación que sigue a su actual ubicación (la aplicación funciona en iOS también). Cuando la aplicación detecta el usuario A ha cambiado de ubicación, envía la posición actual (coordenadas geográficas) a un servidor. El protocolo utilizado es MQTT, por lo que el servidor se llama al "broker" y la aplicación en el teléfono inteligente "publica" a él.
Una aplicación de node.js se ejecuta en un servidor ha "suscrito" a cada actualización para el usuario A, por lo que se informa de esta nueva posición. El servidor conoce las coordenadas geográficas de cada lugar posible para el usuario A: en casa, en el trabajo, etc.. Compara la posición actual a estos datos y concluye la ubicación del usuario. Luego hace una llamada a la API en la nube de chispa para el reloj cambiar en consecuencia.
¿Cómo sabe el servidor las coordenadas de cada lugar posible para este usuario? Les trae de una base de datos MySQL cada seis horas, así que si un usuario cambia su restaurante favorito o su lugar de trabajo, el código aún funciona, sólo tienen que actualizar las coordenadas en la base de datos
Ahora que el flujo de trabajo general es claro, nosotros podemos empezar!
Material necesario
Como se indicó anteriormente, debería poder usar hardware diferente ya que la mayoría de las herramientas que hemos utilizado un montón de plataformas de apoyo. Sin embargo, recomendamos lo siguiente:
- Frambuesa PI
- Núcleo de la chispa: este proyecto aprovecha las características muy específicas de la nube de chispa
- 74HC595 shift registra... pero regresaremos muy pronto!
- LED: un montón de ellos! En nuestro caso elegimos a cinco miembros de la familia. Cada uno tiene su color asignado (rojo/azul/blanco/amarillo/verde) y puede ser en 12 lugares diferentes (uno de ellos ser "Desconocido") por lo que es de 60 LEDs
- Cubierta: puesto que la parte interesante de este proyecto es, en nuestra opinión, la parte electrónica, el proceso general de construcción de la carcasa no es muy bien detallado (también porque no lo hacemos tan bien como queríamos!). La estructura interna fue hecha con madera contrachapada y la externa debía realizarse con acrílico
Tener 12 lugares diferentes vinieron de la inspiración para el proyecto, el reloj de Harry Potter, pero podría fácilmente cambiar a otra cosa y cambiar la carcasa por lo tanto