collapse

* Links de Robótica

* Posts Recentes

Ligar Células de Lithium por Hugu
[Hoje às 02:00]


Encomenda Colectiva N3-2016[@Mouser - Aberta a pedidos!] por Hugu
[Hoje às 01:53]


Printer 3D barata por xmatias
[Ontem às 03:56]


Servidor por almamater
[09 de Dezembro de 2016, 21:39]


mysql server error por andre_f_carvalho
[09 de Dezembro de 2016, 18:56]


Cortar plástico ABS por msr
[05 de Dezembro de 2016, 17:27]


MOVIDO: FPV Drone Racing? por metRo_
[05 de Dezembro de 2016, 10:49]


Módulo gsm por dio123
[04 de Dezembro de 2016, 23:06]


Procuro resistências 220 Ohm de 1% por brunus
[02 de Dezembro de 2016, 15:50]


Package de cond 10uF 35V smd? por KammutierSpule
[02 de Dezembro de 2016, 11:19]

Autor Tópico: Controlar Arduino Yun Através da Web  (Lida 10794 vezes)

0 Membros e 1 Visitante estão a ver este tópico.

Offline Nunito

  • Mini Robot
  • *
  • Mensagens: 926
Controlar Arduino Yun Através da Web
« em: 31 de Janeiro de 2015, 11:19 »
Bom dia.

Estou num projeto de controlo de motores de passo através de uma página web.
Estou com o Arduino Yun(primeiro contacto com esta board).

Já consegui fazer ligar um led, e rodar o motor em ambos os sentidos.
Estou a abrir o ficheiro index através do sd do YUN, onde contem os botões On/Off.

O problema que encontrei foi que testei sempre o Arduino na net em que o PC estava ligado.
Quando foi testado com outro PC do outro lado da linha, o endereço IP não está disponível.

Com isto apercebi-me que o Arduino só recebe a informação estando ligado na mesma rede wireless.
Já tentei através de tutoriais do EasyPhp, mas como não sou desta área de programação web,não percebendo nada de html, php, etc, não consegui.
Consegui através de tutoriais.

Alguém sabe se é possível ou como testar com o EasyPHP ou algo do gênero para testes?

Cumprimentos, Nuno

Offline KammutierSpule

  • Mini Robot
  • *
  • Mensagens: 949
Re: Controlar Arduino Yun Através da Web
« Responder #1 em: 31 de Janeiro de 2015, 12:24 »
Nao sei se e' o caso, mas, se tens um servidor/servico dentro da tua rede em casa, podes reencaminha-lo / torna-lo acessivel para fora. basta ir ao router e "abrir" / reencaminhar essas portas para o exterior.

Depois, precisas de saber o IP da tua ligacao ah internet, usando para isso um servico de IP dinamico.

Offline Nunito

  • Mini Robot
  • *
  • Mensagens: 926
Re: Controlar Arduino Yun Através da Web
« Responder #2 em: 31 de Janeiro de 2015, 12:33 »
Não sei se é o caso, mas, se tens um servidor/serviço dentro da tua rede em casa, podes reencaminha-lo / torna-lo acessível para fora. basta ir ao router e "abrir" / reencaminhar essas portas para o exterior.

Depois, precisas de saber o IP da tua ligação ah internet, usando para isso um serviço de IP dinâmico.

Por acaso estou a fazer isto para uma empresa(estágio), pois já vi em tutoriais na net que é possível esse modo de ir ao router e reencaminhar essas portas para o exterior..
Pois também já vi acerca de IP dinâmicos.

Mas como não sou da área não entendo nada de redes.
Consegues-me encaminhar algum site com tutorial que me ajude a perceber as noções básicas de como efetuar os passos.

Cumprimentos, Nuno

Offline KammutierSpule

  • Mini Robot
  • *
  • Mensagens: 949
Re: Controlar Arduino Yun Através da Web
« Responder #3 em: 31 de Janeiro de 2015, 13:10 »
Nao sei tutorials / paginas :/

O router, terá o seu manual. E geralmente isto e' configurado na pagina de configuracao do router.
Se o teu Yun tiver um IP fixo, por exemplo 192.168.1.100 e estas a usar a porta 80 (http) entao so tens de ir `a pagina do router e dizer que as ligacoes que ele receber na porta 80, sao para reencaminhar para o IP 192.168.1.100
so isso 80 : 192.168.1.100

Quanto ao IP dinamico ja e' mais dificil estar a explicar ou investigar agora.
Alguns routers suportam servicos de IP dinamico, nao, terás de usar uma aplicacao num PC local a correr para actualizar o IP.

Googla por: dynamic dns

ou alguem que de outras sugestoes.


Offline Nunito

  • Mini Robot
  • *
  • Mensagens: 926
Re: Controlar Arduino Yun Através da Web
« Responder #4 em: 31 de Janeiro de 2015, 13:31 »
Nao sei tutorials / paginas :/

O router, terá o seu manual. E geralmente isto e' configurado na pagina de configuracao do router.
Se o teu Yun tiver um IP fixo, por exemplo 192.168.1.100 e estas a usar a porta 80 (http) entao so tens de ir `a pagina do router e dizer que as ligacoes que ele receber na porta 80, sao para reencaminhar para o IP 192.168.1.100
so isso 80 : 192.168.1.100

