|
以下代码摘自EtherCard的webClient实例,主要功能是打开指定网址,
Serial.print((const char*) Ethernet::buffer + off);这一行显示服务器返回的数据。当输出一个没有任何格式的页面的时候,也返回一些服务器的信息,我的想法是过滤掉服务器的信息,看这里谁做过类似的方案。
能取得数据的话,就可以在web上面设置Arduino程序里面的参数了。
ARDUINO
01.//>>> The latest version of this code can be found at https://github.com/jcw/ !!
02.
03.// Demo using DHCP and DNS to perform a web client request.
04.// 2011-06-08 <jcw@equi4.com> http://opensource.org/licenses/mit-license.php
05.// $Id: webClient.pde 7763 2011-12-11 01:28:16Z jcw $
06.
07.#include <EtherCard.h>
08.
09.// ethernet interface mac address, must be unique on the LAN
10.static byte mymac[] = { 0x74,0x69,0x69,0x2D,0x30,0x31 };
11.
12.byte Ethernet::buffer[700];
13.static uint32_t timer;
14.
15.char website[] PROGMEM = "www.google.com";
16.
17.// called when the client request is complete
18.static void my_callback (byte status, word off, word len) {
19. Serial.println(">>>");
20. Ethernet::buffer[off+300] = 0;
21. Serial.print((const char*) Ethernet::buffer + off);
22. Serial.println("...");
23.}
24.
25.void setup () {
26. Serial.begin(57600);
27. Serial.println("\n[webClient]");
28.
29. if (ether.begin(sizeof Ethernet::buffer, mymac) == 0)
30. Serial.println( "Failed to access Ethernet controller");
31. if (!ether.dhcpSetup())
32. Serial.println("DHCP failed");
33.
34. ether.printIp("IP: ", ether.myip);
35. ether.printIp("GW: ", ether.gwip);
36. ether.printIp("DNS: ", ether.dnsip);
37.
38. if (!ether.dnsLookup(website))
39. Serial.println("DNS failed");
40.
41. ether.printIp("SRV: ", ether.hisip);
42.}
43.
44.void loop () {
45. ether.packetLoop(ether.packetReceive());
46.
47. if (millis() > timer) {
48. timer = millis() + 5000;
49. Serial.println();
50. Serial.print("<<< REQ ");
51. ether.browseUrl(PSTR("/foo/"), "bar", website, my_callback);
52. }
53.}
|
|