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
-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.
Muitas LIBRARIES
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.
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