terça-feira, 9 de novembro de 2021

U-BLOX NINA B302 (VISUINO) COM U-BLOX NINA W102 (AIRLIFT WIFI) - REALIZANDO HTTP


O objetivo deste BLOG é como programar o U-BLOX NINA  B302 (BLE SENSE 32) com o VISUINO para que possa acessar a INTERNET SEM FIO (802.11), utilizando o COPROCESSOR "AIRLIFT", no caso, haverá um conexão e fará uma requisição HTTP ao servidor THINGSPEAK e então a informação recebida (formato JSON) será tratada para extrair o field1 e então controlar o estado de um LED conectado no IO24 (P0.30) do U-BLOX NINA B302.

{"channel":{"id":1368213,"name":"ELETIVA II","description":"Demonstração Disciplina Eletiva II - BCC - SIS - FURB","latitude":"0.0","longitude":"0.0","field1":"annex","created_at":"2021-04-22T22:17:35Z","updated_at":"2021-07-20T17:02:54Z","last_entry_id":183},"feeds":[{"created_at":"2021-09-30T00:49:50Z","entry_id":183,"field1":"0"}]}

"O poder da programação VISUAL do VISUINO no U-BLOX NINA B302 e a adição de acesso à INTERNET via U-BLOX NINA W102 via SPI de 8MHz"

AIRLIFT é baseado no WIFININA, o qual é baseado no NINA W102,  utiliza a interface SPI.
WIFI COPROCESSOR PARA O NINA B302

POR QUE AIRLIFT ?

Ter o WiFi gerenciado por um chip separado significa que seu código é mais simples, você não precisa armazenar dados do soquete ou compilar e depurar uma biblioteca SSL. Com o AirLift, você pode enviar comandos básicos, mas poderosos baseados em socket, sobre SPI de 8MHz para transferência de dados de alta velocidade. O U-BLOX NINA W102 pode lidar com todo o trabalho pesado de conexão a uma rede WiFi e transferir dados de um site e usar a mais recente criptografia TLS/SSL (tem certificados radiculares pré-gravados).



Thingspeak é uma plataforma de análise IoT (Internet of Things) que permite agregar, visualizar e analisar streams de dados, de uma forma muito simples. Uma das grandes vantagens da plataforma Thingspeak é que nos permite visualizar os dados enviados pelos nossos dispositivos, em tempo real, mas também a possibilidade de analisar os mesmo recorrendo ao poderoso Matlab.

MONTAGEM DO BREAKOUT COM  U-BLOX NINA B302 E U-BLOX NINA W102


Adquirimos então os seguintes componentes


Montado ficou assim


O esquema elétrico é este


Algumas características do Kit

-Botão de RESET;
-Botão de Modo BOOTLOADER (W102);
-Acesso às várias GPIOS.

Pequena 

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 8.0.0.36

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


Gravando bootloader BLE SENSE 32 no U-BLOX NINA B302


Use o gravador SEGGER JLINK para gravar o BREAKOUT com módulo U-BLOX NINA B302, conecte nos pinos do SWCLK (pino 7) e SWDIO (pino 9) do SEGGER JLINK nos pinos  SWDCLK e SWDIO do BREAKOUT (pinos nas laterais, próximo à antena). Não esquecer de ligar os GND do BREAKOUT no GND do SEGGER JTAG, bem como alimentar o BREAKOUT com 3.3V.


Ligue os pinos SWD DIO e CLK ...
...nestes pinos da placa BREAKOUT


Abra J-FLASH lite e grave o bootloader para o U-BLOX NINA B302 (BLE SENSE 32)


O mesmo se encontra em 

C:\Users\Usuario\AppData\Local\Arduino15\packages\arduino\hardware\mbed\2.4.1\bootloaders\nano33ble

Com ele, você poderá transferir programas via USB (serial) (SAM-BA extended). 

ATENÇÃO, o bootloader usa USB para gravação do NINA 302, OU SEJA, CRIA UMA COMM VIRTUAL, TAMBÉM PARA SER A SERIAL PADRÃO DO ARDUINO


Gravando "AIRLIFT" NO  U-BLOX NINA W102

Baixe o BIN 

Execute o ESP32 DOWLOAD TOOL ou ESPTOOL


Ligue os pino do U-BLOX NINA B302 no U-BLOX NINA W102 

 

BREAKOUT B302

 NRF52840

BREAKOUT W102

 ESP32

CS

IO36

P1.02

IO28

5

READY

IO25

P0.04

IO7

33

RESET

IO21

P1.12

RESET

RESET

SCK

IO1

P0.13

IO29

18

MOSI

IO35

P1.01

IO31

14

MISO

IO34

P1.08

IO1

23

GPIO0

IO27

P0.05

IO27

0

 

BREAKOUT B302

NRF52840

BREAKOUT W102

ESP32

TABELA DE CONEXÃO

NINA B302 W102
-MOSI IO35 IO31
-MISO IO34 IO1
-CLK IO1 IO29
-CS         IO36 IO28
-RST IO21 RST
-READY IO25 IO7
-GPIO0 IO27  IO27


