segunda-feira, 11 de janeiro de 2021

UBLOX NINA B112 (CENTRAL) CONTROLANDO LED UBLOX NINA B302 (PERIPHERAL)

NINA B112 (CENTRAL) CONTROLANDO LED  NINA B302 (PERIPHERAL)

O objetivo deste BLOG é demonstrar como é possível controlar o LED do NINA B302 (Peripheral) via BLE, utilizando um NINA B112 (Central). O programa em JAVASCRIPT é interpretado ESPRUINO rodando no módulo BREAKOUT.

Neste exemplo o NINA B302 é um BLE PERIPHERAL.O BLE CENTRAL será o NINA B112, ambos rodando Javascript - ESPRUINO.

OBS: BLE NAME Flag
OBS: Streaming data to a custom Bluetooth LE Characteristic - Name 
3e440001-f5bb-357d-719d-179272e4d4d9

Adquirimos então os seguintes componentes



Montamos duas BREAKOUTS (B112 e B302)


O esquema elétrico é este



Algumas características do Kit

-Botão de RESET;
-Botão de Modo BOOTLOADER (W102);
-Plugável no PROTOBOARD;
-Acesso às várias GPIOS;

Pequena 



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.
 
Grave o código HEX do JAVASCRIPT usando o utility J-FLASH LITE ou NRFGO STUDIO no NINA B302 e B112



Resete o NINA B302 e NINA B112

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/B112. 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.




Execute o ESPRUINO IDE (Native)


Faça o SCAN para encontrar o NINA B302/B112


Conecte ao NINA B302/B112


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) { // Data comes in as a byte, make it 0..1 range 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"});




No B112 jogue o seguinte código Javascript e execute

var gatt,characteristic; NRF.requestDevice({ filters: [{ name: 'Flag' }] }).then(function(device) { console.log("Found"); return device.gatt.connect(); }).then(function(g) { console.log("Connected"); gatt = g; return gatt.getPrimaryService( "3e440001-f5bb-357d-719d-179272e4d4d9"); }).then(function(service) { return service.getCharacteristic( "3e440002-f5bb-357d-719d-179272e4d4d9"); }).then(function (c) { console.log("Got Characteristic"); characteristic = c; startWriting(); }); var on = false; function startWriting() { var busy = false; var i = setInterval(function() { if (!gatt.connected) { clearInterval(i); return; } if (busy) return; busy = true; on = !on; characteristic.writeValue([on]).then(function() { busy = false; }); }, 50); }

P0.13 = D13 = IO1 (JAVASCRIPT)


LED alterará estado a cada 50ms, ou seja a CENTRAL B112 procurará pelo BLE Flag (NINA B302) escreverá o valor 0x00 e 0x01 na Characteric 3e440001-f5bb-357d-719d-179272e4d4d9


Questões: suporte@smartcore.com.br

FONTES: 

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

Nenhum comentário:

Postar um comentário