Sunday, June 5, 1988

Web Server Sketch

/* ===============================================================
      Project: 2 leds controlled by a webserver
      Author: J. B. Wylzan
      Website: http://www.ihackrobot.blogspot.com
      Abstract: Sketch to control leds using an ethernet shield
================================================================== */



#include <SPI.h>
#include <Ethernet.h>

#define CH1 6
#define CH2 7
#define gLed 8
#define rLed 9

byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };   //Your mac address
byte ip[] = { 192, x, y, z};                      //Your ip address
byte gateway[] = { 192, a, b, c};                   //Your gateaway address
byte subnet[] = { 255, 255, 255, 0 };                  //Your subnet address
EthernetServer server(p);                             //Your server port
String readString;

void setup() {

  Serial.begin(9600);
  pinMode(CH1, OUTPUT); 
  pinMode(CH2, OUTPUT);
  pinMode(gLed, OUTPUT);
  pinMode(rLed, OUTPUT);
 
  //Provide power to both LEDs
   digitalWrite(gLed, HIGH);
   digitalWrite(rLed, HIGH);
  
   //Turn OFF any power to the Relay channels
   digitalWrite(CH1,LOW);
   digitalWrite(CH2,LOW);
   delay(2000);
 
  // start the Ethernet connection and the server:
  Ethernet.begin(mac, ip, gateway, subnet);
  server.begin();
  Serial.print("my server is at ");
  Serial.println(Ethernet.localIP());
}


void loop() {
  // Create a client connection
  EthernetClient client = server.available();
  if (client) {
    while (client.connected()) {  
      if (client.available()) {
        char c = client.read();
    
        //read char by char HTTP request
        if (readString.length() < 100) {
          //store characters to string
          readString = readString + c;
         }
          //if HTTP request has ended
         if (c == '\n') {         
           Serial.println(readString);
    
           client.println("HTTP/1.1 200 OK"); //start of your HTML
           client.println("Content-Type: text/html");
           client.println();    
           client.println("<!DOCTYPE HTML>");
        
           client.println("<HTML>");
           client.println("<HEAD>");
          client.println("<TITLE>iHackLab</TITLE>");
           client.println("</HEAD>");
           client.println("<BODY bgcolor='#ff4d4d'>");
           client.println("<center>");
           client.println("<H1>IHackLab Homotronics Website</H1>");
           client.println("<hr />");
           client.println("<br />"); 
           client.println("<H2>Automation using Arduino Ethernet Shield</H2>");
           client.println("<br />"); 
           client.println("<a href=\"/stp\"\">Deactivate</a><br />");
           client.println("<br />");    
           client.println("<br />");
           client.println("<a href=\"/one\"\">Activate Relay 1</a><br />");
              client.println("<br />");  
               client.println("<br />"); 
           client.println("<a href=\"/two\"\">Activate Relay 2</a><br />");  
           client.println("<br />");
            client.println("<br />"); 
           client.println("<a href=\"/bth\"\">Activate Both Relays 1, 2</a><br />");
              client.println("<br />");  
               client.println("<br />"); 
          
           client.println("<br />");  
           client.println("<br />");
           client.println("<hr />");
        
            client.println("<a href=\"/http://www.myarduinosketchbook.blogspot.com\"\">www.myarduinosketchbook.blogspot.com</a><br />");

           client.println("<hr />");
           client.println("<br />");
             client.println("</center>");
           client.println("</BODY>");
           client.println("</HTML>");   //end of your HTML
    
           delay(1);
           //stopping client
           client.stop();
          
           if (readString.indexOf("one") >0){
               Serial.println("Relay 1");
        digitalWrite(CH1, HIGH);
       delay(1000);
        //digitalWrite(CH1, LOW);
        //delay(1000);
   
        
           }
           if (readString.indexOf("two") >0){
                Serial.println("Relay 2");
       digitalWrite(CH2, HIGH);
       delay(1000);
      //  digitalWrite(CH2, LOW);
      //  delay(1000);
           }
           if (readString.indexOf("bth") >0){
                 Serial.println("Relays 1,2");
        digitalWrite(CH1, HIGH);
       // delay(1000);
        //digitalWrite(CH1, LOW);
       // delay(1000);
        digitalWrite(CH2, HIGH);
        delay(1000);
       // digitalWrite(CH2, LOW);
       // delay(1000);
           }
           if (readString.indexOf("stp") >0){
               Serial.println("Deactivate");
         digitalWrite(CH1,LOW);
         digitalWrite(CH2,LOW);
         digitalWrite(gLed, LOW);
         digitalWrite(rLed, LOW);
         delay(1000);
           }
           
            readString=""; 
          
         }
       }
    }
}
}

No comments:

Post a Comment