quarta-feira, 20 de outubro de 2021

CRIANDO CELULAR APP PARA SE COMUNICAR COM U-BLOX NINA W106 (VISUINO) VIA B4A


O objetivo deste BLOG é demonstrar como é possível utilizar o B4A para  gerar uma aplicação BLE em seu CELULAR ANDROID para se comunicar com U-BLOX NINA W106 (PROGRAMADO EM VISUINO) e controlar um LED via escrita em sua Característica (BLE SERIAL SERVICE). Foi utilizado o BREAKOUT U-BLOX NINA W106 para o teste. 

No exemplo mandaremos acender ou apagar um LED ligado no GPIO32 (IO5) via BLE.


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.

Cada serviço e característica possui um identificador exclusivo chamado UUID. Este é basicamente um número de 24 bits.


W106
Wi-Fi 802.11b/g/n
Dual-Mode Bluetooth v4.2
Poderoso suporte de CPU aberta para aplicativos personalizados
Tamanho pequeno e várias opções de antena
Pino compatível com outros módulos NINA
Certificação global
Módulo baseado no ESP32, com 4MB FLASH

VISUINO

Visuino é o mais recente software inovador da Mitov Software. Um ambiente de programação visual que permite programar suas placas Arduino. ... Os componentes encontrados no software Visuino representam seus componentes de hardware e você pode criar e projetar facilmente seus programas usando o recurso de arrastar e soltar.

Instalação do VISUINO

Baixe em  https://www.visuino.com/ e instale




B4A

Basic4Android (atualmente conhecido como B4A) é uma ferramenta de desenvolvimento rápido de aplicativos para aplicativos Android nativos, desenvolvida e comercializada pela Anywhere Software Ltd. B4A é uma alternativa à programação com Java.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.

O B4A inclui todos os recursos necessários para desenvolver rapidamente qualquer tipo de aplicativo Android.
O B4A é usado por dezenas de milhares de desenvolvedores em todo o mundo, incluindo empresas como NASA, HP, IBM e outras.
Junto com o B4i, você pode desenvolver facilmente aplicativos para Android e iOS.
O B4A é 100% royaltie free


CONFIGURANDO AMBIENTE B4A

Certifique-se de seguir as instruções abaixo. Eles não são complicados e incluem vários componentes necessários para começar.

1. Oracle Java 8 ou OpenJDK 11 (recomendado)
  • Baixe um dos seguintes JDKs. Observe que o OpenJDK 11 requer Windows de 64 bits.
  • OpenJDK 11 + OpenJFX 11: link para download .
    Licença: GPL + classpath exception. A licença permite o uso em projetos comerciais fechados.
    (componentes do pacote: OpenJDK and OpenJFX)
    Baixe o zip e descompacte-o. C:\java é um bom lugar para isso.
    Recomenda-se usar uma ferramenta como o 7-Zip para descompactar o pacote grande. O Windows Explorer pode não conseguir extraí-lo adequadamente. A instalação não é necessária.

  • Oracle JDK 8: link para download (requer a criação de uma conta).
    Verifique o botão Aceitar Contrato de Licença.
    Selecione "Windows x86" ou "Windows x64" (para máquinas de 64 bits) na lista de plataformas.
    Baixe o arquivo e instale-o.
2. Android SDK + recursos necessários
  • Você precisa baixar dois componentes, ambos não requerem instalação.
  • Baixe as ferramentas de linha de comando do Android SDK
    Certifique-se de ler e concordar com a licença do SDKClique nas ferramentas de linha de comando do Windows para ver a licença.
    O Android Studio não é necessário e não será afetado pelas ferramentas de linha de comando (que são sempre necessárias).
  • Descompacte-o em uma pasta como C:\ Android


  • Baixe os recursos necessários.
  • Descompacte na mesma pasta. Deve ser assim:


  • Observe que você não precisa executar o B4A Sdk Manager, a menos que queira usar o emulador do Android, que é menos recomendado.
  • Estes são dois grandes arquivos zip. É recomendável usar uma ferramenta como o 7-Zip para descompactá-los. Vemos muitos casos em que a ferramenta zip interna do Windows não consegue extrair os arquivos corretamente.
3. B4A
  • Baixe a versão completa do B4A
  • Abra o B4A .
  • Escolha Ferramentas> Configurar caminhos .
  • Defina o caminho como "javac.exe" se estiver vazio (C:\java\jdk-11.0.1\bin\javac.exe ou C:\Program Files\Java\jdk1.8.0_211\bin\javac.exe) 
  • Defina o caminho para "android.jar" (C:\Android\platforms\android-30\android.jar).
  • Comece a desenvolver com B4A-Bridge ou modo de depuração USB.
  • Se você quiser usar o emulador ou instalar mais componentes, inicie o B4A Sdk Manager e defina o caminho para:
    C:\Android\tools\bin\sdkmanager.bat.
  • Leia e aceite as licenças quando solicitadas.
