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.
MONTAGEMAdquirimos 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
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 B302https://github.com/adafruit/Adafruit_nRF52_Bootloader
Com ele, você poderá transferir programas via DFU USB. Maiores detalhes sobre este bootloaderhttps://learn.adafruit.com/introducing-the-adafruit-nrf52840-feather/update-bootloaderSegundo 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 DRIVERShttps://github.com/adafruit/Adafruit_Windows_Drivers
Conecte na USB + e USB - um cabo USB, AGUARDE INSTALAR OS DRIVERS
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
- Habilite o modem da U-BLOX em defines.h
- Defina sua APN e User/Pass em defines.h
- 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
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.