11.1. Porquê Bluetooth

A ligação em rede coloca a câmara numa rede Wi-Fi ou Ethernet para que possa comunicar com qualquer dispositivo acessível a partir daí. Um portátil no corredor, um servidor noutro continente, um telemóvel em roaming em redes celulares. Esse alcance vem com pré-requisitos. Tem de existir uma rede. Tem de haver um ponto de acesso ao alcance, têm de estar disponíveis algumas credenciais, tem de existir um router disposto a atribuir um endereço à câmara. A câmara também tem de manter o rádio (ou a porta Ethernet) a funcionar com intensidade suficiente para manter a ligação.

O Bluetooth cobre o caso oposto – curto alcance, sem infraestrutura, baixo consumo. A câmara e um telemóvel na mesma divisão trocam dados através de uma ligação rádio direta, sem nada entre eles. Sem ponto de acesso, sem router, sem necessidade de qualquer um dos lados estar numa rede. O rádio fica maioritariamente desligado entre breves rajadas de atividade, pelo que uma bateria que mal sobreviveria um dia com Wi-Fi pode durar meses.

11.1.1. Quando o Bluetooth é a ferramenta certa

Os casos mais comuns numa câmara:

  • Um telemóvel ou tablet emparelha com a câmara. Um utilizador próximo abre uma aplicação no telemóvel e configura a câmara, lê o seu estado ou descarrega resultados – sem precisar primeiro de colocar ambos os dispositivos na mesma rede Wi-Fi. A maioria dos telemóveis suporta nativamente o Bluetooth Low Energy, pelo que a experiência do utilizador é «abrir a aplicação, premir ligar», e não «juntar-se primeiro a esta rede».

  • Um wearable ou sensor envia dados para a câmara. Uma cinta de frequência cardíaca, um termómetro, um beacon, um interruptor de contacto – são todos dispositivos alimentados por bateria concebidos em torno do Bluetooth Low Energy. A câmara liga-se como cliente, lê os seus valores e incorpora os dados em tudo o que está a fazer.

  • A câmara publica um pequeno fluxo de estado. Nível da bateria, último objeto detetado, taxa de fotogramas – alguns números expostos para qualquer dispositivo próximo que queira lê-los. O emparelhamento é opcional; para dados não sensíveis, a câmara pode anunciar os valores diretamente sem necessidade de qualquer ligação.

  • Duas câmaras (ou uma câmara e um microcontrolador) partilham dados sem rede. Ambos os extremos se conhecem; ambos estão no mesmo edifício; não há razão para os bytes viajarem até à cloud e voltarem para atravessar a sala.

11.1.2. Quando a ligação em rede é a ferramenta certa

As compensações do Bluetooth são inadequadas para vários casos comuns:

  • Contrapartes fora de alcance. O Bluetooth Low Energy tem na prática um alcance de alguns metros, e algumas dezenas de metros no espaço livre, na melhor das hipóteses. Qualquer coisa do outro lado de um edifício, de uma cidade ou da internet precisa de Wi-Fi ou Ethernet.

  • Ligações de elevada largura de banda. O Bluetooth Low Energy oferece na prática algumas dezenas a algumas centenas de kilobits por segundo. A transmissão de fotogramas ou qualquer vídeo com significado precisa de Wi-Fi.

  • Comunicação em grupo de muitos-para-muitos em infraestrutura partilhada. Uma sala cheia de dispositivos que comunicam todos com um servidor, ou uma malha de câmaras a partilhar resultados – esse padrão é para o que uma rede IP foi construída.

11.1.3. Low Energy, não clássico

«Bluetooth» em uso casual cobre duas pilhas de rádio distintas. O Bluetooth Clássico é o que existe em auscultadores sem fios, em sistemas de áudio para automóvel e em ligações de teclado/rato: um rádio de qualidade de voz e áudio, uma pilha comparativamente complexa e um consumo de energia notável. O Bluetooth Low Energy (BLE) é um protocolo separado e mais recente que partilha o nome de marca e a banda dos 2,4 GHz mas muito pouco mais. É construído em torno de curtas e infrequentes rajadas de rádio para manter o consumo médio mínimo, e em torno de um modelo de dados chave/valor em vez de áudio em fluxo contínuo.

O MicroPython na câmara suporta apenas BLE. O Bluetooth Clássico não faz parte da API. «Bluetooth» abaixo significa BLE.

11.1.4. O que muda em relação ao modelo de rede

O BLE tem a mesma pilha de cinco camadas que a ligação em rede, mas as camadas superiores comportam-se de forma diferente:

  • Não existe a abstração de «abrir um socket e enviar bytes». O BLE é construído em torno de uma pequena base de dados chave/valor que um lado aloja e o outro lê, escreve ou subscreve. A câmara publica valores com nome (um nível de bateria, uma temperatura, um registo de comandos); o par lê-os ou observa-os.

  • Não existe endereçamento por nome. Os dispositivos identificam-se a si próprios anunciando uma curta transmissão que descreve quem são; os pares pesquisam esses anúncios e escolhem um para ligar.

  • O rádio está maioritariamente inativo. Ambos os extremos acordam no momento da ligação com que frequência acordar e comunicar. Entretanto, ambos voltam a adormecer.

Essas três diferenças são o que afasta o resto da API BLE do modelo de socket.