4. B4A-Bridge (recomendado)

  • O B4A-Bridge permite que o IDE se conecte ao dispositivo pela rede sem fio. Esta é uma alternativa ao modo de depuração USB (que também é compatível).
  • Baixe o B4A-Bridge no Google Play. Você pode pesquisar a ponte B4A ou pressionar o botão acima. Você também pode baixar o arquivo apk diretamente.
    O B4A-Bridge também está disponível no HUAWEI AppGallery.
  • Certifique-se de que a instalação de aplicativos de fontes desconhecidas esteja habilitada. Isso pode ser definido em Configurações - Segurança ou Configurações - Aplicativos.
  • Execute o B4A-Bridge no dispositivo. Veja este tutorial para mais informações.
  • Conecte o IDE ao dispositivo: Ferramentas - B4A Bridge - Conectar
  • Você está pronto para executar seu primeiro programa Android!
EXECUTE O B4A



Baixe a LIB Dialog


Copie para

C:\Program Files (x86)\Anywhere Software\Basic4android\Libraries

Baixe o exemplo


Copie para qualquer pasta

Abra no B4A


Transfira para teu celular (via APK)


Pressione F5 para compilar e transferir

O exemplo:
  • Faz SCAN dos BLE;
  • Escolha o que aparece ESP32;
  • Clique na CHARACTERIST (BLE SERIAL SERVICE);
  • Escreva 0 ou ESCREVA 1 (Text).
MONTANDO PROJETO NO VISUINO
"O exemplo abaixo cria via Característica uma comunicação SERIAL via BLE"

Componente Compare Text


Projeto Final

Testes com B4A




Start Scan


Scanning (achou U-BLOX NINA W106)

Click nele e efetuará a conexão

Click nesta Característica.

Apaga LED

Acende LED


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

quarta-feira, 1 de abril de 2020

APP para se comunicar com NINA

CRIANDO CELULAR APP  PARA SE COMUNICAR COM NINA W VIA 
APP INVENTOR

O objetivo deste BLOG é demonstrar como é possível utilizar o APP INVENTOR para  gerar uma aplicação BLE em seu CELULAR para se comunicar com U-BLOX NINA W102 e controlar um LED. Foi utilizado o EVK-NINA-W para o teste. No exemplo mandaremos acender ou apagar um LED.



APP INVENTOR

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 EDITOR: 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


  1. Você não precisa baixar nada para o seu computador;
  2. 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.
  3. 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.
  4. 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.
  1. Faça o download e instale o App Inventor de acordo com seu sistema operacional:
    1. Mac OS X: http://appinv.us/aisetup_mac
    2. Windows: http://appinv.us/aisetup_windows
    3. Linux: http://appinv.us/aisetup_linux_deb
  2. 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 &

OBS:

The App Inventor BluetoothLE extension requires Android 5.0 or higher to avoid known issues with Google's Bluetooth LE support prior to Android 5.0.

Atualize BLE inventor 
http://iot.appinventor.mit.edu/assets/resources/edu.mit.appinventor.ble-20181124.aix

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.

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.

Cada serviço e característica possui um identificador exclusivo chamado UUID. Este é basicamente um número de 24 bits.


PREPARANDO AMBIENTE PARA PROGRAMAR O NINA W102

Baixe e instale a última versão da IDE do Arduino

https://www.arduino.cc/en/Main/Software

Execute a IDE do Arduino e click em files-->preferences


e digite
https://dl.espressif.com/dl/package_esp32_index.json e click OK

Vá agora em Tools > Board > Boards Manager



Procure por "ESP32 by Espressif" e instale


Aguarde alguns minutos para instalação do SDK. 

Selecione em tools-->board o módulo u-blox NINA-W10 series



Crie um Sketch novo e copie o programa abaixo

#include <Arduino.h>

const int ledPin = GPIO_NUM_21;

void setup() {
  // setup pin 5 as a digital output pin
  pinMode (ledPin, OUTPUT);
}

void loop() {
  digitalWrite(ledPin, HIGH);  // turn on the LED
  delay(100);  // wait for half a second or 500 milliseconds
  digitalWrite(ledPin, LOW); // turn off the LED
  delay(100);  // wait for half a second or 500 milliseconds
}

Atualize os BINS abaixo do Package ESP32

Agora compile


Selecione a COM, pressione o botão BOOT e então RESET no EVK-NINA-W e transfira o programa


Você verá o LED alterando de estado a cada 100ms! 

INSTALE AS BLE LIBS DE KOLBAN


Questoes: suporte@smartcore.com.br

FONTES: 

https://www.arduino.cc
https://www.androidpro.com.br/blog/desenvolvimento-android/app-inventor/
http://www.martyncurrey.com/arduino-hm-10-and-app-inventor-2/
https://community.appinventor.mit.edu/t/ble-esp32-bluetooth-send-receive-arduino-ide/1980
https://github.com/Buffalchill/ESP32-BLE-Appinventor2

Sobre a SMARTCORE

A SmartCore fornece módulos para comunicação wireless, biometria, conectividade, rastreamento e automação.
Nosso portifó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