Gerenciando dados na plataforma Tago.io com Renesas Synergy

Confira neste artigo como conectar um microcontrolador Synergy S7 da Renesas, utilizando um kit de desenvolvimento, a uma plataforma de IoT da Tago.io.
Tago.io

Introdução

Neste artigo vamos mostrar como fizemos para conectar um microcontrolador da linha Synergy S7 da Renesas, utilizando um kit de desenvolvimento SK-S7G2 de fácil acesso, a uma plataforma de nuvem IoT da Tago.io. Enviamos dados referentes à leitura de um conversor A/D e, para simulação de um sensor, utilizamos o potenciômetro para que, quando fosse alterado o seu valor na placa, poderíamos verificar uma mudança na plataforma. A placa vai receber, também, um comando da plataforma da nuvem para controlar um LED. Ao longo deste texto você vai percorrer o caminho que fizemos para configurar o ambiente e2Studio, verificar como foi feito o firmware e a configuração da nuvem para conexão do dispositivo IoT e recebimento das mensagens da conversão A/D feita na placa.

Sobre a placa utilizada

Para essa experiência utilizamos a placa SK-S7G2 com uma placa externa que permite conexão sem fio Wi-Fi, conectada à placa principal via conector de expansão PMOD. A placa conta com um microcontrolador S7G2, baseado no core ARM Cortex-M4, com ponto flutuante e instruções de DSP, com 4 MB de flash interna, memória SRAM de 640 KB, frequência de operação de até 240 MHz e encapsulamento LQFP de 176 pinos. Para mais informações sobre a placa acesse este link e confira o artigo detalhado sobre seus periféricos, sensores, atuadores e dispositivos presentes na placa.

Placa SK-S7G2.

Para conferir como fazer um blink LED utilizando o kit de desenvolvimento, confira o artigo publicado neste link.

Para essa experiência utilizamos o e2studio, instalado via Platform Installer versão 6.2.0.R20180102, e então foi instalado o SSP 1.4.0 e todas as versões de compilador GCC necessárias pra rodar essa aplicação.

Sobre o Firmware

O firmware, que foi feito para os microcontroladores da linha S7 da Renesas, realiza uma conexão Wi-Fi, utilizando DHCP para solicitar um endereço de IP à rede, descobre o servidor DNS e depois disso sinaliza as outras threads que elas estão prontas para serem executadas. Após a conexão, o LED verde fica piscando. Isso é feito no arquivo network_thread_entry.c.

Toda documentação utilizada para escrever esse código foi retirada do SSP User’s Manual. Estamos atualmente na versão 1.4.0 do Synergy Software Package e o documento referente a essa versão pode ser baixado aqui. Utilizamos o cliente DNS e a funcionalidade DHCP nessa aplicação. Então precisamos de documentação adicional, conforme podemos verificar na página 1214 do manual.

image24

Para informações sobre como configurar o cliente DHCP, então, foi utilizado o manual NetX™ DHCP Client Module Guide, que pode ser acessado neste link. Para o cliente DNS, utilizamos o documento NetX™ and NetX Duo™ DNS Client Module Guide deste link.

Para conectar a placa ao Wi-Fi foi criada uma thread para DNS no projeto do Renesas Synergy, configurado conforme o manual DNS Client Module Guide, página 18, e criado um arquivo chamado network_thread_entry.c.

Neste arquivo, depois das declarações iniciais, foi invocada a função nx_ip_interface_status_check, que aguarda até que o link de rede esteja disponível.

Em seguida é chamada a função g_sf_wifi0.p_api->provisioningSet para setar o dispositivo como cliente e informar o SSID e senha da rede Wi-Fi.

Depois é chamada a função nx_dhcp_start, que faz com que o DHCP seja iniciado e o dispositivo possa receber um IP do servidor.

Em seguida, é verificado o status que diz respeito a se o servidor já atribuiu um IP, utilizando a função nx_ip_status_check.

Para verificar o IP e a máscara, foi utilizada a função nx_ip_address_get.

O servidor DNS e o servidor NTP atribuído pela rede pode ser consultado utilizando a função nx_dhcp_user_option_retrieve.

Para adicionar o servidor DNS à lista de clientes e, enfim, poder conectar e trafegar na rede, é utilizada a função nx_dns_server_add.

E assim a thread sinaliza (SYSTEM_EVENT_FLAGS_NETWORK_IS_UP) que o equipamento eletrônico está conectado à rede Wi-Fi e pode começar a monitorar os parâmetros. As outras threads que deveriam ler e enviar as mensagens apenas deveriam ter iniciado seus parâmetros e aguardar essa flag para início das atividades.

Foi conectado um potenciômetro ao canal zero do ADC. No firmware, é iniciado o canal de conversor analógico digital com as funções g_adc0.p_api->open, g_adc0.p_api->scanCfg e g_adc0.p_api->scanStart e então deve-se aguardar até que a rede Wi-Fi esteja online, iniciada na outra thread.

É iniciado, então, o cliente mqtt, setado o endereço de IP do servidor, além de credenciais para acesso à plataforma Tago.io e feita a autenticação no servidor. Para isso foram utilizadas as funções mqtt_client_init0, nx_dns_host_by_name_get, mqtt_server_ip_address, nxd_mqtt_client_login_set, nxd_mqtt_client_connect, nxd_mqtt_client_receive_notify_set e nxd_mqtt_client_subscribe.

E então inicia-se um loop infinito onde é lido o valor do conversor A/D e, após formatado, enviado para a tago.io via mqtt.

