O objetivo deste BLOG é mostrar um exemplo em ARDUINO que permite o NINA B302 se comunicar com um servidor MQTT da U-BLOX (mqtt.thingstream.io) via GSM, baseado no modem u-BLOX SARA G350 (02S-01). Será utilizada a porta 8883 (SSL).
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
MQTT
Para os dispositivos de Internet das Coisas (IoT), a conexão com a Internet é um requisito. A conexão com a Internet permite que os dispositivos trabalhem entre si e com serviços de backend. O protocolo de rede subjacente da Internet é o TCP/IP. Desenvolvido com base na pilha TCP/IP, o MQTT (Message Queue Telemetry Transport) tornou-se o padrão para comunicações de IoT.
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
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
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
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
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)
O objetivo deste BLOG é mostrar um exemplo em ARDUINO que permite o NINA B302 se comunicar com um servidor MQTT da U-BLOX (mqtt.thingstream.io) via GSM, baseado no modem LISA U200. Será utilizada a porta 1883 (non SSL). Utilize a programação clássica com Sockets do Arduino! Não se preocupe com os comandos AT :)
MQTT
Para os dispositivos de Internet das Coisas (IoT), a conexão com a Internet é um requisito. A conexão com a Internet permite que os dispositivos trabalhem entre si e com serviços de backend. O protocolo de rede subjacente da Internet é o TCP/IP. Desenvolvido com base na pilha TCP/IP, o MQTT (Message Queue Telemetry Transport) tornou-se o padrão para comunicações de IoT.
CRIANDO INTERFACE IHM COM OPENWIRE E VISUINO PARA O U-BLOX NINA W102 VIA TCP
O
objetivo deste BLOG é demonstrar como é possível utilizar o OPENWIRE
junto com o VISUINO (este último para programar o módulo U-BLOX NINA
W102) para criarmos uma IHM e mostrar os dados enviados pelo próprio
W102 programado de forma muito rápida. O meio de comunicação utilizado
foi TCP do PC e U-BLOX NINA W102, outras podem ser selecionadas.
UBLOX NINA W102
TCP/IP
O protocolo TCP / IP permite que os sistemas se comuniquem mesmo se usarem diferentes tipos de hardware de rede. ... IP, ou Protocolo de Internet, realiza a transferência real de dados entre diferentes sistemas na rede ou Internet. Usando a vinculação TCP, você pode criar partes cliente e servidor de sistemas cliente-servidor.
OPENWIRE WIRE STUDIO
O
OpenWire Studio é um ambiente gráfico de desenvolvimento e execução que
contém a poderosa tecnologia de processamento de stream que temos
aperfeiçoado por mais de uma década. Nenhum outro compilador de software
ou IDEs são necessários.
O
OpenWire Studio foi projetado para ser extremamente fácil de usar,
mesmo pelos usuários mais inexperientes, ao mesmo tempo que inclui
recursos muito poderosos e avançados para usuários avançados.
Seu
ambiente intuitivo permite que até mesmo os desenvolvedores de software
não construam e executem aplicativos simplesmente fazendo diagramas de
fiação: Os "fios" são como aqueles que conectam uma TV a um videocassete
ou alto-falantes a um sistema surround; os pinos OpenWire são análogos
aos conectores onde você conecta os fios; e os componentes OpenWire
correspondem aos componentes de entretenimento (TV, alto-falantes,
etc.).
Com o OpenWire Studio, você pode construir sua solução hoje. Você simplesmente:
Arraste componentes de uma paleta
Desenhe fios para conectar as saídas às entradas e dê RUN
VISUINO
Visuino
é o mais recente software inovador da Mitov Software. Um ambiente de
programação visual que permite programar suas placas Arduino. ... Os
componentes encontrados no software Visuino representam seus componentes
de hardware e você pode criar e projetar facilmente seus programas
usando o recurso de arrastar e soltar.
O que faz o projeto ? -Cada segundo gerá um PULSO..
-...para o bloco que vai gerar um número RANDOM de 0 à 40
-Então número é empacotado (Packet) para ser enviado por TCP (cliente) do U-BLOX NINA W102 até o servidor OpenWire, o qual estará escutando na porta 8080.
Dentro do Pacote (FRAME) foi reservado um campo do tipo Unsigned Integer 8
-Altere microcontrolador principal para u-blox NINA-W10 series (ESP32)
-Agora defina a parte de conexão WIFI do UBLOX NINA W102
Coloque dados do seu AP
-Compile,Grave e resete o UBLOX NINA W102
-Neste momento, a cada 1 segundo, o UBLOX NINA W102 vai transmitir o número Random por TCP.
-Abra o OpenWire e monte o projeto abaixo.
-Selecione a porta TCP que escutar os pacotes enviados pelo U-BLOX NINA W102 (8080)
-Desmonte o pacote (Unpacket) recebido por TCP (enviado pelo UBLOX NINA W102)