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

















Nenhum comentário:
Postar um comentário