U-BLOX NINA B302 e BLYNK - 802.11
O objetivo deste BLOG é demonstrar como é possível utilizar a IDE do Arduino para programar o módulo U-BLOX NINA B302 para acessar o servidor BLYNK e criar uma APP e assim verificar o recebimento de um OK a cada 1 segundo. Foi utilizado o NINA B302 BREAKOUT para o teste junto com um CO-PROCESSADOR WIFI baseado no NINA W102 (WIFININA),este último permite conectividade à Internet.
WIFININA - UBLOX NINA W102
WIFI COPROCESSOR baseado no NINA W102, o qual permite que você tenha acesso a INTERNET 802.11, via SPI.
U-BLOX NINA B302
O NINA-B30 possui Bluetooth 5 completo, um poderoso Arm® Cortex®-M4 com FPU,
e desempenho de energia de ponta. Bluetooth BLE 5.0.
ADADRUIT
A Adafruit foi fundada em 2005 pelo engenheiro do MIT, Limor "Ladyada" Fried. Seu objetivo era criar o melhor local on-line para o aprendizado de eletrônicos e para a fabricação dos melhores produtos projetados para fabricantes de todas as idades e níveis de habilidade.
SMARTCORE
A SmartCore fornece módulos para comuniçã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
BLYNK
Junte-se à plataforma IoT mais popular para conectar seus dispositivos à nuvem, projetar aplicativos para controlá-los e gerenciar seus produtos implantados em escala! Crie sua APP rapidinho e depois porte Blynk para seu próprio servidor.
Blynk é uma plataforma com aplicativos iOS e Android para controlar
Arduino, Raspberry Pi e afins pela Internet.
Você pode criar facilmente interfaces gráficas para todos os seus
projetos simplesmente arrastando e soltando widgets
Instalando Arduino Adafruit no NINA B302
Abaixo o roteiro para você seguir:
Baixe e instale o Arduino IDE
Inicie o Arduino IDE, vá em Preferências e adicione
https://www.adafruit.com/package_adafruit_index.json
Baixe e instale o Arduino IDE
Inicie o Arduino IDE, vá em Preferências e adicione
https://www.adafruit.com/package_adafruit_index.json
como "URL adicional do gerenciador de pastas"
Abra o Boards Manager no menu Tools -> Board e instale o "Adafruit nRF52 by Adafruit"
Selecione sua placa nRF5 no menu Ferramentas -> Placa
Adafruit Bluefruit nRF52 Feather
Abra o Boards Manager no menu Tools -> Board e instale o "Adafruit nRF52 by Adafruit"
Selecione sua placa nRF5 no menu Ferramentas -> Placa
Adafruit Bluefruit nRF52 Feather
OBSERVAÇÃO: Durante a instalação, o Arduino IDE leva alguns minutos para extrair as ferramentas após o download, por favor, seja paciente.
Use o gravador SEGGER JLINK para gravar o BREAKOUT com módulo 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 ...
Abra J-FLASH lite e grave o bootloader da Adafruit
O mesmo se encontra em
....\packages\adafruit\hardware\nrf52\0.19.0\bootloader\feather_nrf52840_express
Compile depois para o NINA B302
Com ele, você poderá transferir programas via DFU USB. Maiores detalhes sobre este bootloader
Segundo a documentação, se você pressionar o reset, o módulo aguardará por um certo tempo se há algo sendo enviado pelo Arduino, ou seja, o programa a ser gravado via DFU.
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
INSTALE OS DRIVERS
Conecte na USB + e USB - um cabo USB, AGUARDE INSTALAR OS DRIVERS
Futuramente altere arquivo variant.cpp para que as GPIOS sejam os mesmos do NINA B302, atualmente estão para o ADAFRUIT FEATHER EXPRESS.
Copie
Criado pelo Autor
boards.txt
variant.h
viariant.cpp
ÓTIMA REFERENCIA PARA PINOS DO ARDUINO E PINOS (GPIOS) DO NINA B302
Consulte
TRANSFORMANDO NINA W102 EM WIFI COPROCESSOR
Grave o seguinte BIN no NINA W102, o qual será transformado em um SPI COPROCESSOR WIFI. Você pode usar o esptools para gravar.
A versão do BIN de maior ou igual à 1.4.0.
MONTAGEM
Conecte fisicamente o U-BLOX NINA B302 com o U-BLOX NINA W102 conforme circuito abaixo. Bom utilizar fios bem curtos. Os breakouts utilizados foram da Smartcore.
BREAKOUT B3 | BREAKOUT W1 | |||
CS | IO1 | P0.13 | IO28 | 5 |
READY | IO2 | P0.14 | IO7 | 33 |
RESET | IO21 | P1.12 | RESET | RESET |
SCK | IO45 | P0.07 | IO29 | 18 |
MOSI | IO3 | P0.15 | IO31 | 14 |
MISO | IO8 | P1.00 | IO1 | 23 |
GPIO0 | IO4 | P0.16 | IO27 | 0 |
INSTALE O APP DO BLYNK
Instale um APP do BLYNK e crie uma conta. Crie um projeto de um FRONT END para acesso ao NINA B302
Então um TOKEN será gerado para o seu e-mail com instruções
Auth Token : xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Happy Blynking!
-
Getting Started Guide -> https://www.blynk.cc/getting-started
Documentation -> http://docs.blynk.cc/
Sketch generator -> https://examples.blynk.cc/
Latest Blynk library -> https://github.com/blynkkk/blynk-library/releases/download/v0.6.1/Blynk_Release_v0.6.1.zip
Latest Blynk server -> https://github.com/blynkkk/blynk-server/releases/
-
https://www.blynk.cc
twitter.com/blynk_app
www.facebook.com/blynkapp
1) Antes de abrir o projeto
Leia Atentamente
Veja as libs que tem que instalar - dependências
Abra então o projeto
Código
/****************************************************************************************************************************
nRF52_WiFiNINA.ino
For nRF52 using WiFiNINA Shield/Module
(https://github.com/khoih-prog/Blynk_WiFiNINA_WM) to enable easy configuration/reconfiguration and
Blynk_WiFiNINA_WM is a library for the Mega, Teensy, SAM DUE, nRF52, STM32 and SAMD boards
autoconnect/autoreconnect of WiFiNINA/Blynk
Licensed under MIT license
Modified from Blynk library v0.6.1 https://github.com/blynkkk/blynk-library/releases
Built by Khoi Hoang https://github.com/khoih-prog/Blynk_WiFiNINA_WM
@file BlynkSimpleWiFiNINA.h
Version: 1.0.4
Original Blynk Library author:
@author Volodymyr Shymanskyy
@license This project is released under the MIT License (MIT)
@copyright Copyright (c) 2018 Volodymyr Shymanskyy
@date Sep 2018
@brief
Version Modified By Date Comments
------- ----------- ---------- -----------
1.0.0 K Hoang 07/04/2020 Initial coding
1.0.1 K Hoang 09/04/2020 Add support to SAM DUE, Teensy, STM32
1.0.2 K Hoang 15/04/2020 Fix bug. Add SAMD51 support.
1.0.3 K Hoang 05/05/2020 Add nRF52 support, MultiWiFi/Blynk, Configurable Config Portal Title,
Default Config Data and DRD. Update examples.
1.0.4 K Hoang 13/05/2020 Add support to Arduino UNO WiFi R2
*****************************************************************************************************************************/
#include "defines.h"
#include "Credentials.h"
#include "dynamicParams.h"
void heartBeatPrint(void)
{
static int num = 1;
if (Blynk.connected())
{
Serial.print("B");
Blynk.virtualWrite(V0, "OK");
}
else
{
Serial.print("F");
}
if (num == 80)
{
Serial.println();
num = 1;
}
else if (num++ % 10 == 0)
{
Serial.print(" ");
}
}
void check_status()
{
static unsigned long checkstatus_timeout = 0;
#define STATUS_CHECK_INTERVAL 10000L
// Send status report every STATUS_REPORT_INTERVAL (10) seconds: we don't need to send updates frequently if there is no status change.
if ((millis() > checkstatus_timeout) || (checkstatus_timeout == 0))
{
// report status to Blynk
heartBeatPrint();
checkstatus_timeout = millis() + STATUS_CHECK_INTERVAL;
}
}
void setup()
{
// Debug console
Serial.begin(115200);
while (!Serial);
//delay(1000);
Serial.println("\nStart Blynk_WiFiNINA_WM using WiFiNINA_Shield on " + String(BOARD_TYPE));
#if USE_BLYNK_WM
Serial.println(F("Start Blynk_WM"));
Blynk.setConfigPortalIP(IPAddress(192, 168, 120, 1));
//Blynk.setConfigPortal("SAMD", "MySAMD");
//Blynk.begin("nRF52-WiFiNINA");
Blynk.begin(HOST_NAME);
#else
Serial.println(F("Start Blynk"));
Blynk.begin(auth, ssid, pass, BlynkServer.c_str(), BLYNK_SERVER_HARDWARE_PORT);
#endif
}
#if (USE_BLYNK_WM && USE_DYNAMIC_PARAMETERS)
void displayCredentials(void)
{
Serial.println("\nYour stored Credentials :");
for (int i = 0; i < NUM_MENU_ITEMS; i++)
{
Serial.println(String(myMenuItems[i].displayName) + " = " + myMenuItems[i].pdata);
}
}
#endif
void loop()
{
Blynk.run();
check_status();
#if (USE_BLYNK_WM && USE_DYNAMIC_PARAMETERS)
static bool displayedCredentials = false;
if (!displayedCredentials)
{
for (int i = 0; i < NUM_MENU_ITEMS; i++)
{
if (!strlen(myMenuItems[i].pdata))
{
break;
}
if ( i == (NUM_MENU_ITEMS - 1) )
{
displayedCredentials = true;
displayCredentials();
}
}
}
#endif
}
Coloque as credenciais do WIFI e SERVIDOR BLYNK via WEB ou direto nos arquivos correspondentes que aparecem na ABA.
2) COMPILE E GRAVE
3) EXECUTE
4) NO SEU APP CRIE UM VALUE DISPLAY (V0), O MESMO MOSTRARÁ UMA MENSAGEM DE "OK"
Questoes: suporte@smartcore.com.br
FONTES:
THANKS TO Khoi Hoang
https://blynk.io/en/getting-started
http://docs.blynk.cc/#widgets-displays-led
https://github.com/khoih-prog/BlynkEthernet_WM
http://docs.blynk.cc/#getting-started-getting-started-with-the-blynk-app
Sobre a SMARTCORE
THANKS TO Khoi Hoang
https://blynk.io/en/getting-started
http://docs.blynk.cc/#widgets-displays-led
https://github.com/khoih-prog/BlynkEthernet_WM
http://docs.blynk.cc/#getting-started-getting-started-with-the-blynk-app
Sobre a SMARTCORE
A SmartCore fornece módulos para comuniçã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