NINA B302 ACESSANDO BLYNK VIA GSM - SARA G350
O objetivo deste BLOG é demonstrar como é possível utilizar o ARDUINO para programar o módulo U-BLOX NINA B302 para ter acesso a INTERNET via GSM via G350 e assim se comunicar com servidor Blynk.
+
SARA G350
A série SARA-G3 de módulos GSM / GPRS apresenta consumo de energia extremamente baixo e um fator de forma LGA em miniatura. Os módulos SARA-G3 são intercambiáveis e foram projetados tendo em mente as diversas necessidades dos clientes M2M. Diferentes funcionalidades e conjuntos de recursos estão disponíveis para atender aos diferentes requisitos do cliente e da aplicação. SARA-G340 / G350 são módulos GSM / GPRS completos com um conjunto abrangente de recursos, incluindo um amplo conjunto de protocolos de internet (TCP, UDP, HTTP, FTP e SMTP). Elas têm acesso totalmente integrado a chips de posicionamento GNSS u-blox e módulos, junto com a funcionalidade A-GNSS (AssistNow On line e AssistNow Off-line) incorporada. SARA-G350 é o versão quad-band para conectividade global e SARA-G340 (900/1800 MHz) é a versão de banda dupla para otimização de custos uso na Europa e na Ásia. Seu rico conjunto de recursos permite que os clientes desenvolvam facilmente uma ampla gama de dispositivos M2M com desenvolvimento mínimo de software no processador host. SARA-G340 ATEX e SARA-G350 ATEX são ATEX / IECEx variantes certificadas que complementam ainda mais a série de produtos oferecendo a solução ideal para o desenvolvimento de dispositivos inteligentes implantados em ambientes potencialmente explosivos. Módulos celulares u-blox são certificados e aprovados pelo principal órgãos reguladores e operadoras. Software RIL para Android está disponível gratuitamente. Os módulos SARA-G3 são fabricados em locais com certificação ISO / TS 16949. Cada módulo é testado e inspecionado durante a produção. Os módulos são qualificados de acordo com a ISO 16750 - Condições ambientais e testes elétricos para equipamentos elétricos e eletrônicos para rodovias veículos.
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.
INSTALE O APP DO BLYNK
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
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
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
https://github.com/adafruit/Adafruit_nRF52_Bootloader
Com ele, você poderá transferir programas via DFU USB. Maiores detalhes sobre este bootloader
https://learn.adafruit.com/introducing-the-adafruit-nrf52840-feather/update-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
https://github.com/adafruit/Adafruit_Windows_Drivers
Conecte na USB + e USB - um cabo USB, AGUARDE INSTALAR OS DRIVERS
https://www.u-blox.com/sites/default/files/NINA-B3_DataSheet_%28UBX-17052099%29.pdf
1) Baixe e instale a última versão da IDE do Arduino para o seu NINA.
2) Instale a LIB TINYGSM
https://github.com/khoih-prog/GSM_Generic
2) Instale a LIB TINYGSM
https://github.com/khoih-prog/GSM_Generic
Veja o README e atualize Packages para o NINA B302
3) Abra o projeto GSM_BLYNK
3) Abra o projeto GSM_BLYNK
- Habilite o modem da U-BLOX em defines.h
- Defina sua APN e User/Pass em defines.h
- Defina o Token do Servidor Blynk em gsm_blynk
- Coloque as credenciais da Operadora de Celular em defines.h
4) Conexões
Conecte o TXD do NINA no TXD do MODEM U-BLOX
Conecte o RXD do NINA no RXD do MODEM U-BLOX
Conecte o TXD do NINA no TXD do MODEM U-BLOX
Conecte o RXD do NINA no RXD do MODEM U-BLOX
5) Vá agora em Tools > Board > Boards Manager
7) Compile e Execute
Comandos enviados pelo NINA via TINYGSM e recebidos
ENVIADOS PELO NINA B302
AT+CFUN=16
AT
AT
AT
AT
AT+CPIN?
AT+CMGF=1
AT+UDCONF=1,1
AT+CTZU=1
AT+UDTMFD=1,2
AT+CREG?
AT+CREG?
AT+CREG?
AT+CREG?
AT+CREG?
AT+CREG?
AT+CREG?
AT+CREG?
AT+UCALLSTAT=1
AT+CGATT=1
AT+UPSD=0,1,"claro.com.br"
AT+UPSD=0,2,"claro"
AT+UPSD=0,3,"claro"
AT+UPSD=0,7,"0.0.0.0"
AT+UPSDA=0,3
AT+UPSND=0,8
AT+UPSND=0,0
AT+USOCR=6
AT+USOCO=0,"blynk-cloud.com",8080
AT+USORD=0,512
AT+USOWR=0,37,"1D0001002042634575644E6F58776376506C437464615149546D4357733074413135746659"
AT+USORD=0,512
AT+USORD=0,512
AT+USORD=0,512
AT+USORD=0,512
AT+USORD=0,512
AT+USOWR=0,92,"110002005776657200302E362E3700682D6265617400363000627566662D696E00323536006465760041726475696E6F00636F6E0047534D5F47454E45524943006275696C64004D617220313420323032312030393A34373A323400"
AT+USORD=0,512
AT+USORD=0,512
AT+USORD=0,512
AT+USORD=0,512
AT+USORD=0,512
AT+USORD=0,512
AT+USORD=0,512
AT+USORD=0,512
RECEBIDOS PELO NINA B302
AT+CFUN=16
OK
AT
OK
AT
AT+CPIN?
+CPIN: READY
OK
AT+CMGF=1
OK
AT+UDCONF=1,1
OK
AT+CTZU=1
OK
AT+UDTMFD=1,2
OK
AT+CREG?
+CREG: 0,0
OK
AT+CREG?
+CREG: 0,0
OK
AT+CREG?
OK
AT+CREG?
+CREG: 0,0
OK
AT+CREG?
+CREG: 0,1
OK
AT+UCALLSTAT=1
OK
AT+CGATT=1
OK
AT+UPSD=0,1,"claro.com.br"
OK
AT+UPSD=0,2,"claro"
OK
AT+UPSD=0,3,"claro"
OK
AT+UPSD=0,7,"0.0.0.0"
OK
AT+UPSDA=0,3
OK
AT+UPSND=0,8
+UPSND: 0,8,1
OK
AT+UPSND=0,0
+UPSND: 0,0,"100.110.76.248"
OK
AT+USOCR=6
+USOCR: 0
OK
AT+USOCO=0,"blynk-cloud.com",8080
OK
AT+USORD=0,512
+USORD: 0,0,""
OK
AT+USOWR=0,37,"1D0001002042634575644E6F58776376506C437464615149546D4357733074413135746659"
+USOWR: 0,37
OK
AT+USORD=0,512
+USORD: 0,0,""
OK
AT+USORD=0,512
+USORD: 0,0,""
OK
AT+USORD=0,512
+USORD: 0,0,""
OK
+UUSORD: 0,5
AT+USORD=0,512
+USORD: 0,5,"00000100C8"
OK
AT+USORD=0,512
+USORD: 0,0,""
OK
AT+USOWR=0,92,"110002005776657200302E362E3700682D6265617400363000627566662D696E00323536006465760041726475696E6F00636F6E0047534D5F47454E45524943006275696C64004D617220313420323032312030393A34373A323400"
+USOWR: 0,92
OK
AT+USORD=0,512
+USORD: 0,0,""
OK
AT+USORD=0,512
+USORD: 0,0,""
Lado do NINA B302
TERMINAL
Start GSM_Blynk on NINA_B302_ublox
GSM_Generic v1.2.3
[2485]
___ __ __
/ _ )/ /_ _____ / /__
/ _ / / // / _ \/ '_/
/____/_/\_, /_//_/_/\_\
/___/ v0.6.7 on Arduino
[GSM] begin: UART baud = 115200
[GSM] GSMClient::handleUrc: usr = +UUPSDD: 0
[GSM] GSMClient::handleUrc: usr = +UUSOCL: 0
[GSM] begin: Check autosense
[GSM] begin: Modem OK
[GSM] GSM::begin: _gsmData._state = GSM_ERROR
Connect GPRS failed, try = 1
[GSM] begin: UART baud = 115200
[GSM] begin: Check autosense
[GSM] GSMClient::handleUrc: usr = OK
[GSM] begin: Modem OK
[GSM] GSM::begin: _gsmData._state = GSM_IDLE
Connected to GPRS. IP address = 10.52.37.49
nect: host = blynk-cloud.com, port = 8080
[GSM] GSMClient::connect: OK
[GSM] GSMClient::connected: OK
[GSM] GSMClient::connected: OK
[GSM] GSMClient::connected: OK
[GSM] GSMClient::connected: OK
[28840] Ready (ping: 551ms).
[GSM] GSMClient::connected: OK
[GSM] GSMClient::connected: OK
[GSM] GSMClient::handleUrc: usr = +UUSORD: 0,5
[GSM] GSMClient::connected: OK
[GSM] GSMClient::connected: OK
[GSM] GSMClient::connected: OK
[GSM] GSMClient::connected: OK
[GSM] GSMClient::connected: OK
[GSM] GSMClient::connected: OK
[GSM] GSMClient::connected: OK
Circuito
Modem SARA G350
Blynk APP conectado com END DEVICE (GSM)
8) Código
#include "defines.h"
#define USING_NON_BLOCK_BLYNK_CONNECT true
//////////////////////////////////////////////////////
// Please enter your sensitive data in the Secret tab or arduino_secrets.h
// PIN Number
const char PINNUMBER[] = SECRET_PINNUMBER;
// APN data
const char GPRS_APN[] = SECRET_GPRS_APN;
const char GPRS_LOGIN[] = SECRET_GPRS_LOGIN;
const char GPRS_PASSWORD[] = SECRET_GPRS_PASSWORD;
//////////////////////////////////////////////////////
GSMClient gsmClient;
GPRS gprs;
GSM gsmAccess;
// connection state
bool connected = false;
bool GSM_CONNECT_OK = false;
// BaudRate to communicate to GSM/GPRS modem. If be limit to max 115200 inside modem
unsigned long baudRateSerialGSM = 115200;
//////////////////////////////////////////////////////
// You should get Auth Token in the Blynk App.
// Go to the Project Settings (nut icon).
char auth[] = "BcEudNoXwcvPlCtdaQITmCWs0tA15tfY";
bool connectToGPRS()
{
#define NUMBER_OF_CONNECTION_TRIES 10
uint8_t tryNumber = 1;
// After starting the modem with GSM.begin()
// attach the shield to the GPRS network with the APN, login and password
while ((gsmAccess.begin(baudRateSerialGSM, PINNUMBER) != GSM_READY) ||
(gprs.attachGPRS(GPRS_APN, GPRS_LOGIN, GPRS_PASSWORD) != GPRS_READY))
{
// failed, retry
Serial.print("Connect GPRS failed, try = "); Serial.println(tryNumber);
if (++tryNumber > NUMBER_OF_CONNECTION_TRIES)
{
Serial.println("\nCan't connected to GPRS.");
connected = false;
return false;
}
delay(1000);
}
connected = true;
//Get IP.
IPAddress LocalIP = gprs.getIPAddress();
Serial.print("\nConnected to GPRS. IP address = ");
Serial.println(LocalIP);
return true;
}
void setup()
{
// Open serial communications and wait for port to open:
Serial.begin(115200);
while (!Serial);
delay(200);
Serial.print(F("\nStart GSM_Blynk on ")); Serial.println(BOARD_NAME);
Serial.println(GSM_GENERIC_VERSION);
#if USING_NON_BLOCK_BLYNK_CONNECT
Blynk.config(gsmAccess, gprs, gsmClient, auth, blynk_server, BLYNK_HARDWARE_PORT);
//GSM_CONNECT_OK = Blynk.connectNetwork(gsmAccess, gprs, PINNUMBER, GPRS_APN, GPRS_LOGIN, GPRS_PASSWORD);
GSM_CONNECT_OK = connectToGPRS();
if (GSM_CONNECT_OK)
Blynk.connect();
#else
Blynk.begin(auth, gsmAccess, gprs, gsmClient, PINNUMBER, GPRS_APN, GPRS_LOGIN, GPRS_PASSWORD);
#endif
}
void loop()
{
if (gsmAccess.status() != GSM_READY || gprs.status() != GPRS_READY)
{
connectToGPRS();
}
if (connected)
{
Blynk.run();
}
else
{
delay(10000);
}
}
Questões: suporte@smartcore.com.br
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