O QUE PRETENDEMOS COM ESSE ARTIGO? 

Nessa série de artigos, vamos ver como trabalhar com IoT fazendo o PHP e Arduíno trabalharem juntos, desde aplicações simples, até um sistema de monitoramento para data center. Vamos abordar conceitos como POO, Segurança, Modelos de requisição e muito mais.

PHP + IoT, what?

Ao longo dos anos a internet evoluiu de simples páginas estáticas até chegar ao que temos hoje com estruturas complexas e ricas para melhorar a experiência do usuário.
A Internet das Coisas (IoT) é um assunto que tem sido abordado nos últimos anos sobre a interação de hardwares como recursos na internet, compreendendo aplicações que vão desde pequenos projetos experimentais até grandes projetos corporativos passando também por dispositivos domésticos.
Tá tudo isso é bacana, mas onde é que entra o PHP nisso tudo?
Ah, é aí que a coisa começa a ficar interessante. Esses dispositivos, por si só, são ótimas ferramentas de monitoramento e também de controle, porém precisam de algum intermediário para tornar essa experiência de uso mais agradável ao usuário.
E o mais legal disso tudo é que os modelos de arquitetura são bastante flexíveis, e se adicionarmos a versatilidade de uma linguagem como PHP é possível fazer coisas fascinantes.
Beleza, isso eu já entendi. Esse papo de teoria eu já li na Wikipedia, quero mesmo é saber como isso funciona (se é que funciona).
Ok, vamos lá.
Um dos modelos mais comuns propõe utilizar um Arduíno como servidor web e deixar o PHP fazer o trabalho de controlar, organizar e armazenar esses dados, caso seja necessário. Vamos ver como isso funciona?

exemplo-de-modelo-de-comunicacao

O exemplo acima esboça como será estruturado nosso modelo.

O que vamos precisar para esse artigo?

  • 1 Arduíno Uno
  • 1 Ethernet shield W5100
  • Um sensor de presença Pir Hc-sr501
  • Um sensor de umidade/temperatura DHT22

Criando o monitor com Arduíno

Imagino que você já esteja familiarizado com o Arduíno e saiba pelo menos fazer upload de um sketch. Caso não saiba, dê uma lida aqui.

O código que vamos utilizar para esse exemplo é muito simples e consiste em construir e gerenciar um monitor de temperatura. Obter dados de versão e valores dos sensores para exibir no navegador.

Então o código Arduíno vai ser assim:

 

Uau, isso é sensacional, mas não faço nem ideia do que está escrito aí =( E agora o que eu faço?
Calma, pra quem não é familiarizado com o Arduíno não se preocupe, em outros artigos vamos entender como tudo isso funciona, agora basta saber que ele vai criar uma micro API com os seguintes métodos.

  • ObterVersao – Obtém a versão do servidor Arduíno
  • ObterTemperatura – Retorna o valor em ºC
  • ObterPresenca – Retorna true caso o sensor reconheça presença
  • ObterUmidade – Retorna o valor da umidade em %

** IMPORTANTE ** Altere o Ip do código para um IP correspondente na sua rede.

Em seguida, faça o upload e ligue o sensor no seu Arduíno conforme o esquema abaixo:

pir_sensor_bb

Agora vamos testar pra ver se tudo está funcionando. Se tudo funcionar de primeira, desconfie, afinal, somos programadores =P

response

Uhuuuuuuuu \o/ agora é só dominar o mundo.
Calma, ainda não. Precisamos de alguém que facilite o uso dessa API, não é mesmo? Afinal, quem é que vai lembrar da URL toda vez que precisar manipular nosso dispositivo?
E é aí que o PHP dá seu show. Como o PHP é extremamente fácil de manusear e é uma linguagem que nasceu pra internet, fazer requisições http com ele é moleza. Vamos lá?

ESCREVENDO O GERENCIADOR PHP

A primeira coisa que precisamos fazer, é criar nossa interface de controle. Então, vamos criar 4 botões, um para cada funcionalidade respectivamente.

Para isso, crie um arquivo chamado de index.php e adicione esse código.

Código HTML básico com bootstrap para deixar mais bonito. No navegador teremos algo similiar à isso:

botoes
Agora vamos fazê-los funcionar 😉
Para fazer requisições HTTP em PHP, um dos modos mais fáceis é utilizando a função get_contents(), que atende bem na maioria dos casos.
Futuramente veremos maneiras mais eficientes de fazer isso, mas para manter as coisas simples, ela vai resolver nosso problema.

O código acima, faz chamadas ao servidor do arduino de acordo com o botão que foi acionado. Não se desespere com a segurança, vamos corrigir isso nos próximos artigos. Nosso objetivo até aqui foi mostrar como essa comunicação é feita e como tirar proveito da facilidade do PHP para se conectar com seu Arduíno via internet.

AO INFINITO E ALÉM

Os próximos passos que veremos nos artigos subsequentes, vão abranger os outros modelos de comunicação, utilizar PHP orientado a objetos, segurança nas requisições e mais explicações sobre o funcionamento do Arduíno e como publicar o servidor na internet.

 

2 Comments

%d blogueiros gostam disto: