Não faz muito tempo, escrevi sobre o uso do Couchbase para sincronizar dados em um dispositivo Intel IoT Gateway. Nesse projeto, eu estava criando um aplicativo Java que era instalado em um dispositivo IoT que tinha bluetooth e Internet sem fio disponíveis. Esse aplicativo procurava iBeacons e sincronizava os dados com um servidor remoto e entre dispositivos.
Depois de projetar esse protótipo, decidi levá-lo para o próximo nível e criar um projeto de verão a partir dele.
Acima está o resultado final visual do projeto de verão no qual estou trabalhando. Deixe-me detalhar o escopo do que esse projeto realiza.
Embora o Intel IoT Gateway seja legal, ele não é tão popular quanto, por exemplo, o Raspberry Pi. Comprei dois dispositivos Raspberry Pi 3 que têm wireless e bluetooth incorporados. O objetivo aqui era colocar essas unidades Raspberry Pi em vários locais do escritório. Também comprei cinco iBeacons Gimbal para distribuir a algumas pessoas no escritório. Minha intenção era registrar o movimento desses membros da equipe à medida que eles navegassem pelo escritório durante o dia. Isso é demonstrado no painel da imagem acima.
O aplicativo Java que usava o Couchbase era quase idêntico ao que foi usado no postagem anterior do blog com algumas exceções. Em vez de usar um único documento para rastrear a atividade de cada beacon, foi criado um novo documento para cada atividade. Com isso, eliminei a necessidade de extrair dados do Couchbase Server, apenas salvar e enviar. A outra diferença é que um SDK personalizado do Couchbase Lite que suportasse a arquitetura ARM de um Raspberry Pi.
Embora o Raspberry Pi estivesse usando um aplicativo Java para se comunicar com o Couchbase Lite, o painel para visualizar a atividade, na verdade, usava Node.js e AngularJS. Com consultas N1QL, os dados foram agregados e usados nos gráficos da interface do usuário.
O código-fonte completo desse projeto pode ser encontrado em GitHub. Ele inclui o painel de controle e o código para o Raspberry Pi.