No hace mucho escribí sobre el uso de Couchbase para sincronizar datos en un dispositivo Intel IoT Gateway. En este proyecto estaba creando una aplicación Java que se instalaba en un dispositivo IoT que tuviera bluetooth e internet inalámbrico disponibles. Esta aplicación escanearía en busca de iBeacons y sincronizaría los datos con un servidor remoto y entre dispositivos.
Desde que diseñé ese prototipo, decidí llevarlo al siguiente nivel y crear un proyecto de verano a partir de él.
![]()
Arriba está el resultado visual del proyecto de verano en el que he estado trabajando. Permítanme desglosar el alcance de lo que este proyecto logra.
Aunque el Intel IoT Gateway es genial, no es tan popular como, por ejemplo, el Raspberry Pi. Fui y compré dos dispositivos Raspberry Pi 3 que tienen integrado inalámbrico y bluetooth. El objetivo era colocar estas unidades Raspberry Pi en varios lugares de la oficina. También compré cinco Gimbal iBeacons para distribuirlos entre algunas personas de la oficina. Mi intención era registrar el movimiento de estos miembros del personal a medida que navegan por la oficina a lo largo del día. Así lo demuestra el panel de control de la imagen anterior.
La aplicación Java que hacía uso de Couchbase era prácticamente idéntica a la que se utilizó en el proyecto entrada anterior con algunas excepciones. En lugar de usar un único documento para seguir la actividad de cada baliza, se creó un nuevo documento para cada actividad. Con esto he eliminado la necesidad de extraer datos de Couchbase Server, sólo guardar y empujar. La otra diferencia es que un SDK personalizado de Couchbase Lite que soportara la arquitectura ARM de una Raspberry Pi.
Mientras que la Raspberry Pi utilizaba una aplicación Java para comunicarse con Couchbase Lite, el panel de control para ver la actividad en realidad utilizaba Node.js y AngularJS. Con consultas N1QL, los datos se agregaban y se utilizaban en los gráficos de la interfaz de usuario.
El código fuente completo de este proyecto puede consultarse en GitHub. Incluye el panel de control y el código para Raspberry Pi.