iBeacon SDK no Android

ibeacon sdk

Possíveis casos de uso e modelos de negócios para o beacon que permitem a interação do usuário dependente da localização, mesmo dentro de edifícios, estão sendo debatidos no momento. Publicidade e descontos na loja, pagamentos móveis, navegação, transporte público, localização em prédios públicos e museus e automação residencial são apenas as dicas do iceberg. E, claro, a onipresente coleta de dados – agora novo e com informações precisas de localização. Antes de aprender mais sobre a tecnologia iBeacon, também mencionaremos o SDK do iBeacon no artigo.

Qual é o hype?

O protocolo iBeacon desenvolvido pela Apple com base em Bluetooth Low Energy é suportado por uma variedade de dispositivos. O artigo explica os iBeacons e o Bluetooth Low Energy e usa o exemplo do desenvolvimento de um aplicativo Android para listas de compras dependentes do local para mostrar a interação dependente do local de um aplicativo com o iBeacons. A implementação é baseada no MOKOSmart iBeacon SDK.

iBeacon, Bluetooth 4.0, PASSOU A SER, INTELIGENTE. Wot?

A tecnologia básica do iBeacon é Bluetooth. Bluetooth Low Energy (PASSOU A SER), geralmente chamado de etiqueta de marketing Bluetooth Smart, foi incluído na versão 4.0 do padrão Bluetooth. O BLE não é compatível com versões anteriores chamadas Bluetooth Classic. Bluetooth 4.0 especifica que dispositivos compatíveis com padrão devem implementar uma ou ambas as variantes, isto é. Baixo consumo de energia ou clássico.

O BLE é implementado em quase todos os smartphones atuais, como o iPhone 4+ e o Samsung Galaxy 3+. Um iPhone pode funcionar como um receptor de sinais iBeacon e – ao contrário do Android – como um baliza em si. Android inclui drivers BLE da versão da API 18, isto é. Android 4.3. Aliás, os computadores atuais também são compatíveis com BLE. No Windows, Contudo, os drivers estão apenas a bordo do Windows 8 e desde meados de 2011, O BLE está disponível em computadores Apple.

O BLE continua a suportar uma variedade de dispositivos periféricos, como monitores de frequência cardíaca e helicópteros de brinquedo, termômetros, equipamentos de fitness e escovas de dentes, sim, escovas de dentes e tênis.

Interessante em relação ao iBeacons é o Sensor

Tag da Texas Instruments, que além de sua função como um iBeacon também pode medir a temperatura, umidade, pressão, e aceleração. A etiqueta do sensor também vem com um giroscópio, um magnetômetro, e dois botões de hardware. O dispositivo ideal para controlar remotamente as apresentações enquanto transmite e exibe a umidade e a temperatura das mãos do alto-falante. Eu acho que meu próximo projeto de caixa de areia será o palco assustador. Você pode encontrar uma lista detalhada de dispositivos no site oficial do Bluetooth.

Pronto para o GATT

O modelo de comunicação usado pelos dispositivos para troca de dados é chamado GATT – Perfil de atributo genérico. GATT define as funções do cliente e servidor. O cliente solicita dados do servidor via serviços. Um serviço agrupa vários pares de chave / valor atômico, que são chamados de características. Os serviços e as características são identificados por UUIDs e também podem conter descrições adicionais. Os serviços e suas características são catalogados na forma de perfis; a especificação define toda uma gama deles nos campos da saúde, esporte e fitness e – no nosso caso interessante – sensor de proximidade. Os perfis individuais, seus serviços e características podem ser encontrados no portal do desenvolvedor do Bluetooth em Especificações do GATT.

gatt ibeacon sdk

Chegar ao farol

