quinta-feira, 10 de junho de 2021

Programando u-blox NINA-B302 com NuttX - Criando novo APP

 Programando u-blox NINA-B302 com NuttX - Criando novo APP


O objetivo deste BLOG é demonstrar como é possível utilizar o NuttX para programação do NINA B302. Foi utilizado o BREAKOUT para o teste. Será mostrado como criar um novo APP baseado no APP Hello do Nuttx.

Testado no Ubuntu 20



NuttX: O sistema operacional para a Internet das Coisas.

NuttX é um sistema operacional em tempo real (RTOS) com ênfase na conformidade de padrões e pequeno footprint. Escaláveis de ambientes microcontroladores de 8 bits a 32 bits, os principais padrões de governo em NuttX são os padrões Posix e ANSI. ApIs padrão adicionais do Unix e de outros RTOS comuns (como o VxWorks) são adotadas para funcionalidades não disponíveis sob esses padrões, ou para funcionalidades que não são apropriadas para ambientes profundamente incorporados (como fork()).

Apache NuttX é um esforço em incubação na Apache Software Foundation (ASF), patrocinada pela Incubadora. A incubação é necessária de todos os projetos recém-aceitos até que uma nova revisão indique que o processo de infraestrutura, comunicação e tomada de decisão se estabilizou de forma consistente com outros projetos ASF bem-sucedidos. Embora o status de incubação não seja necessariamente um reflexo da completude ou estabilidade do código, ele indica que o projeto ainda não foi totalmente endossado pela ASF.

NuttX é um sistema operacional incorporado em tempo real (RTOS). Seus objetivos são:

Pequena footprint utilizável em todos, exceto nos ambientes de microcontroles mais apertados, o foco está no ambiente minúsculo para pequeno e profundamente incorporado.

Rich Feature OS Set O objetivo é fornecer implementações da maioria das interfaces padrão do SISTEMA OPERACIONAL POSIX para oferecer suporte a um ambiente de desenvolvimento rico e multi-threaded para processadores profundamente incorporados.

Não é um objetivo fornecer o nível de recursos do SO como os fornecidos pelo Linux. Para trabalhar com MCUs menores, a pequena footprint deve ser mais importante do que um conjunto de recursos extenso. Mas a conformidade padrão é mais importante do que uma pequena footprint. Certamente um RTOS menor poderia ser produzido ignorando padrões. Pense no NuttX é um pequeno trabalho linux com um conjunto de recursos muito reduzido.

Altamente escalável Totalmente escalável de minúsculo (8 bits) a moderado incorporado (64 bits). A escalabilidade com conjunto de recursos ricos é realizada com: Muitos arquivos de origem minúsculos, link de bibliotecas estáticas, altamente configurável, uso de símbolos fracos quando disponíveis.

Conformidade de padrões A NuttX se esforça para alcançar um alto grau de conformidade de padrões. As principais normas de governo são as normas POSIX e ANSI. ApIs padrão adicionais do Unix e de outros RTOS comuns são adotadas para funcionalidades não disponíveis sob esses padrões ou para funcionalidades que não são apropriadas para os RTOS profundamente incorporados (como fork()).

Devido a essa conformidade de padrões, o software desenvolvido sob outros OSs padrão (como o Linux) deve ser portado facilmente para NuttX.

Tempo Real Totalmente preventivo; prioridade fixa, round-robin, e agendamento "esporádico".

Licença Apache não restritiva totalmente aberta.

GNU Toolchains Compatíveis com as cadeias de ferramentas GNU baseadas no buildroot disponível para download para fornecer um ambiente completo de desenvolvimento para muitas arquiteturas.

NINA B302 E NuttX
Como o módulo NINA B302 é baseado no chip NRF52840 (cpu), será possível rodar o Nuttx sem problemas. O usuário deve dar atenção ao mapeamento de GPIOS da U-BLOX.



O link abaixo, é roteiro Básico para que você possa preparar o ambiente para programar o NINA B302 com o NuttX


    Dependências