Quanto ao IP dinamico ja e' mais dificil estar a explicar ou investigar agora.
Alguns routers suportam servicos de IP dinamico, nao, terás de usar uma aplicacao num PC local a correr para actualizar o IP.

Googla por: dynamic dns

ou alguem que de outras sugestoes.

Obrigado!

Offline Njay

  • Mini Robot
  • *
  • Mensagens: 2.843
    • Tróniquices
Re: Controlar Arduino Yun Através da Web
« Responder #5 em: 31 de Janeiro de 2015, 13:35 »
É como diz o Kammutier. Se estás a usar um ip fixo dentro da tua rede (192.168...) convém também garantir que isso não colide com o resto dos dispositivos IP, ou seja, que não lhe estás a dar o mesmo IP de outro dispositivo ou vice-versa. Isto num rede doméstica com router é fácil de garantir; também por configuração no router, podes limitar o intervalo de IPs que o servidor DHCP (o "atribuidor automático de IPs") pode atribuir, deixando fora do intervalo o IP que queres para o teu dispositivo. Não tenho grande experiência com routers "caseiros" mas normalmente não são dificeis de configurar e as interfaces são minimamente decentes.
No caso do IP dinâmico (isto só é preciso se a tua rede não tiver IP fixo; como é uma empresa, talvez tenha), "alguém" vai ter que actualizar o serviço externo de IP dinamico com o IP da tua rede visto da Internet. Se esse arduino não fizer isso, terás que ter uma outra máquina a fazê-lo. Dica: pelo menos algumas IPCams vêm com um serviço gratuito desses de IP dinamico; se houver por aí uma a ser usada, podes já ter um endereço DNS que está sempre a apontar para a tua rede (aproveitas e verificas se mudaram as passwords de default :) ).

De qualquer forma esta parte de configuração do caminho até ao teu arduino deveria ser feita pelo administrador da rede.
« Última modificação: 31 de Janeiro de 2015, 13:39 por Njay »

Offline Nunito

  • Mini Robot
  • *
  • Mensagens: 926
Re: Controlar Arduino Yun Através da Web
« Responder #6 em: 05 de Fevereiro de 2015, 21:56 »
Estou neste momento a tentar ligar o arduino yun ao servidor, o processo é ler ficheiros txt alojados no servidor.
Estou a utilizar o process.h, a função curl()
void runCurl()
  Process p;           
  p.begin("curl")     
  p.addParameter("coloquei aqui o caminho do servidor para o txt");
  p.run();
....
abri a ligação bridge.begin, só que não sei o que se passa não me está a comunicar com o servidor.

Já tentei fazer o upload através da porta usb e via wifi(IP), não sei o que se estará a passar para não me abrir a conexão via wireless.

Offline Nunito

  • Mini Robot
  • *
  • Mensagens: 926
Re: Controlar Arduino Yun Através da Web
« Responder #7 em: 06 de Fevereiro de 2015, 18:46 »
Projecto com bom andamento.

Problemas encontrados:

Com o processo 

