[wiki:wade/embedded/arduino 回到 Arduino] {{{ #!c /* * Web Admin 透過 web service 提供網頁監控功能。 * 接法: * analog pin1:CT sersor * */ #include //#include byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; byte ip[] = { 192, 168, 1, 240 }; Server server(80); void setup() { Ethernet.begin(mac, ip); server.begin(); Serial.begin(9600); pinMode(2, OUTPUT); pinMode(3, OUTPUT); } void loop() { Client client = server.available(); // detect if current is the first line boolean current_line_is_first = true; // command code char command[3] = "\0"; 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 for (int i = 0; i < 6; i++) { client.print("analog input "); client.print(i); client.print(" is "); client.print(analogRead(i)); client.println("
"); } client.println("
"); client.println(""); client.println(""); client.println(""); client.println(""); client.println("
"); break; } if (c == '\n') { // we're starting a new line current_line_is_first = false; current_line_is_blank = true; } else if (c != '\r') { // we've gotten a character on the current line current_line_is_blank = false; } // get the first http request if (current_line_is_first && c == '=') { for (int i = 0; i < 2; i++) { c = client.read(); command[i] = c; } if (!strcmp(command, "01") ) { Serial.println("high pin 2"); digitalWrite(2, HIGH); delay(500); digitalWrite(2, LOW); } if (!strcmp(command, "02") ) { Serial.println("high pin 3"); digitalWrite(3, HIGH); delay(500); digitalWrite(3, LOW); } } } } // give the web browser time to receive the data delay(1); client.stop(); } } }}}