$sudo apt install \
bison flex gettext texinfo libncurses5-dev libncursesw5-dev \
gperf automake libtool pkg-config build-essential gperf genromfs \
libgmp-dev libmpc-dev libmpfr-dev libisl-dev binutils-dev libelf-dev \
libexpat-dev gcc-multilib g++-multilib picocom u-boot-tools util-linux
O NuttX utiliza um sistema de build semelhante ao do Kernel do Linux (https://www.kernel.org/doc/html/latest/kbuild/index.html). Ele utiliza o kconfig-frontends como seu sistema de configuração. O repositório tools.git é utilizado para instalar este pacote. Porém se você estiver usando o Ubuntu 19.10 ou mais recente, estas distribuições já contém o pacote, senão instale:

$ sudo apt-get install kconfig-frontends


Compilador ARM
$sudo apt install gcc-arm-none-eabi binutils-arm-none-eabi
Download do NuttX
$ mkdir nuttx
 cd nuttx
 git clone https://github.com/apache/incubator-nuttx.git nuttx
 git clone https://github.com/apache/incubator-nuttx-apps apps
Copiando do APP Hello para APP MyAPP e atualizando arquivos, ou seja:
  • entrar na pasta exemplos
  • copiar pasta hello para myapp
  • entrar em myapp
  • renomear hello_main.c para myapp_main.c
  • trocar texto hello para myapp
  • trocar texto HELLO para MYAPP
  • trocar Hello para Myapp
$ cd apps/examples/ $ cp -a hello myapp $ cd myapp $ ls hello_main.c Kconfig Make.defs Makefile $ mv hello_main.c myapp_main.c $ sed -i 's/hello/myapp/g' Kconfig $ sed -i 's/Hello/Myapp/g' Kconfig $ sed -i 's/HELLO/MYAPP/g' Kconfig $ sed -i 's/hello/myapp/g' Make.defs $ sed -i 's/Hello/Myapp/g' Make.defs $ sed -i 's/HELLO/MYAPP/g' Make.defs $ sed -i 's/hello/myapp/g' Makefile $ sed -i 's/Hello/Myapp/g' Makefile $ sed -i 's/HELLO/MYAPP/g' Makefile


Seleção do NINA B302 (NRF52840)
$ cd nuttx
 ./tools/configure.sh -l nrf52840-dk:nsh
osboxes@osboxes:~/nuttx/nuttx$ ./tools/configure.sh -l nrf52840-dk:nsh
No configuration change.
osboxes@osboxes:~/nuttx/nuttx
Customização e compilação
$ cd nuttx/
$ make clean
$ make menuconfig

.config - NuttX/x86_64 Configuration
 ────────────────────────────────────────────────────────────────────────────────────
  ┌───────────────────────── NuttX/x86_64 Configuration ──────────────────────────
    Arrow keys navigate the menu.  <Enter> selects submenus ---> (or empty       │  
    submenus ----).  Highlighted letters are hotkeys.  Pressing <Y> includes,    │  
    <N> excludes, <M> modularizes features.  Press <Esc><Esc> to exit, <?> for   │  
    Help, </> for Search.  Legend: [*] built-in  [ ] excluded  <M> module  < >   │  
   ┌───────────────────────────────────────────────────────────────────────────  
      Build Setup  --->                                                    
  System Type  --->                                                    
  Board Selection  --->                                                
  RTOS Features  --->                                                  
  Device Drivers  --->                                                 
   │        Networking Support  --->                                             
  Crypto API  --->                                                     
  File Systems  --->                                                   
  Graphics Support  --->                                               
   │        Memory Management  --->                                              
  Audio Support  --->                                                  
  Video Support  --->                                                  
  Wireless Support  --->                                               
  Binary Loader  --->                                                  
  Library Routines  --->                                               
  Open Asymmetric Multi Processing  --->                               
  Application Configuration  --->                                      
  ───────────────────────────────────────────────────────────────────────────┘  
  ├───────────────────────────────────────────────────────────────────────────────  
             <Select>    < Exit >    < Help >    < Save >    < Load >            │  
  ───────────────────────────────────────────────────────────────────────────────┘  
     
 Para habilitar o exemplo Hello world, você precisa habilitar a seguinte configuração.

CONFIG_BUILTIN
 Symbol: BUILTIN [=y]                                                           │  
   Type  : boolean                                                                │  
   Prompt: Support Builtin Applications                                           │  
     Location:                                                                    │  
   (1) -> Library Routines                                                        │  
     Defined at libs/libc/builtin/Kconfig:6                                       │  
     Depends on: !BUILD_KERNEL [=n]         
 CONFIG_EXAMPLES_HELLO
 Symbol: EXAMPLES_HELLO [=y]                                                    │  
   Type  : tristate                                                               │  
   Prompt: "Hello, World!" example                                                │  
     Location:                                                                    │  
       -> Application Configuration                                               │  
   (1)   -> Examples                                                              │  
     Defined at /home/osboxes/nuttx/apps/examples/hello/Kconfig:6                 │ 
 CONFIG_NSH_BUILTIN_APPS
─────────────────────────────── Search Results ────────────────────────────────
   Symbol: NSH_BUILTIN_APPS [=y]                                                  │  
   Type  : boolean                                                                │  
   Prompt: Enable built-in applications                                           │  
     Location:                                                                    │  
       -> Application Configuration                                               │  
         -> NSH Library                                                           │  
   (1)     -> NSH Library (NSH_LIBRARY [=y])                                      │  
     Defined at /home/osboxes/nuttx/apps/nshlib/Kconfig:193                       │  
     Depends on: NSH_LIBRARY [=y] && BUILTIN [=y] 
Habilite myapp
Arrow keys navigate the menu.  <Enter> selects submenus ---> (or empty submenus ----).   │  
    Highlighted letters are hotkeys.  Pressing <Y> includes, <N> excludes, <M> modularizes   │  
    features.  Press <Esc><Esc> to exit, <?> for Help, </> for Search.  Legend: [*] built-in │  
    [ ] excluded  <M> module  < > module capable                                             │  
   ┌────────↑(-)─────────────────────────────────────────────────────────────────────────── │  
   │        [ ] "max31855" example                                                          │  
   │        [ ] Media test                                                                  │  
   │        [ ] MLX90614 Test Example                                                       │  
   │        [ ] FreeModBus example                                                          │  
   │        [ ] Modbus Master example                                                       │  
   │        [ ] File system mount example                                                   │  
   │        [*] "Myapp, World!" example                                                     │  
   │        (myapp) Program name                                                            │  
   │        (100) Myapp task priority                                                       │  
   │        (2048) Myapp stack size                                                         │  
   │        [ ] NULL example                                                                │  
   │        [ ] NX Demo "Graphic test" example                                              │  
   └────────↓(+)───────────────────────────────────────────────────────────────────────────┘ │  
  ├───────────────────────────────────────────────────────────────────────────────────────────  
                   <Select>    < Exit >    < Help >    < Save >    < Load >                  │  
  ───────────────────────────────────────────────────────────────────────────────────────────┘  
    
Você pode pesquisar os itens de configuração pressionando "/" na tela do menu. Você também pode 
pular para esse menu digitando um número como "(1)" no lado esquerdo dos resultados da pesquisa.
Após alterar a configuração, não esqueça de configurar o TXD e RXD....acordo com o board.h que 
se encontra em 

/home/osboxes/nuttx/nuttx/boards/arm/nrf52/nrf52840-dk/include

Os pinos TXD e RXD que são utilizados para comunicação com o terminal são
P1.13 e P0.29, os mesmos GPIO22 e GPIO23 no encapsulamento do NINA B302
/* UART0 is connected to the virtual COM port:
 *   UART0_RX - P0-29
 *   UART0_TX - P1-13
 */

#define BOARD_UART0_TX_PIN  (GPIO_INPUT  | GPIO_PORT1 | GPIO_PIN(13))
#define BOARD_UART0_RX_PIN  (GPIO_OUTPUT | GPIO_VALUE_ONE | GPIO_PORT0 | GPIO_PIN(29))



...faça então o make, escreva a imagem e abra o nsh novamente.
make[3]: Leaving directory '/home/osboxes/nuttx/apps/system/readline'
make[2]: Leaving directory '/home/osboxes/nuttx/apps'
make[1]: Leaving directory '/home/osboxes/nuttx/apps'
IN: /home/osboxes/nuttx/apps/libapps.a -> staging/libapps.a
make[1]: Entering directory '/home/osboxes/nuttx/nuttx/fs'
make[1]: 'libfs.a' is up to date.
make[1]: Leaving directory '/home/osboxes/nuttx/nuttx/fs'
make[1]: Entering directory '/home/osboxes/nuttx/nuttx/binfmt'
make[1]: 'libbinfmt.a' is up to date.
make[1]: Leaving directory '/home/osboxes/nuttx/nuttx/binfmt'
make[1]: Entering directory '/home/osboxes/nuttx/nuttx/arch/arm/src'
make[2]: Entering directory '/home/osboxes/nuttx/nuttx/boards/arm/nrf52/nrf52840-dk/src'
make[2]: 'libboard.a' is up to date.
make[2]: Leaving directory '/home/osboxes/nuttx/nuttx/boards/arm/nrf52/nrf52840-dk/src'
LD: nuttx
make[1]: Leaving directory '/home/osboxes/nuttx/nuttx/arch/arm/src'
CP: nuttx.bin
$ grep myapp System.map
0800de04 T myapp_main
Após compilar, será gerado um BIN, o mesmo deve ser gravado no endereço zero do NINA B302.


TESTANDO NO NINA B302
Abra então o TERATERM (115200,N,8.1)



Conexão com USB para SERIAL



DÚVIDAS

suporte@smartcore.com.br

AGRADECIMENTOS

Alan Carvalho de Assis
Mestre em Engenharia Elétrica pela UFRGS; Formado em Computação
Sistemas de Informação pela UnilesteMG

REFERÊNCIAS


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

terça-feira, 8 de junho de 2021

U-BLOX NINA B302 E REDE GSM - SARA G450

                                     U-BLOX NINA B302 E REDE GSM


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 SARA-G450.

+

SARA G450 


Módulo SARA-G450 GSM / GPRS apresenta conectividade GSM / GPRS classe 12 no popular fator de forma U-blox SARA. O módulo SARA-G450 é uma solução ideal para aplicações com espaço e custos sensíveis. Ele oferece uma excelente relação preço-desempenho para todas as aplicações M2M onde as condições ambientais (temperatura, EMC e tensões mecânicas) estão dentro dos níveis padrão. Seu rico conjunto de recursos - incluindo GSM / GPRS classe 12 e integração simples - permite que os clientes integrem facilmente o módulo e desenvolver uma ampla gama de dispositivos M2M. Graças à sua compatibilidade de pinos com os módulos u-blox SARA-G3 (GSM), SARA-U2 (HSPA), SARA-R5 / SARA-R4 (LTE-M / NB- IoT), SARA-N3 (NB-IoT), TOBY-L4 (LTE Cat 6) TOBY-L2 (LTE Cat 4) e TOBY-R2 / LARA-R2 / LARA-R3121 (LTE Cat 1), o SARA-G450 permite que os clientes utilizem o mesmo design de PCB, visando vários requisitos ambientais e diferentes tecnologias celulares. Módulos celulares u-blox são certificados e aprovados pelos principais órgãos reguladores e operadoras
 


1) Baixe e instale a última versão da IDE do Arduino para o seu NINA.

