#include <SPI.h>
#include <Ethernet.h>
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
byte ip[] = { 192, 168, 0, 12 };
byte gateway[] = { 192, 168, 0, 12 };
byte subnet[] = { 255, 255, 255, 0 };
EthernetServer server(80);
String readString;
int ledPin = 8;
void setup() {
Serial.begin(9600);
pinMode(ledPin, OUTPUT);
//pinMode(ledPin, OUTPUT);
digitalWrite(ledPin, LOW);
Serial.println(ledPin);
Ethernet.begin(mac, ip, gateway, subnet);
server.begin();
Serial.print("server is at ");
Serial.println(Ethernet.localIP());
}
void loop() {
EthernetClient client = server.available();
//Serial.println(client);
if (client) {
while (client.connected()) {
if (client.available()) {
char c = client.read();
if (readString.length() < 100) {
readString += c;
}
if (c == 0x0D) {
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println();
client.println("<HTML>");
client.println("<HEAD>");
client.println("<TITLE> 远程开关</TITLE>");
client.println("</HEAD>");
client.println("<BODY>");
client.println("<hr>");
client.println("<H1 align=\"center\"><front color=\"blue\">智能开源硬件项目:远程开关创意设计</front></H1>");
client.println("<hr>");
client.println("<br>");
client.println("<H2 align=\"center\"><a href=/?LEDON>Turn On</a><br></H2>");
client.println("<H2 align=\"center\"><a href=/?LEDOFF>Turn Off</a><br></H2>");
client.println("<br>");
client.println("</BODY>");
client.println("</HTML>");
delay(10);
client.stop();
if (readString.indexOf("?LEDON") > -1) {
digitalWrite(ledPin, HIGH);
Serial.println("LEDON");
} else {
if (readString.indexOf("?LEDOFF") > -1) {
digitalWrite(ledPin, LOW);
Serial.println("LEDOFF");
}
}
readString = "";
}
}
}
}
}
这个是2015年前后的一个项目,技术实现简单,防止代码丢失
有实验板子的,继电器in接的arduino pin8 (置为output)