Arduino Ethernet扩展板可以让Arduino控制器连接网络。它是一块内置WizNet W5100 TCP/IP微处理器的扩展板。这块板通过长针脚排母(wire-wrap header)连接arduino板。使用Arduino IDE中的Ethernet库程序便可以轻松地使用这款扩展板连接到网络中。这款扩展板支持同时4个socket的连接。
且该款扩展板的R3版本还新增了由4个额外端口组成的1.0标准版输出端口:2个位于ARFF边上,2个位于RESET边上。RESET边上的两个端口,一个是IOREF,用来使扩展板适应主板。另一个空的端口预留给将来扩展的可能。
此款最新的版本新增micro-SD卡的插槽,拥有网络存储功能。此外,它和Arduino Duemilanove,Mega系列也完全兼容。它还拥有一个独立的PoE( power-over-Ethernet)模块。该模块可以焊接到主板上,从而通过双绞线来传输电力。这是符合IEEE802.3af标准的,并和现存的PoE模块相兼容。
技术规格
与Arduino Mega2560/Uno rev3标准输出端口相兼容
具有有功电压转换器功能的micro-SD卡连接器
PoE
复位控制器
与 Arduino MEGA板相兼容
Arduino Ethernet W5100网络扩展模块,可以使Arduino成为简单的Web服务器或者通过网络控制读写Arduino的数字和模拟接口等网络应用。可直接使用IDE中的Ethernet库文件便可实现一个简单Web服务器。
同时该版本的支持mini SD卡(TF卡)读写
该扩展板采用了可堆叠的设计,可直接插到Arduino上,同时我们的其他扩展板也可以插上去。
代码:
#include <SPI.h>
/*
* Web Server
*
* A simple web server that shows the value of the analog input pins.
*/
#include <Ethernet.h>
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
byte ip[] = { 192, 168, 1, 15 };
EthernetServer server(80);
void setup()
{
Ethernet.begin(mac, ip);
server.begin();
}
void loop()
{
EthernetClient client = server.available();
if (client) {
// an http request ends with a blank line
boolean current_line_is_blank = true;
while (client.connected()) {
if (client.available()) {
char c = client.read();
// if we've gotten to the end of the line (received a newline
// character) and the line is blank, the http request has ended,
// so we can send a reply
if (c == 'n' && current_line_is_blank) {
// send a standard http response header
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println();
// output the value of each analog input pin
client.print("welcome to tinyos electronics");
client.println("<br />");
client.print("//*************************************");
client.println("<br />");
client.print("");
client.println("<br />");
client.print("//*************************************");
client.println("<br />");
for (int i = 0; i < 6; i++) {
client.print("analog input ");
client.print(i);
client.print(" is ");
client.print(analogRead(i));
client.println("<br />");
}
break;
}
if (c == 'n') {
// we're starting a new line
current_line_is_blank = true;
} else if (c != 'r') {
// we've gotten a character on the current line
current_line_is_blank = false;
}
}
}
client.stop();
}
}