Arduino e Geniot PRO industrial – A plataforma IoT - Embarcados
Arduino e Geniot PRO industrial – A plataforma IoT
Configurando a plataforma Geniot
Preparação do Hardware
Configuração do software geniot PRO industrial
O Geniot PRO industrial é uma plataforma IoT criada pela Microgenios com o intuito de facilitar a criação de rotinas de supervisão de processos. Além de ser totalmente editável, a plataforma conta com uma versão educacional gratuita, voltada para estudantes e hobbistas. A mesma dispõe de múltiplas ferramentas que permitem o controle rigoroso de variáveis, o que é ideal para gerenciamento de máquinas industriais.
Os dados são salvos em nuvem, o que viabiliza gerenciar grandes quantidades de dados sem investir em infraestrutura, possibilitando o controle e monitoramento remoto para manutenção preventiva de máquinas e equipamentos.
Neste post faremos o controle de um potenciômetro, e usaremos alguns widgets para gerenciá-lo. Em caso de alguma variação do potenciômetro acima do setpoint estipulado, um evento será disparado e então receberemos uma mensagem no aplicativo "Messenger" do "Facebook" avisando que houve uma variação indesejada no processo. Também usaremos um led com a finalidade de controlá-lo remotamente.
Protoboard 400 furos;
Potenciômetro 10 KΩ;
Resistor de 100 Ω;
Importante: Os modelos utilizados aqui são apenas sugestões. Outros modelos funcionam igualmente.
Primeiramente é necessário criar uma conta de acesso à plataforma. Clique aqui para acessar o link de cadastro. Após efetuar o cadastro faremos o login na plataforma, adicionaremos um DataSource Name e depois duas tags de sensores, como mostra a figura 1.
Figura 1 – Adicionando um DataSource na plataforma geniot.
Figura 2 – Adicionando uma tag sensor na plataforma geniot.
Figura 3 – Demonstração da Home após criar o DataSource e as tags sensores.
Em seguida clique em adicionar Dashboard e adicione dois widgets. Após configurado, clique em Submit, assim como mostra a figura 4.
Figura 4 – Criação da Dashboard.
Figura 5 – Configuração dos widgets da Dashboard.
Figura 6 – Demonstração da Dashboard após a configuração dos widgets.
Neste passo atribuiremos um evento, que acionará toda vez que houver variação do potenciômetro acima de 600, ou qualquer outro setpoint que escolhermos. Para isso, primeiramente, é necessário criarmos uma conta no site IFTTT, clicando aqui. Após feito cadastro, clique em My Applets e em seguida em New Applet e +this. Pesquise por Webhooks, clique e configure como mostra a figura 7 e, após ter feito todas as configurações, clique em finalizar.
Figura 7 – Passos para a configuração do Webhooks com o Messenger.
Em seu nome de usuário, no canto superior direito, clique em Services, pesquise por Webhooks e então entre em Documentation. Copie a Key fornecida, em seguida preencha os dados do evento dentro da plataforma geniot. Com os dados preenchidos, clique em Submit.
Figura 8 – Dados do evento preenchido com informações do IFTTT
Com os materiais em mãos, iniciaremos a seguinte montagem conforme a figura 9.
Figura 9 – Diagrama do projeto elaborado no Fritzing.
Após toda configuração da plataforma é necessário carregarmos o código no Arduino. O algoritmo funciona de maneira simples, cada tag possui um SHORTCUT e com esses dados podemos distinguir cada componente. O código usado foi cedido pela Microgenios e alterado devido à aplicação deste post. O algoritmo está disponível no GIT.
Vale ressaltar a importância de definirmos o nome dos componentes com a mesma numeração criada na tag sensor dentro da Home, pois este é o ID de comunicação entre a tag e os componentes conectados ao Arduino.
#define Potenciometro "S00" #define led "S01" String inputString = ""; boolean stringComplete = false; int Led = 10;
#define Potenciometro "S00"
#define led "S01"
Já no ponteiro loop criamos uma rotina para enviar os dados contidos na variável responsável por salvar os valores lidos pelo potenciômetro. A cada dez segundos é enviado o valor armazenado na variável. A função sendToGeniot é responsável pelo envio dos dados, basta parametrizá-la com o ID da tag referente ao potenciômetro e o valor a ser implementado.
void loop() { static const long interval = 10000; static unsigned long previousMillis = 0, currentMillis; currentMillis = millis(); int dados = analogRead(0); if(currentMillis - previousMillis >= interval) { previousMillis = currentMillis; sendToGeniot(Potenciometro, dados); } }
int dados = analogRead(0);
sendToGeniot(Potenciometro, dados);
Além de enviarmos informações para o software geniot, também é necessário recebermos algumas informações. Para controlarmos o led remotamente foi implementado um ponteiro, que decodifica o valor enviado para o Arduino. Neste caso, verificamos se o retorno é para tag Led. Como sabemos que o led está cadastrado com a ID "S01", criamos um vetor responsável capaz de fazer a leitura do sétimo caractere de uma string. A partir disso criamos uma comparação que possibilita acender ou apagar o led.
void decodificar(void){ if (stringComplete) { if(inputString[0] == '{' && inputString[1] == '\"' && inputString[2] == 'S' && inputString[3] == '0' && inputString[4] == '1' && inputString[5] == '\"' && inputString[6] == ':') { if(inputString[8] == '}') { digitalWrite(Led, (((inputString[7]-'0')==0)?0:1)); //ASC - '0' //aciona ou desaciona relé/led...etc } } // Zera as variáveis para tratar um novo retorno inputString = ""; stringComplete = false; } }
&& inputString[4] == '1'
digitalWrite(Led, (((inputString[7]-'0')==0)?0:1)); //ASC - '0' //aciona ou desaciona relé/led...etc
// Zera as variáveis para tratar um novo retorno
Agora é necessário configurarmos o software que servirá de ponte entre o Arduino e a plataforma IoT. Primeiramente faremos download do mesmo neste link aqui. Após instalação abra o software e faça login com o mesmo cadastro feito na plataforma. As tags criadas na plataforma aparecerão automaticamente no software. Clique em Wizard e marque a caixa como demonstrado na figura 10 e em seguida clique em Save and Close.
Figura 10 – Configuração da Wizard no software geniot PRO industrial.
Figura 11 – Demonstração do software após configuração da Wizard.
Para finalizar clique em Configurations, configure a opção Server Cloud Timer(s) para 10 segundos e logo após clique em Update Nodes. É necessário configurar a porta COM que o Arduino está conectado. Clique em Serial Port Configuration, selecione a porta correta e clique em Connect seguido de OK.
Depois de realizar todos os procedimentos, o sistema funcionará de maneira adequada. A cada dez segundos é feita uma atualização dos dados lidos pelo Arduino. O widget Especial Gauge será responsável por ler os dados do potenciômetro. Caso o Widget Button for pressionado, o led na porta dez do Arduino será acionado.
Figura 12 – Funcionamento do projeto finalizado.
É possível exportar relatório de dados da plataforma, basta ir em Home, e depois na opção Viewer em cima da tag desejada.
Este artigo capacitará você a implementar o geniot em diversos processos. Fiquem à vontade para descobrir mais sobre a plataforma da Microgenios, já que aqui foram citados apenas algumas ferramentas que a plataforma oferece.
Enviando dados da Dragonboard 410c para a nuvem (dweet.io)
Arduino, Internet Das Coisas
Home » Internet Das Coisas » Arduino e Geniot PRO industrial – A plataforma IoT
Bernardo Afonseca
Muito bom seu artigo Allef. Será que poderia encaminhar algo sobre como conectar um arduino ao Geniot utilizando uma conexão GPRS com o módulo sim800 ?
Reply to Bernardo Afonseca
Seria muito interessante caro amigo. Pretendo escrever sobre a conexão da plataforma com a Raspberry Pi 3. Mas vou estudar a possibilidade de escrever sobre esta conexão. As vezes posso resolver sua duvida, me contate por email.
Gabriel Paz (@gabrielmicrogenios-com-br)
Muito legal o artigo, parabéns Allef e toda a equipe do Embarcados, sempre contribuindo fortemente para a tecnologia no Brasil! Ficamos felizes com o apoio.