CRIANDO CONTA NO THINGSPEAK

Crie um conta no ThingSpeak

Em Channel Settings crie Field: Field1




Em API keys anote as chaves para escrita e Leitura de dados noThingsSpeak



Teremos então basicamente duas URLS, uma para escrita e outra para leitura dois Fields.

https://api.thingspeak.com/update?api_key=XXXXXXXXXXXXXX&field1=X
ESCRITA (via BROWSER)
https://api.thingspeak.com/channels/CCCCCCCCC/fields/1.json?api_key=XXXXXXXXXXXXXX
&results=
1 LEITURA (via U-BLOX NINA B03 + U-BLOX NINA W102 AIRLIFT)


ABRA O VISUINO E MONTE O SEGUINTE PROJETO (CONFORME TABELA DE CONEXÃO)

Click no módulo AIRLIFT e coloque as credenciais do WIFI.



Click no módulo HTTP CLIENT para configurações de acesso HTTP para o THINGSPEAK




Click no módulo HTTP e configure endereço HTTP e PORTA


Click no módulo SPLITJSON e importe o modelo JSON que servidor THINGSTREAM enviará.

Você pode obter o JSON com seu Browser digitando
https://api.thingspeak.com/channels/CCCCCCCCC/fields/1.json?api_key=XXXXXXXXXXXXXX
&results=
1
Aqui é tratado o fiedl1


O exemplo faz uma análise da resposta HTTP e filtra a linha que começa com "{" então dispara o SPLITJSON para extrair o field1, este é comparado se retorna "1"  e então acendendo o LED (Analog 2), caso contrário apagando.

COMPILANDO


TRANSFERINDO PROGRAMA


ATUALIZE field1 via BROWSER

https://api.thingspeak.com/update?api_key=XXXXXXXXXXXX&field1=0
PARA APAGAR LED
https://api.thingspeak.com/update?api_key=XXXXXXXXXXXX&field1=1
PARA ACENDER LED
Se localize pelo arquivo VARIANTS.CPP do MBED BLE SENSE 33.

PinDescription g_APinDescription[] = { // D0 - D7 { P1_3, NULL, NULL, NULL }, // D0/TX { P1_10, NULL, NULL, NULL }, // D1/RX { P1_11, NULL, NULL, NULL }, // D2 { P1_12, NULL, NULL, NULL }, // D3 { P1_15, NULL, NULL, NULL }, // D4 { P1_13, NULL, NULL, NULL }, // D5 { P1_14, NULL, NULL, NULL }, // D6 { P0_23, NULL, NULL, NULL }, // D7 // D8 - D13 { P0_21, NULL, NULL, NULL }, // D8 { P0_27, NULL, NULL, NULL }, // D9 { P1_2, NULL, NULL, NULL }, // D10 { P1_1, NULL, NULL, NULL }, // D11/MOSI { P1_8, NULL, NULL, NULL }, // D12/MISO { P0_13, NULL, NULL, NULL }, // D13/SCK/LED // A0 - A7 { P0_4, NULL, NULL, NULL }, // A0 { P0_5, NULL, NULL, NULL }, // A1 { P0_30, NULL, NULL, NULL }, // A2 { P0_29, NULL, NULL, NULL }, // A3 { P0_31, NULL, NULL, NULL }, // A4/SDA { P0_2, NULL, NULL, NULL }, // A5/SCL { P0_28, NULL, NULL, NULL }, // A6 { P0_3, NULL, NULL, NULL }, // A7 // LEDs { P0_24, NULL, NULL, NULL }, // LED R { P0_16, NULL, NULL, NULL }, // LED G { P0_6, NULL, NULL, NULL }, // LED B { P1_9, NULL, NULL, NULL }, // LED PWR { P0_19, NULL, NULL, NULL }, // INT APDS // PDM { P0_17, NULL, NULL, NULL }, // PDM PWR { P0_26, NULL, NULL, NULL }, // PDM CLK { P0_25, NULL, NULL, NULL }, // PDM DIN // Internal I2C { P0_14, NULL, NULL, NULL }, // SDA2 { P0_15, NULL, NULL, NULL }, // SCL2 // Internal I2C { P1_0, NULL, NULL, NULL }, // I2C_PULL { P0_22, NULL, NULL, NULL } // VDD_ENV_ENABLE };


VENDO RESULTADO


Dúvidas:


suporte@smartcore.com.br

Referências:

https://www.u-blox.com/en/docs/UBX-17056481
https://www.u-blox.com/sites/default/files/NINA-B3_DataSheet_%28UBX-17052099%29.pdf
Overview | Adafruit AirLift - ESP32 WiFi Co-Processor Breakout | Adafruit Learning System
https://learn.adafruit.com/adding-a-wifi-co-processor-to-circuitpython-esp8266-esp32/firmware-files
https://thingspeak.com/

Sobre a SMARTCORE

A SmartCore fornece módulos para comunicacã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