Atualize packages


2) Instale a LIB TINYGSM

https://github.com/vshymanskyy/TinyGSM

Essa biblioteca é fácil de integrar com muitos Sketchs que usam Ethernet ou WiFi. São fornecidos os exemplos PubSubClient (MQTT), Blynk, Cliente HTTP e Download de arquivo.



2) Abra o projeto WECLIENT




  1.  Habilite o modem da U-BLOX
  2.  Habilite #define TINY_GSM_USE_GPRS true
  3.  Defina sua APN e User/Pass
  4.  Defina a URL a ser aberta

3) Conexões

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

PS: o TINY GSM aguarda 6 segundos para iniciar pq imagina que você reseta o MODEM ANTES.

NINA B302 - variant.h
#define PIN_SERIAL1_RX       (1)
#define PIN_SERIAL1_TX       (0)

IO23 e IO22 do Módulo!

3) Vá agora em Tools > Board > Boards Manager



4) Selecione o NINA, neste caso, NINA B302





5) Compile e Execute

Comandos enviados pelo NINA via TINYGSM

Respostas do Modem


Debug da Execução

TERMINAL

Initializing modem...
[14312] ### TinyGSM Version: 0.10.9
[14312] ### TinyGSM Compiled Module:  TinyGsmClientUBLOX
[16251] ### Modem: AT AT
Modem Info: ATI  SARA-G450-01C-01
Waiting for network... success
Network connected
Connecting to java.claro.com.br success
GPRS connected
Performing HTTP GET request... [36597] ### URC Sock Closed:  0
Response status code: 200
Response Headers:
    Server : nginx/1.10.3 (Ubuntu)
    Date : Tue, 08 Jun 2021 18:34:41 GMT
    Content-Type : text/plain; charset=UTF-8
    Content-Length : 121
    Connection : close
    X-DNS-Prefetch-Control : off
    X-Frame-Options : SAMEORIGIN
    Strict-Transport-Security : max-age=15552000; includeSubDomains
    X-Download-Options : noopen
    X-Content-Type-Options : nosniff
    X-XSS-Protection : 1; mode=block
    Accept-Ranges : bytes
    Cache-Control : public, max-age=0
    Last-Modified : Wed, 27 Sep 2017 09:03:12 GMT
    ETag : W/"79-15ec2936080"
