Escolar Documentos
Profissional Documentos
Cultura Documentos
0
Indicador de peso
Índice
Introdução.............................................................................................................................................2
Download do exemplo..........................................................................................................................2
Acessando o projeto exemplo...............................................................................................................3
Opções do projeto exemplo..................................................................................................................4
;peso.................................................................................................................................................6
;tara..................................................................................................................................................6
;verif.................................................................................................................................................7
;batt..................................................................................................................................................7
Página 1
Exemplo de comunicação BLE 4.0
Indicador de peso
Introdução
Aqui constam alguns esclarecimentos técnicos e orientações em relação ao ACR Manejo Control
e o indicador BPB 085 IoT.
O Indicador de peso BPB 085 IoT opera com dispositivos que possuam suporte a bluetooh versão
4.0, observando que o fato do dispositivo ser novo não é garantia de que o recurso esteja disponível.
O indicador BPB 085 IoT faz pleno uso do bluetooh versão 4.0 aproveitando sua capacidade de
operar em modo Bluetooh Smart (ou Bluetooth Low Energy) padrão esse adotado por diversos
dispositivos que usam o conceito de IoT, sendo que IoT é o conceito que se refere à interconexão digital
entre objetos, no caso aqui estamos falando entre o indicador BPB 085 IoT e um dispositivo.
Download do exemplo
O exemplo aqui ilustrado foi escrito em linguagem Java, mas o desenvolvedor poderá adotar a
linguagem que desejar, desde que essa suporte comunicação com devices BLE.
O projeto exemplo visa apenas demonstrar o processo de comunicação, não sendo um APP para
usuário final, devendo ser executado e testado em ambiente de desenvolvimento com o Android Studio
(https://developer.android.com/studio?hl=pt-br).
Página 2
Exemplo de comunicação BLE 4.0
Indicador de peso
Comando Sintaxe
Pedir um peso, retorna o peso e o status ;peso
Pede o status bateria, retorna se está baixa ou alta ;batt
Envia um comando de verificação do peso ;verif
Tara o indicador ;tara
Página 3
Exemplo de comunicação BLE 4.0
Indicador de peso
Esta rotina é opcional de ser implementada, pois no seu APP você pode pedir ao usuário que
informe o MAC ADDRESS do device com base no conteúdo impresso na etiqueta do produto.
Este comando instância a classe UartService.java presente no exemplo, sendo que esta estende
a classe Service do SO Android. Aqui implementamos um serviço UART, que é o acrônimo de Universal
Asynchrounous Receiver/Transmiter ou Receptor/Transmissor Universal Assíncrono.
Página 4
Exemplo de comunicação BLE 4.0
Indicador de peso
I/ComunicaoIndicadorBLE: ServicoIndicadorBLE()
I/ComunicaoIndicadorBLE: Iniciar serviço UART :
com.example.ti.myapplication.UartService@7a882b3
Após instanciar o serviço da UART é possível conectar o indicador BPB 085 IoT selecionado , a
rotina presente na classe ComunicaoIndicadorBLE exemplifica como realizar este procedimento, há um
listener registrado no botão do exemplo.
D/BluetoothAdapter: STATE_ON
D/BluetoothGatt: connect() - device: CA:B4:6B:65:4E:02, auto: false
D/BluetoothAdapter: isSecureModeEnabled
D/BluetoothGatt: registerApp()
D/BluetoothGatt: registerApp() - UUID=21c08557-504c-44bd-a516-6506301effc2
D/UartService: Trying to create a new connection.
D/BluetoothGatt: onClientRegistered() - status=0 clientIf=7
D/BluetoothGatt: onClientConnectionState() - status=0 clientIf=7 device=CA:B4:6B:65:4E:02
I/UartService: Connected to GATT server.
I/ComunicaoIndicadorBLE: com.nordicsemi.nrfUART.ACTION_GATT_CONNECTED
D/BluetoothGatt: discoverServices() - device: CA:B4:6B:65:4E:02
I/UartService: Attempting to start service discovery:true
D/BluetoothGatt: onConnectionUpdated() - Device=CA:B4:6B:65:4E:02...
D/BluetoothGatt: onSearchComplete() = Device=CA:B4:6B:65:4E:02 Status=0
W/UartService: mBluetoothGatt = android.bluetooth.BluetoothGatt@44511a5
I/ComunicaoIndicadorBLE: com.nordicsemi.nrfUART.ACTION_GATT_SERVICES_DISCOVERED
D/BluetoothGatt: setCharacteristicNotification() - uuid: 6e400003-b5a3-f393-e0a9-e50e24dcca9e
enable: true
I/ComunicaoIndicadorBLE: com.nordicsemi.nrfUART.ACTION_DATA_AVAILABLE
I/ComunicaoIndicadorBLE: com.nordicsemi.nrfUART.ACTION_DATA_AVAILABLE -> Connected!
I/ComunicaoIndicadorBLE: UART avisou que conectou no service
Página 5
Exemplo de comunicação BLE 4.0
Indicador de peso
Abaixo temos o LogCat do processo de desconexão, importante observar que as callbacks sempre
retornam o MAC do device afetado.
;peso
I/ComunicaoIndicadorBLE: Korth_UART_TX(;peso)
D/UartService: write TXchar - status=true
I/ComunicaoIndicadorBLE: com.nordicsemi.nrfUART.ACTION_DATA_AVAILABLE
I/ComunicaoIndicadorBLE: com.nordicsemi.nrfUART.ACTION_DATA_AVAILABLE -> +0000.0;Z;1;
;tara
I/ComunicaoIndicadorBLE: Korth_UART_TX(;tara)
D/UartService: write TXchar - status=true
I/ComunicaoIndicadorBLE: com.nordicsemi.nrfUART.ACTION_DATA_AVAILABLE
I/ComunicaoIndicadorBLE: com.nordicsemi.nrfUART.ACTION_DATA_AVAILABLE -> ;tara;ok;1;
;verif
I/ComunicaoIndicadorBLE: Korth_UART_TX(;verif)
D/UartService: write TXchar - status=true
I/ComunicaoIndicadorBLE: com.nordicsemi.nrfUART.ACTION_DATA_AVAILABLE
I/ComunicaoIndicadorBLE: com.nordicsemi.nrfUART.ACTION_DATA_AVAILABLE -> ;verif;ok;1;
Página 6
Exemplo de comunicação BLE 4.0
Indicador de peso
;batt
I/ComunicaoIndicadorBLE: Korth_UART_TX(;batt)
D/UartService: write TXchar - status=true
I/ComunicaoIndicadorBLE: com.nordicsemi.nrfUART.ACTION_DATA_AVAILABLE
I/ComunicaoIndicadorBLE: com.nordicsemi.nrfUART.ACTION_DATA_AVAILABLE -> ;batt;high;1;
Página 7
Exemplo de comunicação BLE 4.0
Indicador de peso
Referências ao desenvolvedor
https://developer.android.com/guide/topics/connectivity/bluetooth-le
https://developer.android.com/reference/android/os/AsyncTask
https://developer.nordicsemi.com/nRF_Connect_SDK/doc/latest/nrf/include/bluetooth/services/nus.html
Página 8