terça-feira, 30 de março de 2021

U-BLOX NINA B302 + GSM ACESSANDO SERVIDOR HTTPS (SSL)

  U-BLOX NINA B302 + GSM ACESSANDO SERVIDOR HTTPS (SSL)


O objetivo deste BLOG é mostrar um exemplo em ARDUINO que permite o NINA B302 se comunicar com um servidor MQTT da U-BLOX (www.cloudflare.com) via GSM via porta 443 (SSL), baseado no modem u-BLOX SARA G350 (02S-01). 

Utilize a programação clássica com Sockets do Arduino! Não se preocupe com os comandos AT :)

SSL

O Secure Sockets Layer (SSL, Camada de Soquetes Seguros) é um protocolo de segurança que proporciona privacidade, autenticação e integridade às comunicações na Internet. Eventualmente, o SSL acabou evoluindo para o Transport Layer Security (TLS, Segurança da Camada de Transporte).

Veja SSL no u-BLOX SARA G350

O site que será acessado via HTTPS será o www.cloudflare.com , faça inicialmente o teste com seu browser preferido, digitando


Você obterá a seguinte resposta
fl=97f245
h=www.cloudflare.com
ip=2804:d57:4e27:e100:c0dd:9541:395f:22ee
ts=1617111478.796
visit_scheme=https
uag=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safari/537.36 Edg/89.0.774.63
colo=GRU
http=http/3
loc=BR
tls=TLSv1.3
sni=plaintext
warp=off
gateway=off
observe o cadeado fechado

+

u-BLOX 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.

MONTAGEM


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);
-Plugável no PROTOBOARD;
-Acesso às várias GPIOS;

Pequena 


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


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




OBSERVAÇÃO: Durante a instalação, o Arduino IDE leva alguns minutos para extrair as ferramentas após o download, por favor, seja paciente

Gravando bootloader da Adafruit

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 ...
...nestes pinos da placa BREAKOUT

Você pode também usar o ST-LINK V2



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




ÓTIMA REFERÊNCIA PARA PINOS DO ARDUINO E PINOS (GPIOS) DO NINA B302


Consulte

https://www.u-blox.com/sites/default/files/NINA-B3_DataSheet_%28UBX-17052099%29.pdf
Ligue os pino do NINA B302 no NINA W102 (com WIFININA GRAVADO)

INSTALE LIB


Observe os pré-requisitos

Thanks to Khoi Hoang to help to port GSM to NINA B302

Abra o exemplo

GsmSSLWebClient

  1.  Habilite o modem da U-BLOX em defines.h
  2.  Defina sua APN e User/Pass em defines.h
  3.  Coloque as credenciais da Operadora de Celular em defines.h
Conexões

Conexões

Conecte o TXD do NINA no RXD do MODEM U-BLOX
Conecte o RXD do NINA no TXD do MODEM U-BLOX

Atualização de CREDENCIAIS

Mudar para
if (client.connect (server, port, false)) para obter as credenciais (SSL) já disponíveis em um . H no GSM_Generic LIB e, em seguida, ser escrito para o SARA 350 Flash

