collapse

* Links de Robótica

* Posts Recentes

Mosfet trocado? por almamater
[Ontem às 23:33]


Ontem pequei... por senso
[Ontem às 19:37]


Motherboard por SerraCabo
[Ontem às 10:04]


Encomenda Colectiva N2-2016[@Mouser - Aberta a pedidos!] por Hugu
[23 de Setembro de 2016, 20:40]


Ficha desconhecida por SerraCabo
[22 de Setembro de 2016, 22:28]


TV Avariou - Sanyo por almamater
[21 de Setembro de 2016, 09:21]


Livros Elektor por beirao
[20 de Setembro de 2016, 22:04]


Encomenda Colectiva MikroElektronika por TigPT
[20 de Setembro de 2016, 08:33]


Sugestões para uma campainha Wireless (longa distância) por samc
[20 de Setembro de 2016, 00:22]


Módulo gsm por Njay
[19 de Setembro de 2016, 23:42]

Autor Tópico: Retirar informação de site atraves de ethernet shield  (Lida 5683 vezes)

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

Offline Wolfz

  • Mini Robot
  • *
  • Mensagens: 59
Retirar informação de site atraves de ethernet shield
« em: 05 de Julho de 2012, 23:02 »
Boas pessoal, ultimamente ando a aprofundar os meus conhecimentos sobre o ethernet shield, tal como já devem ter percebido com os outros tópicos que coloquei.

Eu vi num vide do youtube um Sr que conseguia através do ethernet shield retirar informação do twiter, no meu caso queria apenas retirar por exemplo a hora que aparece neste site: http://www.horadomundo.com/

Alguma sugestão? ;)

Offline Wolfz

  • Mini Robot
  • *
  • Mensagens: 59
Re: Retirar informação de site atraves de ethernet shield
« Responder #1 em: 06 de Julho de 2012, 01:50 »
Não há ninguém que me possa ajudar? Que me possa dizer ao menos como posso procurar (o que procurar no google)...

Offline zedlav

  • Mini Robot
  • *
  • Mensagens: 78
Re: Retirar informação de site atraves de ethernet shield
« Responder #2 em: 06 de Julho de 2012, 03:42 »
Boas.

Tens de usar EthernetClient tens aqui um exemplo que faz um pedido ao google.

http://arduino.cc/en/Reference/EthernetClient

Para "sacares" a hora vais ter de implementar á tua maneira uma forma de tirar do html que vais receber esta linha que lá vem "<input type="hidden" name="miliSegundos" value="1341540522837" />" onde diz value="1341540522837" é onde está a data mas num formato diferente vê o link em baixo.

 http://www.epochconverter.com/
 




Offline tiagogala

  • Mini Robot
  • *
  • Mensagens: 64
    • therandombit.wordpress.com
Re: Retirar informação de site atraves de ethernet shield
« Responder #3 em: 06 de Julho de 2012, 14:24 »
O outro site que deste está carregado de javascript, processar isso num arduino não é tarefa fácil, em todo o caso vê se há algum sítio onde haja um número perto de 1341580386 (unix time para a  altura em que estou a escrever isto), esse número é o número de segundos desde 1 de Janeiro de 1970, é só fazer as contas :)

Offline amando96

  • Mini Robot
  • *
  • Mensagens: 1.627
  • MAC address? But I have windows...
    • Projects, News, Blog, Tutorials
Re: Retirar informação de site atraves de ethernet shield
« Responder #4 em: 06 de Julho de 2012, 14:55 »
Poderias era alojar um script em PHP ou assim noutro sítio teu, e mandas o arduino ir buscar o resultado já parseado.

Offline Wolfz

  • Mini Robot
  • *
  • Mensagens: 59
Re: Retirar informação de site atraves de ethernet shield
« Responder #5 em: 06 de Julho de 2012, 15:30 »
Obrigado zedlav, tiagogala =)

Obrigado amando96 inicialmente estava a pensar fazer como tu dizes, mas não consegui arranjar informação sobre como fazer isso. Se Já fizeste isso ou sabes de algum "tutorial" agradecia a tua ajuda.
« Última modificação: 06 de Julho de 2012, 15:45 por Wolfz »

Offline Wolfz

  • Mini Robot
  • *
  • Mensagens: 59
Re: Retirar informação de site atraves de ethernet shield
« Responder #6 em: 06 de Julho de 2012, 18:23 »
Já consigo aceder ao site e ver "as informações" =D

O que recebo na Serial é isto:
Citar
connecting...
connected
HTTP/1.1 404 Not Found
Date: Fri, 06 Jul 2012 17:10:04 GMT
Server: Apache/2.2.21 (Unix) mod_ssl/2.2.21 OpenSSL/0.9.8e-fips-rhel5 mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635
Last-Modified: Fri, 07 Jan 2005 23:09:11 GMT
ETag: "a8002c-2a6-3ed1e4e7193c0"
Accept-Ranges: bytes
Content-Length: 678
Vary: Accept-Encoding,User-Agent
Connection: close
Content-Type: text/html

