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.
Aplicação
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.
Materiais usados
- Arduino Nano;
- Protoboard 400 furos;
- Potenciômetro 10 KΩ;
- Led;
- Resistor de 100 Ω;
- Jumpers.
Importante: Os modelos utilizados aqui são apenas sugestões. Outros modelos funcionam igualmente.
Configurando a plataforma Geniot
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.
Em seguida clique em adicionar Dashboard e adicione dois widgets. Após configurado, clique em Submit, assim como mostra a figura 4.
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.
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.
Preparação do Hardware
Com os materiais em mãos, iniciaremos a seguinte montagem conforme a figura 9.
Programação
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;
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);
}
}
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;
}
}
Configuração do software geniot PRO industrial
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.
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.
Conclusão
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.
É 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.
Saiba mais
Conecte-se facilmente à nuvem Sigfox


















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 ?
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.
Allef.anderson@hotmail.com
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.
Muito obrigado Gabriel. É sempre bom ouvir isso. Um abraço!