Gerenciando dados na plataforma Tago.io com Renesas Synergy

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.

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:

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

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:

Configure o novo Bucket da seguinte forma:

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

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:

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:

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:

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:

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:

Vamos configurar a primeira Action para apagar o LED:

E em seguida outra Action para ligar o LED:

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

Configure o widget da seguinte forma:

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:

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:

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

Licença Creative Commons Esta obra está licenciada com uma Licença Creative Commons Atribuição-CompartilhaIgual 4.0 Internacional.

Receba os melhores conteúdos sobre sistemas eletrônicos embarcados, dicas, tutoriais e promoções.

Internet Das Coisas » Gerenciando dados na plataforma Tago.io com Renesas Synergy
Comentários:
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.

Talvez você goste:

Séries

Menu

WEBINAR
 
Porque o RTOS não faz o que eu quero?

Data: 28/10 às 19:30h - Apoio: Mouser Electronics
 
INSCREVA-SE AGORA »



 
close-link