O objetivo deste BLOG é como programar o Raspberry Zero W com o VISUINO para que possa acessar a INTERNET SEM FIO (802.11) e realizar uma conexão via requisição protocolo MQTT ao servidor Broker MOSQUITTO e então a informação recebida de um tópico LED será tratada para extrair o conteúdoe então controlar o estado de um LED conectado no pino 17 do RASPERRY Pi ZERO W.
Raspberry Pi Zero W - Imagem 2020-02-13-raspbian-buster
MOSQUITTO
O que é o Mosquitto? O mosquito é o que chamamos de broker, ou seja, um intermediário entre máquinas e os protocolos.
Ele é utilizado no protocolo MQTT para fazer com que os aparelhos possam conversar entre si e agir de maneira automatizada por meio de Tópicos.
É uma plataforma de mensagens baseada em cliente que usa o protocolo MQTT para transferência de dados bidirecional rápida, confiável e eficiente de e para dispositivos IoT. Ele pode ser implantado em uma nuvem privada, híbrida ou pública..
O mesmo ficará escutando na PORTA 1883 após instalação e nos próximo boots do Raspberry Pi Zero W.
PiDUINO
PiDuino é uma biblioteca C++ para placas Pi que permite o uso de E/S como GPIO, I2C, SPI, UART ... com uma API o mais próxima possível da linguagem Arduino.
A descrição dos cartões Pi utiliza um modelo "Objeto" armazenado em um banco de dados que permite adicionar novos modelos de placas facilmente.
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.
ABRA O VISUINO E MONTE O SEGUINTE PROJETO (CONFORME TABELA DE CONEXÃO)
Em Network Sockets TCP, configure para apontar para o IP e PORTA do Servidor MQTT Mosquito, no caso será localhost, porta 1883
Se escrever no tópico led(crie no momento tópicos de 1 palavra)...
...o exemplo faz uma análise da resposta vinda pelo tópico led (subscribe) ,esta é comparada como valor "1" e então acendendo o LED que aciona a saída digital 17 do Raspberry Pi Zero W.
COMPILANDO
TRANSFERINDO PROGRAMA (via WINSCP)
Executando o programa
Crie mais um sessão no RASPBERRY Pi Zero W com o SSH
O objetivo deste BLOG é como programar o Raspberry Zero W com o VISUINO para que possa acessar a INTERNET SEM FIO (802.11) e realizar uma conexão via requisição protocolo HTTP ao servidor THINGSPEAK e então a informação recebida (formato JSON) será tratada para extrair o field1 e então controlar o estado de um LED conectado no pino 17 do RASPERRY Pi ZERO W.
Raspberry Pi Zero W - Imagem 2020-02-13-raspbian-buster
Thingspeak é uma plataforma de análise IoT (Internet of Things) que permite agregar, visualizar e analisar streams de dados, de uma forma muito simples. Uma das grandes vantagens da plataforma Thingspeak é que nos permite visualizar os dados enviados pelos nossos dispositivos, em tempo real, mas também a possibilidade de analisar os mesmo recorrendo ao poderoso Matlab.
PiDUINO
PiDuino é uma biblioteca C++ para placas Pi que permite o uso de E/S como GPIO, I2C, SPI, UART ... com uma API o mais próxima possível da linguagem Arduino.
A descrição dos cartões Pi utiliza um modelo "Objeto" armazenado em um banco de dados que permite adicionar novos modelos de placas facilmente.
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 exemplo faz uma análise da resposta HTTP e libera a linha que começa com "{" então dispara o SplitJSON para extrair o field1, este é comparado se retorna "1" e então acendendo o LED que aciona a saída digital 17 do Raspberry Pi Zero W.
COMPILANDO
TRANSFERINDO PROGRAMA (via WINSCP)
Executando o programa
ATUALIZE field1 via BROWSER
https://api.thingspeak.com/update?api_key=XXXXXXXXXXXX&field1=0
PARA APAGAR LED
https://api.thingspeak.com/update?api_key=XXXXXXXXXXXX&field1=1
PARA ACENDER LED
O objetivo deste BLOG é como programar o U-BLOX NINA B302 (BLE SENSE 32) com o VISUINO para que possa acessar a INTERNET SEM FIO (802.11), utilizando o COPROCESSOR "AIRLIFT", no caso, haverá um conexão e fará uma requisição MQTT ao servidor THINGSTREAM
"O poder da programação VISUAL do VISUINO no U-BLOX NINA B302 e a adição de acesso à INTERNET via U-BLOX NINA W102 via SPI de 8MHz" AIRLIFT é baseado no WIFININA, o qual é baseado no NINA W102, utiliza a interface SPI.
WIFI COPROCESSOR PARA O NINA B302
POR QUE AIRLIFT ?
Ter o WiFi gerenciado por um chip separado significa que seu código é mais simples, você não precisa armazenar dados do soquete ou compilar e depurar uma biblioteca SSL. Com o AirLift, você pode enviar comandos básicos, mas poderosos baseados em socket, sobre SPI de 8MHz para transferência de dados de alta velocidade. O U-BLOX NINA W102 pode lidar com todo o trabalho pesado de conexão a uma rede WiFi e transferir dados de um site e usar a mais recente criptografia TLS/SSL (tem certificados radiculares pré-gravados).
MONTAGEM DO BREAKOUT COM U-BLOX NINA B302 E U-BLOX NINA W102
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); -Acesso às várias GPIOS. Pequena
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.
Instalação do VISUINO 8.0.0.36
Baixe em https://www.visuino.com/ e instale
Gravando bootloader BLE SENSE 32 no U-BLOX NINA B302 Use o gravador SEGGER JLINK para gravar o BREAKOUT com módulo U-BLOX 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
Abra J-FLASH lite e grave o bootloader para o U-BLOX NINA B302 (BLE SENSE 32)
O mesmo se encontra em C:\Users\Usuario\AppData\Local\Arduino15\packages\arduino\hardware\mbed\2.4.1\bootloaders\nano33ble Com ele, você poderá transferir programas via USB (serial) (SAM-BA extended).
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
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)