U-BLOX NINA B112/B302 - Aprendendo como o Bluetooth se conecta de maneira fácil
Útil para aprender como o Bluetooth como funciona, utilizando o BREAKOUT para U-BLOX NINA B112 e U-BLOX NINA B302.
Você pode conectar o U-BLOX NINA B302 na USB do PC e criar uma aplicação e criar uma aplicação para conversar com ele via COMM ou LINUX via TTY.
Interface de linha de comando interativa BLE
Este tutorial de exemplo da Nordic é um programa de amostra para ajudar o engenheiro a aprender sobre a prática de Bluetooth.
A seguir estão algumas documentações sobre este exemplo para praticar.
https://www.taterli.com/nrf5/nrf5/ble_sdk_app_interactive.html
O que você precisa?
Baixar o SDK da NORDIC
nRF5 SDK downloads - nordicsemi.com
SEGGER STUDIO e consequentemente um gravador J-LINK SEGGER, ou gere o HEX e grave a APP e SOFTDEVICE (já incluso) com seu gravador preferido.
SEGGER - The Embedded Experts - Downloads - Embedded Studio
Você precisará de pelo menos duas placas de desenvolvimento para brincar com o anúncio, procurando dispositivos Bluetooth e conexão.
O código fonte e *.hex fornecidos pela Nordic são para U-BLOX NINA B302 e U-BLOX NINA B112, pois são os core NRF52832 e NRF52840.
Para o U-BLOX NINA B112, altere
C:\SDK16\components\boards
pca10040.h para
#define RX_PIN_NUMBER 5
#define TX_PIN_NUMBER 6
bem como os LEDS
#define LED_1 8
#define LED_2 11
#define LED_3 12
#define LED_4 23
(Pinos do módulo 1,2,3,4)
(para ser compatível com U-BLOX NINA B112)
(no U-BLOX NINA B302 será via USB)
#define LED_1 13
#define LED_2 14
#define LED_3 15
#define LED_4 16
(Pinos do módulo 1,2,3,4)
Grave ambas as placas com o mesmo firmware.
Como transferir o programa para o seu U-BLOX NINA B302 ?
O esquema elétrico é este
-Botão de RESET;
-Botão de BOOTLOADER (W102/W106);
-Plugável no PROTOBOARD;
-Acesso às várias GPIOS.
Pequena
72mmX21mm
Muito fácil de utilizar.
Use o gravador SEGGER JLINK para gravar o BREAKOUT com módulo U-BLOX NINA B112 e U-BLOX NINA B302, conecte nos pinos do SWCLK (pino 7) e SWDIO (pino 9) do SEGGER JLINK nos pinos SWDCLK e SWDIO do BREAKOUT (pinos nas laterais, próximo à antena). Não esquecer de ligar os GND do BREAKOUT no GND do SEGGER JTAG, bem como alimentar o BREAKOUT com 3.3V.
Jogando com a conectividade Bluetooth através do console
Uma vez que o firmware é flash, a conexão USB também é a porta virtual. Conecte-os ao PC e abra a porta usando um console serial como Putty ou Teraterm. Para o U-BLOX NINA B112 foi utilizado um conversor de USB para SERIAL.
Configurações da porta serial: Baudrate é 115200bps, dados de 8 bits, 1 stop bit, sem paridade, sem controle de hardware.
Uma vez conectado através da porta COM, você pode começar a emitir comandos
Comandos raiz
advertise -
Ative ou desative a publicidade.bonded_devices -
Listar dispositivos bonded.connect -
<address/peer_id>
Estabeleça uma conexão com um dispositivo.connected_devices -
Exiba dispositivos conectados e informações de segurança em cada conexão.device_name -
<name>
Defina o nome do dispositivo.devices -
Lista de dispositivos disponíveis (publicidade).disconnect -
<address>
Desconecte-se de um dispositivo.gatt -
Procedimentos do cliente GATT.key_reply -
<key>
Insira a chave de acesso exibida por outro dispositivo (para modo de emparelhamento: “Entrada de chave de acesso”).nfc_read -
<subcmd>
Ligue o leitor NFC (requer hardware adicional) <on/off>.numeric -
Confirme ou rejeite um valor numérico (para modo de emparelhamento: “Comparação Numérica”).pair -
<subcmd> <address> <option>
Inicie o emparelhamento com um dispositivo conectado.parameters -
<subcmd>
Altere ou solicite novos parâmetros de camada de link ou GATT.privacy -
Defina as configurações de privacidade.remove_bond -
<subcmd>
Remova um dispositivo ligado (Bonded).scan -
Ative ou desative o Scanning.
Indicadores LED
Indicadores LED para nos ajudar a ver o estado em que o Bluetooth está.
- LED 1: Significa que a placa está procurando dispositivos Bluetooth
- LED 2: Significa que a placa está conectada a um dispositivo BLE Peripheral.
- LED 3: Significa que a placa está anunciando a si mesma. (boardcast)
- LED 4: Significa que a placa está conectada a um dispositivo BLE Central.
Digite o comando “scan on”, você notará que o LED 1 estará aceso. Após esta tecla no comando “devices”, você verá uma lista de dispositivos Bluetooth próximos que se anunciam (transmitindo seu ID). O comando “dispositivos” só exibirá a lista quando a placa estiver com a varredura ativada.
Você não poderá ver a outra placa Bluetooth que possui porque essa placa ainda não iniciou sua publicidade.
Para a outra placa, digite o comando “advertise”. Você notará o LED 3 nesta placa aceso.
Na primeira placa que ainda está no modo de varredura, digite o comando “devices”. Você verá uma lista de dispositivos Bluetooth. Desta vez, você poderá ver a outra placa, o ID do endereço Bluetooth e o nome do dispositivo.
Na primeira placa, digite o comando “ connect ” seguido do ID da placa da outra placa que quero conectar. Ao conectar, ambas as placas exibirão mensagens sobre a conexão. Esta primeira placa terá o LED 2 aceso, indicando que está conectada a uma placa de periféricos , enquanto a outra placa terá seu LED 4 aceso indicando que está conectada a uma placa central .
Você pode verificar o dispositivo conectado usando o comando “connected_devices”.
No processo de conexão, tentei fazer outra conexão da Placa 1 (central) para a Placa 2 (periférica). Sabe-se que um dispositivo central pode fazer conexões múltiplas com vários dispositivos periféricos. Neste experimento noto que é possível que o periférico Bluetooth receba conexões múltiplas. Cada conexão é referenciada por um identificador de manipulador.
O emparelhamento é uma troca temporária de recursos de segurança. A chave de segurança é trocada. A colagem é uma troca permanente de recursos de segurança. Significa apenas que a chave de segurança trocada é salva e usada para qualquer conexão futura. A ligação só pode ser executada após a conclusão do emparelhamento. É simplesmente salvar as chaves de segurança em ambos os lados.
Após a conexão
Após a conexão, você pode continuar usando os outros comandos “pair”, “parameters” e “gatt”.
Recapitulação do nome técnico
O GAP (Generic Access Profile) define a parte de descoberta, conexão e gerenciamento de link do Bluetooth. Central (geralmente conectado a vários periféricos) e periféricos (geralmente uma única conexão à central) estão relacionados ao GAP.
O GATT (Generic Attribute Profile) é um dos métodos de comunicação de dados após a conexão dos dispositivos Bluetooth. O dispositivo Bluetooth é o servidor que serve os dados, enquanto quem o acessa é o cliente .
Referências:
Sobre a SMARTCORE