CRIANDO UM ANDROID APP COM O APPINVENTOR PARA ACESSO AO NINA B302 - MÉTODO SUPER RÁPIDO
O objetivo deste BLOG é demonstrar como é possível utilizar o APPINVENTOR para criar uma aplicação no Android (APP) (BLE CENTRAL) e fazer um SCAN nos dispositivos NINA (BLE PERIPHERAL). Foi utilizado o BREAKOUT U-BLOX NINA B302 para o teste, uma vez encontrando é realizada a conexão e controle de um LED.
APPINVENTOR tem agora uma nova e completa LIB para BLE.
O aplicação no U-BLOX NINA B302 foi desenvolvido em JAVASCRIPT - ESPRUINO.
O App Inventor é um software web criado pela universidade americana Massachusetts Institute of Technology (MIT) que permite desenvolver aplicativos Android usando um navegador da Web e um telefone ou emulador conectados.
NOTA DO AUTOR: EMULADOR NÃO ACEITA BLE
Você cria aplicativos selecionando componentes para o seu aplicativo e montando blocos que especificam como os componentes devem se comportar.
Toda criação do aplicativo é feita de forma visual, juntando peças com peças como se fosse um quebra-cabeça.
Seu aplicativo aparece no telefone à medida que você adiciona peças a ele, para que você possa testar seu projeto à medida que você cria.
Quando terminar o projeto, você pode empacotar tudo e produzir um aplicativo executável para instalar em outros celulares.
Os passos são simples para instalar (FONTE: https://www.androidpro.com.br/blog/desenvolvimento-android/app-inventor/)
Configurando o Ambiente
- Você não precisa baixar nada para o seu computador;
- Em seu telefone ou tablet, abra a Google Play Store, encontre e instale o aplicativo MIT AI2 Companion. O aplicativo Companion é um aplicativo Android que permite testar os aplicativos que você constrói à medida que os cria.
- De volta ao navegador do seu computador (Chrome, Firefox ou Safari), abra o App Inventor acessando http://ai2.appinventor.mit.edu/. Crie um novo projeto.
- No menu superior, clique em ‘Connect’ e ‘Connect to Companion’. Um QR Code aparecerá, utilize o MIT AI2 Companion para ler o código.
Configuração Alternativa
Para usar o emulador ou conectar seu celular via USB, primeiro você precisa instalar o software do App Inventor em seu computador (isso não é necessário para a solução via WI-FI). Siga as instruções abaixo.
- Faça o download e instale o App Inventor de acordo com seu sistema operacional:
- Mac OS X: http://appinv.us/aisetup_mac
- Windows: http://appinv.us/aisetup_windows
- Linux: http://appinv.us/aisetup_linux_deb
- Inicie o aiStarter (somente Windows e Linux)
Este programa é o auxiliar que permite que o navegador se comunique com o emulador ou cabo USB.Em um Mac, o aiStarter será iniciado automaticamente quando você efetuar o login em sua conta e ele será executado em segundo plano.No Windows, haverá atalhos para o aiStarter a partir da Área de Trabalho e do Menu Iniciar. Se você quiser usar o emulador com o App Inventor, você precisará iniciar manualmente o aiStarter no seu computador quando fizer login.No Linux, o aiStarter estará na pasta /usr/google/commands-for-Appinventor e você precisará inicia-lo manualmente. Você pode iniciá-lo a partir da linha de comando /usr/google/appinventor/commands-for-Appinventor/aiStarter &
APP INVENTOR E BLE
O App Inventor 2 é uma maneira bastante fácil de criar aplicativos para Android. Ele usa o sistema de programação Blockly em vez de texto e faz muito trabalho pesado para você. Embora inicialmente pareça simples, você pode criar alguns aplicativos surpreendentemente complexos. O AI2 está constantemente sendo desenvolvido e atualizado e uma das atualizações mais recentes é a nova extensão BLE. Há uma extensão do BLE há algum tempo, mas isso sempre foi experimental. A nova extensão espera substituir o antigo módulo por um novo sistema mais abrangente e estável. Observe que, no momento da redação deste artigo, a nova extensão do BLE ainda está na versão beta, mas em meus próprios testes eu achei que ela funcionava bem e era muito estável.
Para tirar o máximo proveito deste guia, você deve estar um pouco familiarizado com o App Inventor e como usar os blocos de programação. como tal, não falo sobre muitos detalhes sobre o App Inventor 2 e, se você quiser saber mais, comece com os tutoriais do App Inventor 2.
A nova extensão BLE faz parte do AI2 IOT (tudo parece estar indo muito) e detalhes sobre isso podem ser encontrados no site AI2 IOT. Para detalhes sobre a extensão real e os blocos, consulte a página Extensão BluetoothLE. A nova extensão do BLE pode ser baixada em http://iot.appinventor.mit.edu/assets/resources/edu.mit.appinventor.ble.aix. Esteja ciente de que a extensão, embora razoavelmente madura, ainda está em teste e algumas coisas podem mudar. Você pode baixar a versão que estou usando para os exemplos abaixo aqui. Observe que quando você salva um arquivo aia, as extensões são salvas com eles. Isso significa que você não precisa continuar importando as extensões toda vez que trabalha em um aplicativo.
Espruino é um intérprete de JavaScript para microcontroladores que torna o desenvolvimento de software embarcado rápido e fácil. O intérpretador Espruino é um firmware de código aberto que roda em uma variedade de microcontroladores diferentes.
O Espruino em si não é apenas o firmware ou hardware do interpretador - há também o IDE da Web, ferramentas de linha de comando, documentação, tutoriais e módulos que formam uma solução completa para desenvolvimento de software embarcado.
Muitas LIBRARIES
Grave o código HEX do JAVASCRIPT usando o utility J-FLASH LITE ou NRFGO STUDIO no NINA B302
Resete o NINA B302
Instale o ESPRUINO IDE (Native)
Instale o USB DONGLE CSR 4.0 (drivers)
Mas atenção!
Para o Windows 8.1 e posterior
O IDE é capaz de usar os drivers BLE do próprio Windows. A única configuração necessária é que você vá para as configurações de Bluetooth do seu sistema e clique em Conectar (Parear no Windows 10) no seu dispositivo NINA B302. Isso expõe ao sistema e garante que ele apareça no IDE da Web.
Para o Windows anterior ao 8.1
Como as versões do Windows anteriores à 8.1 não suportam Web Bluetooth no sistema operacional, o noble (que o Espruino IDE usa) precisa acessar diretamente o adaptador BLE - portanto, é necessário garantir que o driver WinUSB seja carregado para ele (como oposição a um driver específico do fabricante).
Baixe o Zadig e execute-o - é apenas um executável
Vá para Opções -> Listar todos os dispositivos
Escolha o seu adaptador BLE (o meu é CSR8510 A10)
Certifique-se de que o WinUSB esteja definido como o driver
Agora, quando você executar o IDE da Web nativo e clicar em "conectar" no canto superior esquerdo, deverá ver uma lista de dispositivos BLE conectáveis.
Transfira o SCRIPT JAVASCRIPT abaixo
No B302 transfira o seguinte código Javascript e execute
NRF.setServices({
"3e440001-f5bb-357d-719d-179272e4d4d9": {
"3e440002-f5bb-357d-719d-179272e4d4d9": {
value : [0],
maxLen : 1,
writable : true,
onWrite : function(evt) {
// verfica dado escrito na Characteristic, entao envia para LED
if(evt.data[0]===0x00)
D13.write(0);
if(evt.data[0]===0x01)
D13.write(1);
}
}
}
}, { uart : false });
// Change name to 'Flag'
NRF.setAdvertising({}, {name:"Flag"});
SOBRE BLE (RESUMO)
Esta é uma breve introdução ao BLE e não chega perto de toda a história.
O BLE não é uma atualização para o Bluetooth Classic, é um sistema diferente com diferentes usos pretendidos. O BLE funciona de uma maneira muito diferente do Bluetooth anterior. O BLE foi projetado para aplicações de baixa energia e consegue isso usando pacotes de dados pequenos e pouco frequentes. Na verdade, ele não foi projetado para conexões contínuas e grandes quantidades de dados. Para isso, o Bluetooth Classic é uma escolha melhor. Em essência, o BLE atinge seu baixo consumo de energia por não estar conectado com muita frequência, ao contrário do Bluetooth Classic, que mantém uma conexão constante.
Existem duas maneiras pelas quais os dispositivos BLE podem se comunicar; Emissora + Observadora e Central + Periférica.
Com o Broadcaster + Observer, não há uma conexão padrão, o Broadcaster, geralmente algum tipo de sensor, envia sinais periódicos (pacotes de publicidade) que o Observer escuta. O radiodifusor normalmente não sabe se algo está escutando ou não.
O cenário Central + Periférico é mais parecido (mas não exatamente o mesmo) que a conexão clássica. Quando o dispositivo central (mestre) encontra um dispositivo periférico (escravo) ao qual deseja se conectar, inicia uma conexão e assume a função principal de gerenciar a conexão e os tempos.
Como o Bluetooth Classic pressupõe que você usará uma única conexão, a conexão será estabelecida por um tempo e não precisará ser particularmente rápida na conexão. O BLE, por outro lado, foi projetado para fazer muitas conexões de curto prazo e, portanto, foi projetado para conectar e desconectar muito rapidamente.
BLE é tudo sobre serviços e características. Um serviço é uma coleção de características relacionadas e uma característica é onde os dados estão. Em um dispositivo BLE típico, você pode ter um serviço que contém características relacionadas às propriedades dos módulos, como; o nome do fabricante, o nome do dispositivo, o ID do firmware e / ou o número da versão. Também pode ter um segundo serviço que agrupa as características que mantêm os dados reais. Podem ser coisas como temperatura, umidade, brilho. Isso significa que, para usar o BLE, você geralmente precisa conhecer as características que deseja usar (mais especificamente os UUIDs para as características).
Com o BLE, os valores dessas propriedades estão disponíveis o tempo todo. Se você quiser saber o nome do fabricante, leia a válvula na característica do nome do fabricante. Se você quiser saber a temperatura, leia o valor da característica de temperatura. Isso é muito diferente de como o Bluetooth clássico funciona. Com o Bluetooth clássico, você tem apenas um canal de comunicação e todos os dados são enviados por um canal.
Com o BLE, os valores dessas propriedades estão disponíveis o tempo todo. Se você quiser saber o nome do fabricante, leia a válvula na característica do nome do fabricante. Se você quiser saber a temperatura, leia o valor da característica de temperatura. Isso é muito diferente de como o Bluetooth clássico funciona. Com o Bluetooth clássico, você tem apenas um canal de comunicação e todos os dados são enviados por um canal.
Cada serviço e característica possui um identificador exclusivo chamado UUID. Este é basicamente um número de 24 bits.
APPINVENTOR APP
Atualize com a última versão do BLUETOOTH BLE AIX
Monte o seguinte projeto no APPINVENTOR
Transfira para o seu celular pelo seu método selecionado!
O autor utilizou QRCODE o qual deve ser capturado pelo APPINVENTOR UTILITY instalado no ANDROID.
Software no Peripheral
Basicamente cria uma característica associada ao LED, o qual se encontra na GPIO1. Quando a Central (APP) escreve nela, o valor é transferido para o LED
Software no Central
Basicamente faz um SCAN pelos BLE e se conecta ao Peripheral de nome Flag. Após conectado é enviado um byte para a característica associada ao LED.
"3e440001-f5bb-357d-719d-179272e4d4d9": {
"3e440002-f5bb-357d-719d-179272e4d4d9": {
Questões: suporte@smartcore.com.br
Sobre a SMARTCORE
A SmartCore fornece módulos para comunicação wireless, biometria, conectividade, rastreamento e automação.
Nosso portfólio inclui modem 2G/3G/4G/NB-IoT/Cat.M, satelital, módulos WiFi, Bluetooth, GNSS / GPS, Sigfox, LoRa, leitor de cartão, leitor QR code, mecanismo de impressão, mini-board PC, antena, pigtail, LCD, bateria, repetidor GPS e sensores.
Mais detalhes em www.smartcore.com.br