O objetivo deste BLOG é demonstrar como é possível utilizar o Mongoose para programação do U-BLOX NINA W106. Foi utilizado o U-BLOX NINA W106 para o teste. A aplicação habilita que execute no MONGOOSE um STACK para acesso ao PPPos e então publique dados no broker MQTT da U-BLOX (ThingStream).
Nesta versão, vamos acessar Remotamente o W106 :) via mDASH
W106
Wi-Fi 802.11b/g/n
Dual-Mode Bluetooth v4.2
Poderoso suporte de CPU aberta para aplicativos personalizados
Tamanho pequeno e várias opções de antena
Pino compatível com outros módulos NINA
Certificação global
Módulo baseado no ESP32, com 4MB FLASH
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.
PPP
Em redes de computadores, o Point-to-Point Protocol (PPP), em português Protocolo ponto-a-ponto é um protocolo de enlace de dados (camada 2) usado para estabelecer uma conexão direta entre dois nós. Ele pode fornecer autenticação de conexão, criptografia de transmissão (usando ECP, RFC 1968) e compressão.
O PPP é usado sobre muitos tipos de redes físicas incluindo cabo serial, linha telefônica, linha tronco, telefone celular, enlaces de rádio especializados e enlaces de fibra ótica como SONET. O PPP também é usado sobre conexões de acesso à Internet. Provedores de serviços de Internet têm usado o PPP para acesso discado à Internet pelos clientes, uma vez que pacotes IP não podem ser transmitidos sobre uma linha de modem por si próprios, sem algum protocolo de enlace de dados.
o custo do Thingstream como um MQTT Broker é muito menor do que o custo daqueles associados ao Azure e AWS;
o gerenciador de fluxo de dados é uma excelente vantagem, dados podem ser tratados no servidor e então encaminhados;
permite programação Node.js;
a segurança é diferente e muito mais simplificada do que tentar fazer uma troca de certificados com a AWS etc;
tem uma conexão segura em vez do dispositivo. Isso realmente simplifica a integração;
capacidade de se inscrever em vários tópicos diferentes;
nós para acessos para vários serviços da AWS Amazon, Azure IoT, IBM Watson, IFTTT (DashBoard e uma infinidade de outras opções)
criação de Coisas (Thing);
monitoração de eventos MQTT;
alertas quando algo não vai bem.
No modo tradicional, se você quer acessar AWS, AZURE, etc:
você deve fazer registro
gerar Certificados
manter, guardar e proteger seus Certificados
despachar cada Certificado um por um para os Devices na produção
você precisa manter identidades diferentes por cada um dispositivo e entregá-los com segurança
fortes impactos na complexidade na logística, produção tempo, configuração do sistema e custos de manutenção
Com ThingStream, se você quer acessar AWS, AZURE, etc:
você deve fazer um registro de CA (certificate authority) (Access ID e Secret Key), exemplo, IAM na AMAZON.
quando você cria um Device (Things) no ThingStream, você deve pegar as credenciais (Username, Password, Client ID) (Device Certificate), basicamente muda Client Id e Password para cada Device
utilize estas credenciais (Things) (Username, Password e Client ID) no Device (U-BLOX NINA W106) para acessar o ThingStream via MQTT
crie Tópicos (Topics) que devem acessados pelos Devices (U-BLOX NINA W106), ou seja, para fazer Publish ou Subscribe
no DATAFLOW manager (Flows), o Nó ThingStream Subscribe deve estar conectado à um Tópico previamente criado para o seu Device (U-BLOX NINA W106), é por ele que começa o disparo para o DATAFLOW manager
Dentro do DATAFLOW pode de ter vários NósThingStream Subscribe
no DATAFLOW manager tenha fácil acesso à AWS, AZURE, etc utilizando Access ID e Secret Key e então solicite os serviços disponíveis (S3, LAMBDA, etc) (No caso da AMAZON)
Mongoose OS é um pequeno RTOS desenvolvido por Cesanta, Irlanda. Seu suporte a muitos pequenos e poderosos MCU como ESP32 (U-BLOX NINA W106). Mongoose OS é um sistema operacional integrado de código aberto para microcontroladores conectados de baixa potência.
Código em C ou JavaScript;
Recursos de segurança como suporte a chip de criptografia, criptografia de sistema de arquivos, etc;
AWS IoT integrado, integração do Google IoT;
Motor JavaScript incorporado - mJS;
Benefícios do Mongoose OS:
Provas rápidas de conceitos / protótipos;
Menor tempo de comercialização a um custo ideal;
Seguro, confiável e verificado por empresas líderes;
Como o módulo U-BLOX NINA W106 é baseado no chip ESP32 (cpu), será possível rodar o Mongoose sem problemas. O usuário deve dar atenção ao mapeamento de GPIOS da U-BLOX apenas conforme datasheet.
No link abaixo, há um roteiro muito interessante para que você possa preparar o ambiente para programar o U-BLOX NINA W106
Crie uma pasta, MOS, copie o EXE para ela, crie um PATH no WINDOWS, crie pasta Projeto, baixe APP, compile na nuvem, faça o FLASH para o U-BLOX NINA W106, configure SSID/PASSWORD, cadastre na Nuvem!
TESTANDO NO U-BLOX NINA W106
Seleção do ESP32 (U-BLOX NINA W106)
Criando Projeto
mkdir demo-js
mos clone https://github.com/mongoose-os-apps/demo-js app1
$ mos clone https://github.com/mongoose-os-apps/demo-js app1
app1: Does not exist, cloning from "https://github.com/mongoose-os-apps/demo-js"...
app1: Checking out 2.19.1...
app1: Done, hash e4ecb176b4e95f53e5938724b6cb6723b4b95fad
mos build --platform esp32
mos build --platform esp32
Connecting to https://build.mongoose-os.com, user test
Uploading sources (2668 bytes)
Firmware saved to C:\mos\app1\build\fw.zip
Command completed.
mos config-set dash.enable=true dash.token=xxxxxxxxxxxxxxxxxxxxxxx
Getting configuration...
Setting new configuration...
Command completed.
Online!
Alterando init.js
load('api_timer.js');
Timer.set(1000, Timer.REPEAT,function(){print('Hello From Smartcore!!!');},null);
$ mos build --platform esp32
Connecting to https://build.mongoose-os.com, user test
Uploading sources (1476 bytes)
Firmware saved to C:\mos\app1\build\fw.zip
Command completed.
$ mos flash
ACESSANDO ThingStream via PPPoS
Na pasta MOS descompacte
git clone https://github.com/mongoose-os-apps/empty my-app
Cloning into 'my-app'...
remote: Counting objects: 68, done.
remote: Total 68 (delta 0), reused 0 (delta 0), pack-reused 68
Unpacking objects: 100% (68/68), done.
cd my-app
edite mos.yml e coloque configurações da rede e MQTT
O objetivo deste BLOG é demonstrar como é possível utilizar o Mongoose para programação do u-blox NINA W106. Foi utilizado o U-BLOX NINA W106 para o teste. A aplicação habilita que execute no MONGOOSE um STACK para acesso ao PPPos e então publique dados no broker MQTT da U-BLOX (ThingStream).
W106
Wi-Fi 802.11b/g/n
Dual-Mode Bluetooth v4.2
Poderoso suporte de CPU aberta para aplicativos personalizados
Tamanho pequeno e várias opções de antena
Pino compatível com outros módulos NINA
Certificação global
Módulo baseado no ESP32, com 4MB FLASH
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.
PPP
Em redes de computadores, o Point-to-Point Protocol (PPP), em português Protocolo ponto-a-ponto é um protocolo de enlace de dados (camada 2) usado para estabelecer uma conexão direta entre dois nós. Ele pode fornecer autenticação de conexão, criptografia de transmissão (usando ECP, RFC 1968) e compressão.
O PPP é usado sobre muitos tipos de redes físicas incluindo cabo serial, linha telefônica, linha tronco, telefone celular, enlaces de rádio especializados e enlaces de fibra ótica como SONET. O PPP também é usado sobre conexões de acesso à Internet. Provedores de serviços de Internet têm usado o PPP para acesso discado à Internet pelos clientes, uma vez que pacotes IP não podem ser transmitidos sobre uma linha de modem por si próprios, sem algum protocolo de enlace de dados.
o custo do Thingstream como um MQTT Broker é muito menor do que o custo daqueles associados ao Azure e AWS;
o gerenciador de fluxo de dados é uma excelente vantagem, dados podem ser tratados no servidor e então encaminhados;
permite programação Node.js;
a segurança é diferente e muito mais simplificada do que tentar fazer uma troca de certificados com a AWS etc;
tem uma conexão segura em vez do dispositivo. Isso realmente simplifica a integração;
capacidade de se inscrever em vários tópicos diferentes;
nós para acessos para vários serviços da AWS Amazon, Azure IoT, IBM Watson, IFTTT (DashBoard e uma infinidade de outras opções)
criação de Coisas (Thing);
monitoração de eventos MQTT;
alertas quando algo não vai bem.
No modo tradicional, se você quer acessar AWS, AZURE, etc:
você deve fazer registro
gerar Certificados
manter, guardar e proteger seus Certificados
despachar cada Certificado um por um para os Devices na produção
você precisa manter identidades diferentes por cada um dispositivo e entregá-los com segurança
fortes impactos na complexidade na logística, produção tempo, configuração do sistema e custos de manutenção
Com ThingStream, se você quer acessar AWS, AZURE, etc:
você deve fazer um registro de CA (certificate authority) (Access ID e Secret Key), exemplo, IAM na AMAZON.
quando você cria um Device (Things) no ThingStream, você deve pegar as credenciais (Username, Password, Client ID) (Device Certificate), basicamente muda Client Id e Password para cada Device
utilize estas credenciais (Things) (Username, Password e Client ID) no Device (U-BLOX NINA W106) para acessar o ThingStream via MQTT
crie Tópicos (Topics) que devem acessados pelos Devices (U-BLOX NINA W106), ou seja, para fazer Publish ou Subscribe
no DATAFLOW manager (Flows), o Nó ThingStream Subscribe deve estar conectado à um Tópico previamente criado para o seu Device (U-BLOX NINA W106), é por ele que começa o disparo para o DATAFLOW manager
Dentro do DATAFLOW pode de ter vários NósThingStream Subscribe
no DATAFLOW manager tenha fácil acesso à AWS, AZURE, etc utilizando Access ID e Secret Key e então solicite os serviços disponíveis (S3, LAMBDA, etc) (No caso da AMAZON)
Mongoose OS é um pequeno RTOS desenvolvido por Cesanta, Irlanda. Seu suporte a muitos pequenos e poderosos MCU como ESP32 (U-BLOX NINA W106). Mongoose OS é um sistema operacional integrado de código aberto para microcontroladores conectados de baixa potência.
Código em C ou JavaScript;
Recursos de segurança como suporte a chip de criptografia, criptografia de sistema de arquivos, etc;
AWS IoT integrado, integração do Google IoT;
Motor JavaScript incorporado - mJS;
Benefícios do Mongoose OS:
Provas rápidas de conceitos / protótipos;
Menor tempo de comercialização a um custo ideal;
Seguro, confiável e verificado por empresas líderes;
Como o módulo u-blox NINA W106 é baseado no chip ESP32 (cpu), será possível rodar o Mongoose sem problemas. O usuário deve dar atenção ao mapeamento de GPIOS da U-BLOX apenas conforme datasheet.
No link abaixo, há um roteiro muito interessante para que você possa preparar o ambiente para programar o u-blox NINA W106
Crie uma pasta, MOS, copie o EXE para ela, crie um PATH no WINDOWS, crie pasta Projeto, baixe APP, compile na nuvem, faça o FLASH para o u-blox NINA W106, configure SSID/PASSWORD, cadastre na Nuvem!
TESTANDO NO u-BLOX NINA W106
Seleção do ESP32 (U-BLOX NINA W106)
Criando Projeto
mkdir demo-js
mos clone https://github.com/mongoose-os-apps/demo-js app1
$ mos clone https://github.com/mongoose-os-apps/demo-js app1
app1: Does not exist, cloning from "https://github.com/mongoose-os-apps/demo-js"...
app1: Checking out 2.19.1...
app1: Done, hash e4ecb176b4e95f53e5938724b6cb6723b4b95fad
mos build --platform esp32
mos build --platform esp32
Connecting to https://build.mongoose-os.com, user test
Uploading sources (2668 bytes)
Firmware saved to C:\mos\app1\build\fw.zip
Command completed.
mos config-set dash.enable=true dash.token=xxxxxxxxxxxxxxxxxxxxxxx
Getting configuration...
Setting new configuration...
Command completed.
Online!
Alterando init.js
load('api_timer.js');
Timer.set(1000, Timer.REPEAT,function(){print('Hello From Smartcore!!!');},null);
$ mos build --platform esp32
Connecting to https://build.mongoose-os.com, user test
Uploading sources (1476 bytes)
Firmware saved to C:\mos\app1\build\fw.zip
Command completed.
$ mos flash
ACESSANDO ThingStream via PPPoS
Na pasta MOS descompacte
git clone https://github.com/mongoose-os-apps/empty my-app
Cloning into 'my-app'...
remote: Counting objects: 68, done.
remote: Total 68 (delta 0), reused 0 (delta 0), pack-reused 68
Unpacking objects: 100% (68/68), done.
cd my-app
edite mos.yml e coloque configurações da rede e MQTT