#include #include boolean gflag=false; String parm; int dout[8]={0,0,0,0,0,0,0,0}; // SET MAC & IP Static byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; byte ip[] = { 192, 168, 10, 73 }; Server server(80); void setup() { for (int i=0;i<8;i++){ pinMode(i,OUTPUT); digitalWrite(i,dout[i]); } // Set IP Ethernet Shield Arduino Ethernet.begin(mac, ip); server.begin(); } void loop() { // listen for incoming clients Client client = server.available(); if (client) { // an http request ends with a blank line boolean currentLineIsBlank = true; while (client.connected()) { if (client.available()) { char c = client.read(); // serch parameter from "HTTP GET" if(gflag){ if(c != ' '){ parm += c; }else{ gflag = false; } } if(c == '?' && parm == ""){ gflag = true; } if (c == '\n' && currentLineIsBlank) { // set header http response if(parm == ""){ // normal HTTP access client.println("HTTP/1.1 200 OK"); client.println("Content-Type: text/html"); client.println(); client.println("Hello Arduino"); client.println(""); client.println("

"); client.println(""); client.println(""); client.println(""); client.println("

"); client.println(""); client.println(""); client.println(""); client.println("

"); client.println("
"); client.println(""); client.println(""); client.println("

"); client.println("
"); }else{ // using XMLhttpObject access int check = parm.indexOf('='); if(check != -1){ //Set Digital Port int check2 = parm.indexOf('btn'); if(check2 != -1){ int port = (parm.substring(check+1)).toInt(); dout[port] = !dout[port]; digitalWrite(port, dout[port]); } //Kirim data JSONP Data (Digital & Analog Ports Statusdengan nama 'cb') client.print("cb({\"D\":["); for(int i=0; i<8; i++ ){ client.print(dout[i]); if(i<7){ client.print(","); } } client.print("],\"A\":["); for(int i=0; i<6; i++ ){ client.print(analogRead(i)); if(i<5){ client.print(","); } } client.print("]});"); } parm = ""; } break; } if (c == '\n') { currentLineIsBlank = true; } else if (c != '\r') { currentLineIsBlank = false; } } } delay(1); client.stop(); } }