07 - PHP & Arduíno Simultâneo.

article featured image

Para finalizarmos esta série de projetos sobre Ethernet Shield, vamos ver como podemos enviar dados para o Arduíno e, simultaneamente, receber dados do mesmo, atualizando o circuito e a página no servidor.

Vamos utilizar o circuito do projeto "Receber dados do PHP". Precisamos do seguinte material: Arduíno, Ethernet Shield, Cabo de Rede, 3 LEDs, 3 Resistências e 7 Jumpers.

Dado que este projeto trata a junção de uma série de tópicos tratados nos projetos anteriores, não me irei alargar muito na explicação de alguns procedimentos, mas apenas no que há de novo, pelo que sugiro que em caso de dúvidas vejam os projetos anteriores onde tudo é explicado ao pormenor.

Comecemos pelo Arduíno onde as novidades são menores.

Na definição de variáveis, a única novidade é que vamos ter de definir a EthernetServer e EthernetClient em simultâneo, dado que o nosso circuito tanto vai receber como enviar dados.

O void setup() mantem-se inalterado.

O void loop() vai dividir-se em duas partes: a primeira verifica se foi recebido algum pacote de dados provenientes da página Web e, se foi recebido, trata esses dados; a segunda verifica se foi feita alguma alteração no circuito e, em caso afirmativo, envia para a página web uma string com essas alterações. Estas serão depois tratadas pelo PHP no servidor.

 

Vamos ver agora as funções utilizadas.

mainPageRequest - serve para se o pedido vem da página que pretendemos que venha;

getURLRequest - no pacote de dados recebido, pega apenas na parte que diz respeito ao método GET, isto é, onde estão definidas as variáveis com os valores que é necessário alterar no circuito;

processaPorta - trata os parâmetros recebidos na requisição;

sendEstadoLeds - sempre que haja alterações no circuito é necessário informar o servidor Web para o tratamento dos dados. Neste sentido, foi criada a seguinte função que envia esses dados ao servidor;

lePortaDigital - cria a string que será enviada ao servidor com o estado do circuito;

 

Passemos agora ao HTML e PHP.

Vamos ter a necessidade de criar 3 ficheiros: o primeiro será a interface entre o(s) utilizador(es) e o circuito; o segundo irá servir para registar as alterações do circuito na Base de Dados e, por fim, o terceiro, juntamente com o primeiro, vai permitir que a interface esteja atualizada, quase em tempo real, em todos os dispositivos que estejam a utilizar a página Web.

 

index.php

 

entradadados.php

 

lastUpdate.php

Agora que chegamos ao fim, espero que com este projeto "borbulhem" novas ideias e que novos projetos estejam para nascer.

Fiquem bem. Abraço,

Post AnteriorPost Seguinte