Content length is: 121
Response:

  _____            _____  _____  _____
    |  | |\ | \_/ |  ___ |_____ |  |  |
    |  | | \|  |  |_____| _____||  |  |


Body length is: 121
Server disconnected
GPRS disconnected


NINA B302 RECEBENDO DO SARA G450

AT

OK
AT

OK
AT+CFUN=16

OK
AT

OK
AT

OK
AT

OK
AT

OK
AT

OK
AT

OK
ATE0

OK

OK

u-blox

OK

SARA-G450

OK

OK

+CPIN: READY

OK
ATI

SARA-G450-01C-01

OK
AT+CPIN?

+CPIN: READY

OK
AT+CGREG?

+CGREG: 0,2

OK
AT+CGREG?

+CGREG: 0,2

OK
AT+CGREG?

+CGREG: 0,2

OK
AT+CGREG?

+CGREG: 0,2

OK
AT+CGREG?

+CGREG: 0,2

OK
AT+CGREG?

+CGREG: 0,2

OK
AT+CGREG?

+CGREG: 0,2

OK
AT+CGREG?

+CGREG: 0,2

OK
AT+CGREG?

+CGREG: 0,2

OK
AT+CGREG?

+CGREG: 0,2

OK
AT+CGREG?

+CGREG: 0,2