Então, o que são iBeacons? O iBeacon é uma tecnologia muito simples (e uma marca comercial da Apple que permite a interação dependente da localização com os aplicativos. Um farol envia um sinal que pode ser recebido com dispositivos compatíveis com BLE e processado por aplicativos instalados nele. O sinal contém a identificação do farol e a força da recepção.. Os iBeacons são, Portanto – contrário a declarações imprecisas na imprensa – incapaz de fornecer conteúdo ou acompanhar o comportamento do cliente. Essa é a responsabilidade dos aplicativos receptores e, portanto, dos desenvolvedores.

iBeacon IRL

Implantações maiores de iBeacons na Alemanha provavelmente levarão muito tempo, mas existem alguns exemplos dos EUA e da Holanda. Por exemplo, A Major League Baseball equipou 28 estádios com iBeacons e os usa, entre outras coisas, para check-ins no aplicativo MLB “No estádio”.

Uma vitrine foi implementada na Casa Rubens em Antuérpia, que oferece informações básicas, como raios X de pinturas e jogos de geocaching para visitantes.

O principal exemplo em termos de tamanho vem da própria Apple. Sobre 250 As lojas da Apple foram equipadas com iBeacons. Em combinação com o aplicativo Apple Store, mensagens dependentes do local são enviadas aos compradores que estão na loja. Contudo, as possíveis interações atualmente parecem bastante limitadas: As primeiras revisões relatam apenas dois diferentes (e bastante genérico) mensagens que eles teriam recebido. Ofertas especiais ou informações específicas sobre produtos individuais próximos não foram oferecidas.

Funcionalidade

O SDK do iBeacon não usa um perfil BLE separado, mas pacotes de publicidade Bluetooth, isto é. pacotes de transmissão, que são usados ​​para descobrir dispositivos Bluetooth. Se você estiver interessado na estrutura exata do pacote, você pode ler isso, por exemplo, no blog de Adam Warski.

Esse pacote é enviado em intervalos regulares que podem ser configurados via GATT. Ele contém o UUID do farol, normalmente pré-configurado pelo fabricante. Todos os beacons do MOKOSmart enviam o mesmo UUID. IDs maiores e menores também são usados ​​para identificar os beacons individuais. Os IDs principais podem representar, por exemplo, uma filial de uma loja ou restaurante em uma cadeia de franquias, os IDs menores uma única prateleira ou uma mesa.

além disso, a força do sinal está incluída no pacote de publicidade, que pode ser usado para medir a distância do receptor do farol. Contudo, você não pode esperar alta precisão aqui, pois o sinal pode ser obstruído por obstáculos espaciais, como móveis ou pessoas.

O SDK do IBeacon oferece dois conceitos para a interação de um aplicativo com essas informações: monitoramento de abrangência e região. Ao variar, a distância ao farol é determinada. Devido à imprecisão mencionada acima, isso ocorre em apenas três etapas. “Imediato” é uma distância de alguns centímetros, “Perto” está a poucos metros e “Longe” é uma distância de mais de dez metros. Só é possível variar se o aplicativo de recebimento estiver ativo.

Isso não é necessário para o monitoramento da região. Neste modo, um aplicativo inativo também pode ser notificado ao entrar ou sair de uma região definida por um ou mais beacons. O mais tardar agora, está ficando claro o que torna essa tecnologia atraente para publicidade e varejo. além do que, além do mais, para a maioria dos faróis, a força da transmissão e o intervalo podem ser configurados para otimizar a vida útil da bateria com base nas condições locais.

“A maioria dos faróis” implica que há mais de um fabricante de iBeacons no mercado. De fato, Há muito poucos: MOKOSmart, Kontakt.io, Gelo, eu gosto de você, e cardan. Além do hardware, esses fabricantes também oferecem soluções de serviço e nuvem iBeacon SDK para o gerenciamento de beacons. Os entusiastas entre nós podem configurar os próprios transmissores iBeacon com relativamente pouco esforço usando Raspberry Pi ou Arduino.

Lista intermitente

Vamos assumir a seguinte situação para o exemplo de implementação: O desenvolvedor está no supermercado no sábado de manhã. Crianças famintas estão esperando em casa e à tarde há uma venda de bolos na escola. Só então o fim de semana realmente começará. Tão boas razões para se apressar. Infelizmente, a lista de compras é longa e não está adaptada ao layout do supermercado. Se o supermercado estivesse equipado com iBeacons nos diferentes departamentos, um aplicativo de lista de compras pode destacar as entradas apropriadas e reduzir significativamente o nível de estresse do (claro que completamente fictício) desenvolvedor.

Como nosso aplicativo precisa se comunicar com Bluetooth, primeiro exigimos autorizações BLUETOOTH e BLUETOOTH_ADMIN no manifesto do Android. Para poder usar o serviço oferecido pela API Estimote para interagir com os iBeacons, também devemos torná-lo conhecido e colocar a API baixada em nosso diretório libs /.

Nosso protótipo consiste em um simples, lista pré-preenchida e regiões predefinidas, isto é. departamentos em nosso supermercado. Uma entrada da lista sabe a que região está atribuída. No nosso exemplo, nós atribuímos apenas um farol para cada região. Também é possível combinar uma lista de beacons em uma região. A atividade principal é responsável por reconhecer a região atual e encaminha essas informações para um adaptador, responsável por destacar as entradas da lista. além do que, além do mais, adicionamos a opção de selecionar a região ativa sem beacons para tornar nossa interface do usuário testável sem hardware adicional.

No método Create da atividade, instanciamos um gerenciador de beacon do MOKOSmart para nosso aplicativo. Utilizamos um ouvinte para o monitoramento da região, tornando a região atual conhecida pelo nosso adaptador e definindo o intervalo para as varreduras de beacon. No exemplo, definimos que um segundo deve ser verificado e, em seguida, 250 ms deve esperar. Esses valores são escolhidos de forma relativamente agressiva para obter resultados rápidos em testes. Na realidade, o difícil equilíbrio entre capacidade de resposta vs. Para atingir a vida útil da bateria. Neste protótipo, também preenchemos nossa lista de compras com valores fictícios. Começamos ou paramos o monitoramento no () Iniciar ou onStop () método da atividade principal.

The ItemList

O adaptador é implementado como um derivado do adaptador android.widget.Array e substitui o get View () método, chamado para cada linha a ser exibida. O título do item está escrito na primeira linha da revisão definida no layout, no segundo a região atribuída.

Como pode ser visto na Listagem 1, a região inserida é transferida para o adaptador na região inserida () retorno de chamada do MonitoringListener, que é atribuído ao nosso BeaconManager: lista de itens Adaptador. segregação (região). Ao chamar getView (), isso verifica se a região da entrada na linha corresponde à região atual. Se esse é o caso, pinta o fundo da linha. Adicional ou alternativamente, pode-se também colocar as entradas para a zona atual no início, classificando a lista.

O código do aplicativo é claro; não é preciso muito esforço de implementações para receber sinais do iBeacon e manipulá-los no aplicativo. Os conceitos e monitoramento do iBeacon são mapeados no SDK do MOKOSmart iBeacon, para que possam ser usados ​​intuitivamente. O código fonte completo do aplicativo pode ser encontrado no GitHub.

Conclusão e perspectivas

Vimos que é fácil interagir com o iBeacons usando o MOKOSmart iBeacon SDK. Portanto, não espero grandes obstáculos na tecnologia de implementação, mas sim na implantação dos faróis e no ajuste da potência de transmissão. Esses parâmetros têm um impacto direto na capacidade de resposta do aplicativo quando o local muda. Em qualquer caso, o balanceamento deve ser difícil.

Para particularmente interessante, por exemplo. B. na área de automação residencial, Considero a combinação de iBeacons com sensores, como na etiqueta do sensor da Texas Instruments mencionada acima. A Estimote também lançará beacons móveis com sensores de movimento e temperatura no mercado com Estimote Stickers. As primeiras visualizações do desenvolvedor devem ter sido entregues no final de outubro 2014, mas nenhum kit foi enviado até o final de 2014.

Resta saber se a área de aplicação "Navegação interna" pode ser mapeada de forma robusta com esta tecnologia. Devido à suscetibilidade do sinal Bluetooth a fatores de interferência, seria necessária uma iluminação forte com sinais iBeacon da área correspondente e cálculos de posição usando triangulação com planos de sala. Soluções apropriadas são oferecidas pelo MOKOSmart (SDB de navegação interna iBeacon) e vários outros fabricantes, como LabWerk, mas o autor não tem conhecimento de nenhum relatório prático.

Com o desenvolvimento de um aplicativo interagindo com o iBeacons, aspectos de segurança e proteção de dados também devem ser levados em consideração. Devido à simplicidade do sinal, O iBeacon é propenso a falsificação, que não deve ser esquecido durante o desenvolvimento. Dados como a localização atual e o perfil de movimento que podem ser coletados com base no comportamento do usuário também têm uma grande necessidade de proteção.

MOKOSMART iBeacon SDK

solução ibeacon sdk

 

Fale com um especialista