Para publicar uma mensagem deve-se formatar a string da seguinte forma:

E invocar a função nxd_mqtt_client_publish:

Confira o código completo a seguir.

Conectando à plataforma Tago.io

Criando um device

Para criar um novo device, primeiro fazer o login na sua conta na Tago.io. Após o login, escolha a opção device -> novo device, conforme exibido na imagem a seguir:

Novo device na plataforma Tago.io

Configure o seu novo device. Você pode inserir as mesmas informações abaixo para reproduzir o nosso exemplo:

image22

Salve o device e em seguida clique na aba Tokens. Copie o Token do device para a área de transferência:

image12

Esse token deve ser inserido no código para que a tago.io receba as informações da placa. Cole o token no arquivo: mqtt_thread_entry.c, no seguinte trecho de código:

Pronto, você pode compilar o código e gravá-lo na sua placa. Colocando para funcionar, os dados já serão enviados para a Tago.io.

Criando um Bucket

Para o armazenamento dos dados recebidos do dispositivo é necessário criar um Bucket. É recomendada a criação de um Bucket para cada um dos dispositivos para facilitar a localização e o controle dos dados. No entanto, um bucket pode estar vinculado a mais de um dispositivo.

Para criar um Bucket, acesse a opção Bucket-> Add  Bucket:

image16

Configure o novo Bucket da seguinte forma:

image18

Após salvar, se a placa já tiver enviando as informações, você verá as variáveis:

image3

Criando um Dashboard

Um Dashboard é onde colocamos os widgets para visualizar e interagir com os dados, tudo em tempo real.

Para adicionar um novo Dashboard, clique na opção Dashboards no menu Lateral e em seguida em Add Dashboard:

image13

Dê um nome para o seu dashboard e em seguida salve.

Agora vamos inserir widgets para a visualização de dados. Para adicionar um widget é só clicar na opção add widget, no canto superior direito. Então será aberta uma janela com as opções de widgets disponíveis:

image10

Como exemplo, vamos adicionar um Chart para a visualização dos valores do ADC em função do tempo. Escolha a opção Chart, e em seguida configure-o da seguinte forma:

image19
image17
image23

Também vamos aproveitar e visualizar a mesma informação do ADC através de um gauge. Adicione um widget do tipo gauge e configure-o da seguinte forma:

image15
image4

Pronto, você já deverá ver as informações em tempo real no dashboard. Varie o potenciômetro na placa e veja se os valores são atualizados.

Criando Actions

Para enviar o comando para acionamento do LED na placa é necessário criar Actions. As Actions são recursos muito poderosos que lhe dão controle total sobre seus dispositivos com base em eventos determinados por você.

Para comandar o LED presente na placa, vamos incluir um input. Para adicionar uma Action. Selecione a opção Action no menu lateral e em seguida, Add Action:

image7

Vamos configurar a primeira Action para apagar o LED:

image21
image8

E em seguida outra Action para ligar o LED:

image5
image14

Com as Actions criadas e configuradas, devemos voltar para o dashboard e incluir um widget de input:

image20

Configure o widget da seguinte forma:

image11
image1

Finalizada a configuração, envie o comando para acender e apagar o LED2 na placa e verifique se a placa recebe o comando.

Ao final você terá um dashboard para visualização dos dados e envio de comandos para a placa:

image6

Você pode adicionar mais widgets e compartilhar o seu dashboard com outras pessoas.

Tenho dúvidas com os microcontroladores Renesas, como faço?

O ponto principal para tirar dúvidas de hardware e firmware dos microcontroladores Renesas é o site renesasrulz.com, um fórum público que tem acompanhamento de perto dos engenheiros de aplicação da Renesas, espalhados pelo mundo.

Assista o webinar Gravado: Plataforma Renesas Synergy – Construindo sua aplicação MQTT com analytics na Tago.io

Neste webinar você irá aprender a construir uma aplicação MQTT com analytics na Tago.io utilizando a Plataforma Renesas Synergy. Clique na imagem para acessar o webinar:

1513 banner 850x510 B

Para receber o projeto completo utilizado nesse artigo, preencha esse formulario e entraremos em contato com você.

* Este post foi patrocinado pela Renesas Electronics Brasil

A Renesas Electronics Corporation (TSE: 6723), o Maior Fornecedor Global de Microcontroladores, é um líder no fornecimento de soluções avançadas de semicondutores, incluindo microcontroladores, soluções SoC e uma ampla gama de dispositivos analógicos e de potência. Suas operações começaram como Renesas Electronics em abril de 2010, através da integração da NEC Electronics Corporation (TSE: 6723) e Renesas Technology Corp., com operações abrangendo pesquisa, desenvolvimento, design e fabricação para uma ampla gama de aplicações. Com sede no Japão, a Renesas Electronics tem subsidiárias em cerca de 20 países do mundo. Mais informações podem ser encontradas em www.renesas.com.

Notificações
Notificar
guest
1 Comentário
recentes
antigos mais votados
Inline Feedbacks
View all comments
FABIO E ROSA
FABIO E ROSA
18/07/2018 19:48

Ótimo material! Lembrando que a plataforma TagoIO tem a opção de língua Portuguesa quando em modo Usuário normal (nao desenvolvedor). Mesma coisa para o aplicativo de celular que já está disponivel em Portugues.

WEBINAR

Imagens de Ultrassom: Princípios e Aplicações

DATA: 26/10 ÀS 19:30 H