OK
AT+CGREG?

+CGREG: 0,2

OK
AT+CGREG?

+CGREG: 0,2

OK
AT+CGREG?

+CGREG: 0,2

OK
AT+CGREG?

+CGREG: 0,2

OK
AT+CGREG?

+CGREG: 0,2

OK
AT+CGREG?

+CGREG: 0,2

OK
AT+CGREG?

+CGREG: 0,2

OK
AT+CGREG?

+CGREG: 0,2

OK
AT+CGREG?

+CGREG: 0,2

OK
AT+CGREG?

+CGREG: 0,2

OK
AT+CGREG?

+CGREG: 0,2

OK
AT+CGREG?

+CGREG: 0,2

OK
AT+CGREG?

+CGREG: 0,2

OK
AT+CGREG?

+CGREG: 0,2

OK
AT+CGREG?

+CGREG: 0,2

OK
AT+CGREG?

+CGREG: 0,2

OK
AT+CGREG?

+CGREG: 0,2

OK
AT+CGREG?

+CGREG: 0,2

OK
AT+CGREG?

+CGREG: 0,2

OK
AT+CGREG?

+CGREG: 0,2

OK
AT+CGREG?

+CGREG: 0,1

OK
AT+CGREG?

+CGREG: 0,1

OK
AT+CGATT=1

+CGATT:1

OK
AT+UPSD=0,1,"java.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,0

OK


+UUPSDA: 0,"10.135.250.137"

AT+CGATT?

+CGATT:1

OK
AT+UPSND=0,0

+UPSND: 0,0,"10.135.250.137"

OK
AT+USOCR=6

+USOCR: 0

OK
AT+USOCO=0,"vsh.pp.ua",80

OK
AT+USOWR=0,3
@
+USOWR: 0,3

OK
AT+USOWR=0,1
@
+USOWR: 0,1

OK
AT+USOWR=0,17
@
+USOWR: 0,17

OK
AT+USOWR=0,9
@
+USOWR: 0,9

OK
AT+USOWR=0,2
@
+USOWR: 0,2

OK
AT+USOWR=0,6
@
+USOWR: 0,6

OK
AT+USOWR=0,9
@
+USOWR: 0,9

OK
AT+USOWR=0,2
@
+USOWR: 0,2

OK
AT+USOWR=0,10
@
+USOWR: 0,10

OK
AT+USOWR=0,2
@
+USOWR: 0,2

