由于上班,好久没用Arduino了,今天编了一个程序,用浏览网页的方式控制家里的电灯,效果挺好!请看程序:
/*
请用电脑或手机浏览器输入http://192.168.0.17/?1
*/
#include <SPI.h>
#include <Ethernet.h>
byte mac[] = { 0xBB, 0xBD, 0xBE, 0xBF, 0xBE, 0xBD};
IPAddress ip(192, 168, 0, 17);
EthernetServer server(80);
int redLED=7;
int yellowLED=6;
int greenLED=5;
char c;
boolean LedState1=LOW;
boolean LedState2=LOW;
boolean LedState3=LOW;
void setup() {
Serial.begin(9600);
pinMode(redLED,OUTPUT);
pinMode(yellowLED,OUTPUT);
pinMode(greenLED,OUTPUT);
digitalWrite(redLED,LedState1);
digitalWrite(yellowLED,LedState2);
digitalWrite(greenLED,LedState3);
Ethernet.begin(mac,ip);
server.begin();
delay(1000);
//Serial.print("server is at ");
// Serial.println(Ethernet.localIP());
}
void loop() {
EthernetClient client = server.available();
if (client.connected()) {
while (client.available()) {
c=client.read();
if(c=='?'){
c=client.read();
switch(c){
case '1':
LedState1=!LedState1;
digitalWrite(redLED,LedState1);
Serial.println(c);
break;
case '2':
LedState2=!LedState2;
digitalWrite(yellowLED,LedState2);
Serial.println(c);
break;
case '3':
LedState3=!LedState3;
digitalWrite(greenLED,LedState3);
Serial.println(c);
break;
}
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println("Connection: close"); // the connection will be closed after completion of the response
client.println();
client.println("<!DOCTYPE HTML>");
client.println("<html>");
client.println("<head>");
client.println("<title>My title</title>");
client.println("</head>");
client.println("<body>");
client.print("<a href=\"");
client.print("/?1\">redled</a><br /><br /><br /><br />");
client.print("<a href=\"");
client.print("/?2\">yellowled</a><br /><br /><br /><br />");
client.print("<a href=\"");
client.print("/?3\">greenled</a><br /><br /><br /><br />");
client.println("</body>");
client.println("</html>");
delay(10);
client.stop();
}
}
}
}
|