<HTML><HEAD><TITLE> Wait ... </TITLE>
<META HTTP-EQUIV="refresh" CONTENT="0;URL=/">
</HEAD><BODY><FONT FACE="verdana,arial" SIZE=2>
<!-- This page doensn't exist anymore -->
Click  <A HREF="/">here[/url] to continue ...
</FONT>
<!-- adding to get to 512 bytes 000000000000000000000000000000000000000000000000 -->
<!-- 000000000000000000000000000000000000000000000000000000000000000000000000000 -->
<!-- 000000000000000000000000000000000000000000000000000000000000000000000000000 -->
<!-- 000000000000000000000000000000000000000000000000000000000000000000000000000 -->
<!-- 000000000000000000000000000000000000000000000000000000000000000000000000000 -->
</BODY></HTML>

disconnecting.

Há alguma maneira de guardar isto ("Date: Fri, 06 Jul 2012 17:10:04 GMT") numa variavel?

Offline amando96

  • Mini Robot
  • *
  • Mensagens: 1.627
  • MAC address? But I have windows...
    • Projects, News, Blog, Tutorials
Re: Retirar informação de site atraves de ethernet shield
« Responder #7 em: 06 de Julho de 2012, 19:40 »
Mas só queres saber as horas? ou é para uma demonstração de ir buscar algo à net? é que os recursos que estás a gastar são imensos, há relógios em forma DIP de 8 pinos baratos e fáceis de usar.

Experimentei usar o DOMDocument mas o site está mal feito, repetem o mesmo id várias vezes... html inválido.

Offline Wolfz

  • Mini Robot
  • *
  • Mensagens: 59
Re: Retirar informação de site atraves de ethernet shield
« Responder #8 em: 06 de Julho de 2012, 19:56 »
Obrigado mais uma vez amando96 :)

O que eu queria fazer mesmo era retirar informação dos sites, por exemplo, retirar informações deste site (http://www.horadomundo.com/mundo/ciudad/openCity.do?nome=Braga&city_id=1890040)

Gostava de fazer com o retirar da Internet, pois no futuro poderá servir-me para outras coisas.

Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 8.942
  • Helpdesk do sitio
Re: Retirar informação de site atraves de ethernet shield
« Responder #9 em: 06 de Julho de 2012, 23:39 »
Retirar a informação é relativamente simples, lês a página linha a linha e passas por um sscanf, e procuras por Date, depois é retirar a informação campo a campo, o problema é se alteram a notação/formatação e se tiveres de ler o site todo para ram, podes esquecer que não vai caber na ram de um arduino.
Avr fanboy

Offline Wolfz

  • Mini Robot
  • *
  • Mensagens: 59
Re: Retirar informação de site atraves de ethernet shield
« Responder #10 em: 06 de Julho de 2012, 23:45 »
 :-X pois é tens razão

Já agora como posso saber qual o "ip" para o arduino " ler este site (http://www.horadomundo.com/mundo/ciudad/openCity.do?nome=Braga&city_id=1890040)

Obrigado senso ;)

Offline Wolfz

  • Mini Robot
  • *
  • Mensagens: 59
Re: Retirar informação de site atraves de ethernet shield
« Responder #11 em: 07 de Julho de 2012, 14:08 »
Boas Senso, tive a pensar e o que me dizes de em vez de retirar a informação de um site "exterior" alojar uma pagina html com um javascript para "gerar" as horas no SD e ir buscar as horas através do arduino?

Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 8.942
  • Helpdesk do sitio
Re: Retirar informação de site atraves de ethernet shield
« Responder #12 em: 07 de Julho de 2012, 14:13 »
Isso parece-me o trabalho perfeito para um router de 25 ou 30€ a correr openWrt ou DD-WRT, a tirar informação da internet do que for preciso e depois envia o essencial por serial para o arduino.
Avr fanboy

Offline Wolfz

  • Mini Robot
  • *
  • Mensagens: 59
Re: Retirar informação de site atraves de ethernet shield
« Responder #13 em: 07 de Julho de 2012, 14:15 »
Agora é que me baralhas-te todo  :o

Não tenho bases para isso xD

Offline GnGz

  • Mini Robot
  • *
  • Mensagens: 665
Re: Retirar informação de site atraves de ethernet shield
« Responder #14 em: 07 de Julho de 2012, 14:40 »
Olá,

Deixo-te aqui uma solução para Data + Hora:
Arranjas um webhost e escreves um simples ficheiro php como o debaixo

Código: [Seleccione]
<?php
date_default_timezone_set
('UTC');
echo 
date('l jS \of F Y h:i:s A');
?>


Onde está UTC metes a timezone que desejas e na string do argumento da função date alteras o formato para como queres receber a hora. As letras têm significados escritos aqui: http://php.net/manual/en/function.date.php

Ele não vai gerar um site html mas vai gerar apenas só a data no formato que escolheste.

Com o shield de ethernet deverá te gerar um coisa assim:

Código: [Seleccione]
HTTP/1.1 200 OK
Date: Sat, 07 Jul 2012 15:32:05 GMT
Server: Apache/2.2.16 (Debian)
Vary: Accept-Encoding
Transfer-Encoding: chunked
Content-Type: text/html

Saturday 7th of July 2012 03:32:06 PM


Depois com o Arduino fazes só o parsing da ultima linha...
Para obteres o Endereço Ip arranja-se uma coisa parecida...

P.S:

O Código em PHP para o Endereço de IP:

Código: [Seleccione]
<?php
echo $_SERVER['REMOTE_ADDR'];
?>


Cumprimentos,
GnGz
« Última modificação: 07 de Julho de 2012, 14:51 por GnGz »