1. PROPOSTA
A proposta deste tutorial é orientar o usuário a estabelecer uma comunicação entre o CLP e a plataforma de mensagens WhatsApp, possibilitando que o equipamento envie mensagens diretamente para seu número pessoal através de um WhatsApp BOT.
2. SOFTWARES UTILIZADOS
MasterTool 3.70; NX3008 – Firmware 1.14.36.4
3. ARQUITETURA
Todo o envio de mensagens será realizado de forma online, sendo assim é necessário garantir que o CLP possua acesso à internet, para tal as seguintes arquiteturas podem ser adotadas:
3.1. ARQUITETURA A – CLP + ROTEADOR DE INTERNET
Para o correto funcionamento desta arquitetura é imprescindível que o endereço IP do CLP esteja configurado para a mesma faixa de endereços no qual o roteador se encontra, por exemplo, se o roteador possuir o endereço 192.168.1.1, o CLP pode assumir um endereço válido nessa rede, como por exemplo o endereço 192.168.1.10, além disso, o endereço de gateway do CLP deve ser igual ao endereço IP do roteador.
3.2. ARQUITETURA B – CLP + ADAPTADOR WI-FI
A arquitetura B consiste no uso de um adaptador Wi-Fi acoplado a porta USB do PLC caso o equipamento suporte, os CLPs que oferecem essa possibilidade são: XP300, XP315, XP325, XP340 e NX3008.
3.3. ARQUITETURA C
A arquitetura C se baseia em utilizar um Modem 3G / 4G acoplado a porta USB do PLC caso o equipamento suporte, os CLPs que oferecem essa possibilidade são: XP300, XP315, XP325, XP340 e NX3008.
4. REGISTRO DA API CallMeBot.com
Para fazer o registro na plataforma CallMeBot e utilizar a sua API para envio de mensagens, devemos acessar o site: https://www.callmebot.com/blog/free-api-whatsapp-messages/ Deve-se salvar o número mencionado pelo site como um novo contato do seu celular:
Em seguida devemos enviar a seguinte mensagem para este contato pelo WhatsApp: “i allow callmebot to send me messages” para que o bot seja ativado para o seu número e a sua chave de API seja gerada, note que também será enviado a API necessária para o envio de mensagens.
A API é composta por:
A mensagem que será enviada pelo BOT é esta que se encontra após a palavra “text” na API, a separação de palavras é feita pelo caractere “+”. Podemos fazer um teste rápido da API simplesmente clicando no seu link, para que seja realizado uma requisição pelo nosso próprio computador / celular e possamos ver a mensagem sendo enviada pelo BOT:
Com esse teste validamos o funcionamento da API, agora podemos seguir para os próximos passos e implementar esta solução por meio do CLP.
5. DOWNLOAD E INSTALAÇÃO DA BIBLIOTECA HTTPClient
Como a interação com essa API é realizada através do protocolo HTTP, o CLP precisa se tornar um cliente HTTP para que consiga realizar as requisições e enviar as mensagens, para isso iremos utilizar a biblioteca HTTP_CLIENT da Codesys para realizar essa implementação.
O primeiro passo é realizar o download da biblioteca através do link: https://forge.codesys.com/svn/prj,codesys-example,http-clientexa,code/HTTP_Client_Example.zip
O arquivo virá zipado, basta descompactar utilizando a ferramenta de sua preferência (7zip, WinRar, etc) para ter acesso ao conteúdo.
5.1. INSTALAÇÃO DA BIBLIOTECA NO MASTERTOOL
Abra o MasterTool IEC XE e acesse o repositório de bibliotecas por meio do menu “Ferramentas” e clique em “Instalar”.
Em seguida procure pelo arquivo “HTTPClient.library” que está dentro da pasta no qual foi baixada anteriormente e clique em “Abrir”.
Após instalada a biblioteca, feche o repositório de bibliotecas e crie um novo projeto escolhendo o modelo do CLP que estiver em mãos. Com o projeto devidamente criado, acesse o gerenciador de bibliotecas para adicionar a biblioteca HTTPClient ao projeto.
Clique em “Adicionar Biblioteca” e busque pelo nome “HTTP”. Na sequência selecione a biblioteca HTTP Client e clique em “OK”.
Caso essa seja a sua primeira vez utilizando a biblioteca HTTP Client nesta instância do MasterTool, provavelmente será necessário o download de algumas bibliotecas adicionais para o correto funcionamento da HTTP Client, para isso basta clicar biblioteca HTTP Client no qual foi recém adicionada, em seguida clique em “Baixar bibliotecas ausentes”.
6. IMPLEMENTAÇÃO DO PROGRAMA DO CLP
Crie uma nova POU chamada “HTTP_Prg” utilizando a linguagem “Texto estruturado” como base.
No escopo de variáveis, declare da seguinte forma:
PROGRAM HTTP_Prg
VAR
Http : HTTP.HttpClient;
Execute: BOOL;
TimeOutHTTP: UDINT := 10_000_000;
RequestDone: BOOL;
ClientBusy: BOOL;
ClientError: BOOL;
RequestURL: STRING(1024);
RequestType: HTTP.REQUEST_TYPE := 0; //0 = GET
ContenttType: HTTP.CONTENT_TYPE := 1; //1 = Application JSON
AdditionalHeader : WSTRING;
PostValue: WSTRING;
HttpError : HTTP.ERROR;
HttpResult: HTTP.httpResult;
Sensor_Temperatura: INT;
Sensor_Temperatura_String: STRING;
END_VAR
Para que o CLP envie uma mensagem por meio do BOT, ele deve executar uma requisição HTTP do tipo GET para a nossa API, sendo assim, os valores das variáveis que iremos notificar pelo WhatsApp, devem popular o campo “text” da nossa API:
Este campo sublinhado em vermelho, é onde deve ser substituído pela mensagem no qual o CLP irá enviar, por exemplo, caso quiséssemos que o CLP envie o valor de um sensor de temperatura, a requisição poderia ser montada dessa forma:
Perceba que desta forma, ao executar a requisição, o CLP irá comandar o BOT para nos enviar a mensagem “25°C”, sendo assim, a estratégia é que os valores no qual se deseja enviar para o WhatsApp, sejam concatenadas nessa requisição por meio da variável “RequestURL”.
Para este tutorial, iremos implementar o programa da seguinte forma, iremos usar uma variável que estará simulando a leitura de um sensor de temperatura chamada “Sensor_Temperatura” e a cada um minuto o valor dessa variável será notificada pelo nosso BOT no WhatsApp, esta é uma implementação simbólica que apenas tende a demonstrar o uso da ferramenta, outras necessidades de implementação devem seguir de acordo a necessidade do programador.
Segue abaixo a implementação do código para cópia. Uma observação importante, por conta da biblioteca HTTP Client não suportar requisições seguras com o cabeçalho “HTTPS” devemos substituir o “HTTPS” da API por “HTTP”.
Não podemos esquecer de criar uma chamada para o programa HTTP_Prg na MainTask:
Por fim, podemos descarregar e testar a aplicação.
7. TESTES E RESULTADO
Podemos analisar os resultados com o CLP enviando o valor da variável “Sensor_Temperatura” a cada 1 minuto, o valor da variável de temperatura está sendo constantemente incrementada pelo próprio programa do CLP afim de testar valores simulados diversos.
IMPORTANTE: Para que os arquivos anexados abaixo funcionem corretamente, é essencial baixar todos para a mesma pasta antes de extrair o arquivo principal (ZIP) que contém o projeto.
Comentários
0 comentário
Por favor, entre para comentar.