OK
AT+USOWR=0,13
@
+USOWR: 0,13

OK
AT+USOWR=0,2
@
+USOWR: 0,2

OK
AT+USOWR=0,10
@
+USOWR: 0,10

OK
AT+USOWR=0,2
@
+USOWR: 0,2

OK
AT+USOWR=0,5
@
+USOWR: 0,5

OK
AT+USOWR=0,2
@
+USOWR: 0,2

OK
AT+USOWR=0,2
@
+USOWR: 0,2

OK
AT+USORD=0,0

+USORD: 0,0,""

OK
AT+USOCTL=0,10

+USOCTL: 0,10,4

OK
AT+USORD=0,0

+USORD: 0,0,""

OK

+UUSORD: 0,633
AT+USOCTL=0,10

+USOCTL: 0,10,7

OK
AT+USORD=0,0

+USORD: 0,633

OK
AT+USORD=0,633

+USORD: 0,633,"HTTP/1.1 200 OK
Server: nginx/1.10.3 (Ubuntu)
Date: Tue, 08 Jun 2021 18:40:50 GMT
Content-Type: text/plain; charset=UTF-8
Content-Length: 121
Connection: close
X-DNS-Prefetch-Control: off
X-Frame-Options: SAMEORIGIN
Strict-Transport-Security: max-age=15552000; includeSubDomains
X-Download-Options: noopen
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Accept-Ranges: bytes
Cache-Control: public, max-age=0
Last-Modified: Wed, 27 Sep 2017 09:03:12 GMT
ETag: W/"79-15ec2936080"

  _____            _____  _____  _____    |  | |\ | \_/ |  ___ |_____ |  |  |    |  | | \|  |  |_____| _____||  |  |"

OK

+UUSOCL: 0
AT+USORD=0,0

ERROR
AT+USOCTL=0,10

ERROR
AT+USOCL=0

ERROR
AT+UPSDA=0,4

OK
AT+CGATT=0


+UUPSDD: 0


+CGATT:0

OK


NINA B302 TRANSMITINDO PARA SARA G450

AT
AT
AT+CFUN=16
AT
AT
AT
AT
AT
AT
AT
AT
ATE0
AT+CMEE=2
AT+CGMI
AT+GMM
AT+CTZU=1
AT+CPIN?
ATI
AT+CPIN?
AT+CGREG?
AT+CGREG?
AT+CGREG?
AT+CGREG?
AT+CGREG?
AT+CGREG?
AT+CGREG?
AT+CGREG?
AT+CGREG?
AT+CGREG?
AT+CGREG?
AT+CGREG?
AT+CGREG?
AT+CGREG?
AT+CGREG?
AT+CGREG?
AT+CGREG?
AT+CGREG?
AT+CGREG?
AT+CGREG?
AT+CGREG?
AT+CGREG?
AT+CGREG?
AT+CGREG?
AT+CGREG?
AT+CGREG?
AT+CGREG?
AT+CGREG?
AT+CGREG?
AT+CGREG?
AT+CGREG?
AT+CGREG?
AT+CGREG?
AT+CGATT=1
AT+UPSD=0,1,"java.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+CGATT?
AT+UPSND=0,0
AT+USOCR=6
AT+USOCO=0,"vsh.pp.ua",80
AT+USOWR=0,3
GETAT+USOWR=0,1
 AT+USOWR=0,17
/TinyGSM/logo.txtAT+USOWR=0,9
 HTTP/1.1AT+USOWR=0,2

AT+USOWR=0,6
Host: AT+USOWR=0,9
vsh.pp.uaAT+USOWR=0,2

AT+USOWR=0,10
User-AgentAT+USOWR=0,2
: AT+USOWR=0,13
Arduino/2.2.0AT+USOWR=0,2

AT+USOWR=0,10
ConnectionAT+USOWR=0,2
: AT+USOWR=0,5
closeAT+USOWR=0,2

AT+USOWR=0,2

AT+USORD=0,0
AT+USOCTL=0,10
AT+USORD=0,0
AT+USOCTL=0,10
AT+USORD=0,0
AT+USORD=0,633
AT+USORD=0,0
AT+USOCTL=0,10
AT+USOCL=0
AT+UPSDA=0,4
AT+CGATT=0



Modem SARA G450

Execução
Abre um arquivo http.txt na pasta www.inf.furb.br/~maw/arduino/


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