Então volte para
if (client.connect (server, port) para recuperar credenciais previamente salvas (SSL).

Primeira vez para executar (para novo modem, sem o Root Certs em flash), use para carregar os Certificados da biblioteca para o flash de modem. Só precisamos disso uma vez porque é demorado.

client.connect (server, port);
Depois do primeiro carregamento, cada vez mais tarde, só usar

client.connect (server, port, false);
Isso não carregará mais os Certificador, apenas continue usando os Certs do Flash para economizar tempo.

Compile o programa  e pressione o botão para gravar com a primeira opção!

Como podem observar, o programa será transferido!

Com a primeira opção, Certificados serão gravados na FLASH do u-BLOX SARA G350

Com a segunda opção, Certificados serão lidos da FLASH então abrirá a conexão ao servidor CloudFlame (veja o OK do u-BLOX SARA G350)

Comandos enviados pelo u-BLOX SARA G350

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+CREG?
AT+CREG?
AT+CREG?
AT+CREG?
AT+CREG?
AT+CREG?
AT+CREG?
AT+CREG?
AT+CREG?
AT+CREG?
AT+CREG?
AT+CREG?
AT+CREG?
AT+CREG?
AT+CREG?
AT+CREG?
AT+CREG?
AT+CREG?
AT+CREG?
AT+CREG?
AT+CREG?
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+USOCR=6
AT+USOSEC=0,1,0
AT+USECPRF=0,0,1
AT+USOCO=0,"www.cloudflare.com",443
AT+USOWR=0,4,"47455420"
AT+USOWR=0,14,"2F63646E2D6367692F7472616365"
AT+USOWR=0,9,"20485454502F312E31"
AT+USOWR=0,2,"0D0A"
AT+USOWR=0,6,"486F73743A20"
AT+USOWR=0,18,"7777772E636C6F7564666C6172652E636F6D"
AT+USOWR=0,2,"0D0A"
AT+USOWR=0,17,"436F6E6E656374696F6E3A20636C6F7365"
AT+USOWR=0,2,"0D0A"
AT+USOWR=0,2,"0D0A"
AT+USORD=0,512
AT+USORD=0,512
AT+USORD=0,512
AT+USORD=0,512
AT+USORD=0,512
AT+USOCL=0

Resposta aos comandos

AT+CFUN=16

OK
AT

OK
AT

OK
AT

OK
AT

OK
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?

+CREG: 0,0

OK
AT+CREG?

+CREG: 0,0

OK
AT+CREG?

+CREG: 0,0

OK
AT+CREG?

+CREG: 0,0

OK
AT+CREG?

+CREG: 0,0

OK
AT+CREG?

+CREG: 0,0

OK
AT+CREG?

+CREG: 0,0

OK
AT+CREG?

+CREG: 0,0

OK
AT+CREG?

+CREG: 0,0

OK
AT+CREG?

+CREG: 0,0

OK
AT+CREG?

+CREG: 0,0

OK
AT+CREG?

+CREG: 0,0

OK
AT+CREG?

+CREG: 0,0

OK
AT+CREG?

+CREG: 0,0

OK
AT+CREG?

+CREG: 0,0

OK
AT+CREG?

+CREG: 0,0

OK
AT+CREG?

+CREG: 0,0

OK
AT+CREG?

+CREG: 0,0

OK
AT+CREG?

+CREG: 0,0

OK
AT+CREG?

+CREG: 0,0

OK
AT+CREG?

+CREG: 0,0

OK
AT+CREG?

+CREG: 0,0

OK
AT+CREG?

+CREG: 0,0

OK
AT+CREG?

+CREG: 0,0

OK
AT+CREG?

+CREG: 0,0

OK
AT+CREG?

+CREG: 0,0

OK
AT+CREG?

+CREG: 0,0

OK
AT+CREG?

+CREG: 0,0

OK
AT+CREG?

+CREG: 0,0

OK
AT+CREG?

+CREG: 0,0

OK
AT+CREG?

+CREG: 0,0

OK
AT+CREG?

+CREG: 0,0

OK
AT+CREG?

+CREG: 0,0

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+USOCR=6

+USOCR: 0

OK
AT+USOSEC=0,1,0

OK
AT+USECPRF=0,0,1

OK
AT+USOCO=0,"www.cloudflare.com",443

OK
AT+USOWR=0,4,"47455420"

+USOWR: 0,4

OK
AT+USOWR=0,14,"2F63646E2D6367692F7472616365"

+USOWR: 0,14

OK
AT+USOWR=0,9,"20485454502F312E31"

+USOWR: 0,9

OK
AT+USOWR=0,2,"0D0A"

+USOWR: 0,2

OK
AT+USOWR=0,6,"486F73743A20"

+USOWR: 0,6

OK
AT+USOWR=0,18,"7777772E636C6F7564666C6172652E636F6D"

+USOWR: 0,18

OK
AT+USOWR=0,2,"0D0A"

+USOWR: 0,2

OK
AT+USOWR=0,17,"436F6E6E656374696F6E3A20636C6F7365"

+USOWR: 0,17

OK
AT+USOWR=0,2,"0D0A"

+USOWR: 0,2

OK
AT+USOWR=0,2,"0D0A"

+USOWR: 0,2

OK
AT+USORD=0,512

+USORD: 0,0,""

OK
AT+USORD=0,512

+USORD: 0,512,"485454502F312E3120323030204F4B0D0A446174653A205475652C203330204D617220323032312031343A30343A323920474D540D0A436F6E74656E742D547970653A20746578742F706C61696E0D0A5472616E736665722D456E636F64696E673A206368756E6B65640D0A436F6E6E656374696F6E3A20636C6F73650D0A5365742D436F6F6B69653A205F5F6366647569643D646463633966303132313962306135663764623032303431386439383038396361313631373131333036393B20657870697265733D5468752C2032392D4170722D32312031343A30343A323920474D543B20706174683D2F3B20646F6D61696E3D2E7777772E636C6F7564666C6172652E636F6D3B20487474704F6E6C793B2053616D65536974653D4C61783B205365637572650D0A4163636573732D436F6E74726F6C2D416C6C6F772D4F726967696E3A202A0D0A5365727665723A20636C6F7564666C6172650D0A43462D5241593A20363338316533323636396437663835622D4749470D0A582D4672616D652D4F7074696F6E733A2044454E590D0A582D436F6E74656E742D547970652D4F7074696F6E733A206E6F736E6966660D0A457870697265733A205468752C203031204A616E20313937302030303A30303A303120474D540D0A43616368652D436F6E74726F6C3A206E6F2D63616368650D0A0D0A61300D0A666C3D3231"

OK

+UUSORD: 0,157
AT+USORD=0,512

+USORD: 0,157,"366633360A683D7777772E636C6F7564666C6172652E636F6D0A69703D3138392E39322E3234372E31300A74733D313631373131333036392E36310A76697369745F736368656D653D68747470730A7561673D0A636F6C6F3D4749470A687474703D687474702F312E310A6C6F633D42520A746C733D544C5376312E320A736E693D6F66660A776172703D6F66660A676174657761793D6F66660A0D0A"

OK

+UUSORD: 0,5
AT+USORD=0,512

+USORD: 0,5,"300D0A0D0A"

OK
AT+USORD=0,512

Circuito



Dúvidas:

suporte@smartcore.com.br

Referências:

THANKS TO Khoi Hoang

What is SSL (Secure Sockets Layer)? | Cloudflare

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