Bom dia pessoal

Preciso de uma ajuda. Estou utilizando raspberry 2 para controla arduinos UNO via USB e gostaria de montar uma pagina que mostrasse os status dos sensores e que eu possa interagir com eles atraves de botões na pagina;

Montei em php algo mas ele não é dinamico ou seja não obtem de tempos em tempos a leitura dos sensores, a não ser que eu provoque uma ação como clicar no botão para liga ou desligar uma lampada;

Então pensei  que poderia ser feito em AJAX de forma que os dados que chegam pela serial USB sejam capturados e tratados de tempos em tempos e mostrados ao usuário e assim que o usuário possa tomar uma ação.

Exemplo: Receber as informações de lamadas ligadas e então desligar elas pelo botão na pagina..

Não sei se fui claro. Gostaria de ajuda nisso.

Muito  obrigado pela atenção

Exibições: 672

Responder esta

Respostas a este tópico

Oi Danilo,

Se você já tem um código pronto em PHP, use um disparador do servidor onde seu php está instalado. Muito provavelmente é um Linux - neste caso você utiliza o cronjob.

Se for Windows, o gerenciador de tarefas do Windows também funciona muito bem.

Isso é facilimo, em poucos minutos seu PHP estará sendo disparado no timer que desejar, a cada "x" unidades de tempo (seg,min,hr..) ou num horario determinado.

Abaixo um exemplo de como usar o cron para executar uma url ou se preferir um script php direto no servidor: (sem url)

http://stackoverflow.com/questions/13259530/using-cron-jobs-to-visi...

Ou usando curl:

https://www.scalescale.com/tips/nginx/execute-php-scripts-automatic...

Tem várias formas. Mas deixar uma página ativa para controlar via javascript ? Não recomendo.

Outra coisa que você pode fazer, é acionar um webserver no arduino, sem php, javascript ou o que quer que seja.

Exemplo:

(utilizando o servidor de ddns noip.com, por exemplo)

Supondo que seu servidor responda em http://danilorobot.ddns.net.

Você pode passar os parametros da forma:

http://danilorobot.ddns.net/?user=usuario&p=password&pin=7&...

Autentique o acesso com usuario e password, mande HIGH no digital 7

Bom, faça o que bem entender.

Boa sorte.

Olá Odilon

Obrigado pela resposta.

 Mas queria montar algo assim http://startingelectronics.org/tutorials/arduino/ethernet-shield-we...

em que a pessoa acesse o site, veja quais luzes estao ligadas e possa desligar elas pela pagina.

Entende?

Entendi. Pensei que era para rodar 24x7...

Mas eu não entendi sua dúvida então.... o exemplo está pronto !!!!

esse exemplo roda dentro de um shield ethernet via sd card.

O que eu quero é que a pagina de php busque informações dos pinos de tempos em tempos tipo a cada 2 s e mostre isso na página em div tipo temparatura.

Hoje que eu tenho é uma pagina que mostra uma lampada acessa quanto clico para ascender e uma lampada apagada quando clicar para apagar.

Alem dessa informação de temperatura eu queria que a pagina buscasse o status dos pinos e modifique a imagem: Tipo a luz agora esta apagada e entao mostre a imagem apagada.

Na minha pagina atualmente ela inicia cm luzes apagadas mas pode ser que estejam ligadas e eu queria que essa realidade fosse mostrada na pagina.

https://www.youtube.com/watch?v=0CcsDPmPrtc

Esse video ilustra o que eu quero  +/- mas não tem botões na pagina para ligar ou desligar e ele apenas mostra o que ocorre nos pinos.

Olá Danilo

Você já executou o código exemplo WebServer da IDE do Arduino? Creio nele tenha uma solução.

Olhe essa linha:

client.println("Refresh: 5");  // refresh the page automatically every 5 sec

Danilo, meu rapaz,

O exemplo que você mandou está muito próximo do que você quer.

Tem que fazer modificações uai !! Mas está prontinho para ser mexido.

Continuo sem entender sua dúvida. Você quer um troço pronto ? Não vai encontrar.

Você quer tirar dúvidas - estamos aqui para isso. Mas a programação é sua...

Cara, esse exemplo que você mandou - o primeiro link- está muito bem feito, muito fácil de ser adaptado. O segundo eu nem abri, de tão bom que está o primeiro.

"esse exemplo roda dentro de um shield ethernet via sd card."

E o seu vai rodar como ? Wifi shield ? Modifique. ESP8266 ? Adapte.

"O que eu quero é que a pagina de php busque informações dos pinos de tempos em tempos tipo a cada 2 s e mostre isso na página em div tipo temparatura."

Buscar a cada 2s - o exemplo que vc mandou está buscando a cada segundo:


client.println("setTimeout('GetSwitchAnalogData()', 1000);");

Mude para 2.
Você quer o código para temperatura ? Qual sensor você vai usar?
Peça ajuda para os detalhes, o serviço bruto é com você garoto.

Mãos a obra !!!!

O que eu pensei é o meu raspberry ser servidor web e estar ligado ao meu Arduíno via USB. Eu hoje leio o que arduino manda via USB usando classe PHP Serial. Essa iteração só ocorre quando eu clico no botao para que minha página php conecte na serial e enviei um "A" de ascender através de get na pagina.

O Arduíno le a cada 250 MS e envia print via serial. Porém eu não sei como fazer para que o Php leia isso frequentemente e ainda enviar uma SMS via serial.

A dificuldade está em criar mecanismo que monitore a serial imprima na tela e mostre se está up ou down e apartir disso o usuário escolhe se apaga ou ascende.


O exemplo usar shield de ethernet mas no meu projeto eu aboli esse shield por ter raspberry já conectado a internet.

E também pelo fato que não consegui criar uma página no SD card com ícones que mudem de acordo cm status. Fato que é possiv via php.


Exemplificando: pensei em rasp como server e arduinos como escravos conectados a serial USB e enviando informações de 2 em 2s. O Rasp pegaria essa informações, trataria elas e mostraria na tela dinamicamente em uma div mudando status do botao.

O x da questão está aí em que tipo de soluções usar Ájax? Eu não Manjo muito de Ájax.

Obrigado Rogério 

Pelo vídeo ele usa a hospedagem do arduino via ethernet shield e ainda hospeda a pagina em outro local.

Vou tentar fazer dessa forma, porém acho um pouco desnecessário usar duas portas de rede no meu roteador para arduino e para o raspberry se é que entende.

Vou analisar o video com calma

Obrigado

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço