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