void runCurl()
{
  Process p;           
  x.begin("curl");     
  x.addParameter("...endereçoIP/data/file.txt");
  x.run();

while (p.available()>0) {
    char c = x.read();

if (c =='0')

for(x...; x <500 x++)
Criei um ciclo for para quando para rodar o stepper x passos, este ciclo for está a funcionar se apenas receber uma vez o '0'.

Mas como tenho o processo constantemente a verificar o estado do ficheiro .txt o ciclo FOR não me está a parar nos steps pretendidos.

Alguém tem uma sugestão para isto.
Já testei funções e funções e nada.

StarRider

  • Visitante
Re: Controlar Arduino Yun Através da Web
« Responder #8 em: 06 de Fevereiro de 2015, 20:27 »
Projecto com bom andamento.

Problemas encontrados:

Com o processo 

void runCurl()
{
  Process p;           
  x.begin("curl");     
  x.addParameter("...endereçoIP/data/file.txt");
  x.run();

while (p.available()>0) {
    char c = x.read();

if (c =='0')

for(x...; x <500 x++)
Criei um ciclo for para quando para rodar o stepper x passos, este ciclo for está a funcionar se apenas receber uma vez o '0'.

Mas como tenho o processo constantemente a verificar o estado do ficheiro .txt o ciclo FOR não me está a parar nos steps pretendidos.

Alguém tem uma sugestão para isto.
Já testei funções e funções e nada.

Boas,

Se percebi bem, estas a usar "um ficheiro" para servir de protocolo de comunicação ?



Offline Nunito

  • Mini Robot
  • *
  • Mensagens: 926
Re: Controlar Arduino Yun Através da Web
« Responder #9 em: 06 de Fevereiro de 2015, 20:41 »
Projecto com bom andamento.

Problemas encontrados:

Com o processo 

void runCurl()
{
  Process p;           
  x.begin("curl");     
  x.addParameter("...endereçoIP/data/file.txt");
  x.run();

while (p.available()>0) {
    char c = x.read();

if (c =='0')

for(x...; x <500 x++)
Criei um ciclo for para quando para rodar o stepper x passos, este ciclo for está a funcionar se apenas receber uma vez o '0'.

Mas como tenho o processo constantemente a verificar o estado do ficheiro .txt o ciclo FOR não me está a parar nos steps pretendidos.

Alguém tem uma sugestão para isto.
Já testei funções e funções e nada.

Boas,

Se percebi bem, estas a usar "um ficheiro" para servir de protocolo de comunicação ?
Sim.
Tenho a pagina da web com botões onde esses botões vão atualizar o ficheiro motor.txt de 00(desligado) para 22(onde o 1º (2) é o id e o 2º (2) é o estado.
É o segundo (2) que o processo  x.addParameter("...endereçoIP/data/motor.txt"); está a ir constantemente a ir verificar o estado 0 ou 2.
Eu fiz um teste de imprimir no serial monitor o estado que está a ser identificado, não imprime uma vez e pára.

Pois isso está a fazer com que o ciclo for esteja sempre em loop.

StarRider

  • Visitante
Re: Controlar Arduino Yun Através da Web
« Responder #10 em: 06 de Fevereiro de 2015, 22:30 »
Boas,

A pagina WEB é servida pelo arduino ? Ou seja, esse arduino implementa um web server ?

Devias repensar essa estratégia. Não sei se a tua opção por essa solução se deve a alguma limitação
das libs que estás a usar, mas o normal é no mínimo usar HTTP para esse tipo de protocolo caso
não estejas a implementar um embedded web server ou por CGI (ou outro qualquer script) em caso
contrário.

Da forma que estas a fazer tens vários problemas, nomeadamente a sincronização, tempo de resposta,
overhead totalmente desnecessário com o polling constante a um ficheiro, etc.

Sei que com esta resposta não te estou a ajudar a resolver o problema, mas pensa nisso.

Abraços
PA

« Última modificação: 06 de Fevereiro de 2015, 22:34 por StarRider »

Offline Nunito

  • Mini Robot
  • *
  • Mensagens: 926
Re: Controlar Arduino Yun Através da Web
« Responder #11 em: 07 de Fevereiro de 2015, 09:17 »
Boas,

A pagina WEB é servida pelo arduino ? Ou seja, esse arduino implementa um web server ?

Devias repensar essa estratégia. Não sei se a tua opção por essa solução se deve a alguma limitação
das libs que estás a usar, mas o normal é no mínimo usar HTTP para esse tipo de protocolo caso
não estejas a implementar um embedded web server ou por CGI (ou outro qualquer script) em caso
contrário.

Da forma que estas a fazer tens vários problemas, nomeadamente a sincronização, tempo de resposta,
overhead totalmente desnecessário com o polling constante a um ficheiro, etc.

Sei que com esta resposta não te estou a ajudar a resolver o problema, mas pensa nisso.

Abraços
PA


Sim, o arduino implementa um webserver.
Ele envia um database.php para a base de dados e envia também um motors.sh com este código lá dentro "(curl http://IP.../.../.../motors/all-motor-autoupdate.php/) &" para o servidor.


O meu problema aqui também é a dificuldade em perceber a linguagem de redes informáticas, pois nunca dei nada disso. caí de paraquedas nesta área.

Pois essa do polling já estou a ver onde queres chegar, pois penso que seja o que está a aconteçer.

Offline Njay

  • Mini Robot
  • *
  • Mensagens: 2.843
    • Tróniquices
Re: Controlar Arduino Yun Através da Web
« Responder #12 em: 07 de Fevereiro de 2015, 12:59 »
Esse código do runCurl corre no arduino ou num PC?

Offline Nunito

  • Mini Robot
  • *
  • Mensagens: 926
Re: Controlar Arduino Yun Através da Web
« Responder #13 em: 07 de Fevereiro de 2015, 18:39 »
Esse código do runCurl corre no arduino ou num PC?

Está no Arduino Yun.

Offline Njay

  • Mini Robot
  • *
  • Mensagens: 2.843
    • Tróniquices
Re: Controlar Arduino Yun Através da Web
« Responder #14 em: 07 de Fevereiro de 2015, 19:21 »
É que isso tem mais aspecto de ser um cliente web e não um servidor. Então esse objecto x o que é?