Automation shield -webserver with w5100

details

Description:

This  project is to drive the automation board remotely. Arduino Nano will be configured as a WebServer providing a html page for viewing and triggering the IOs of the card.

Hardware:

1 – Arduino NANO V3.0
1 – Nano Automation Shield Board, on sale in our online store.
1 – 12V power supply
1 – Shield W5100 – MiniShield or Ethernet Shield
3 – Power switches
3 – 10K resistors
16 – Wires with MODU connectors for project connection Project connections with mini shield

22i

Connection with Ethernet Shield:

23

Automation shield:

24

byte mac [] = { 
  0x90, 0xA2, 0xDA, 0x0D, 0xA6, 0x09}; // physical mac address 
byte ip [] = { 
  192, 168, 0, 177}; // ip in lan 
gateway byte [] = { 
  192, 168, 0, 1}; // internet access via router 
byte subnet [] = { 
  255, 255, 255, 0}; // subnet mask 
EthernetServer server (80); // server port 


#define CHAVE_1 2 
#define CHAVE_2 4 
#define CHAVE_3 7 

#define PIN_RED 3 
#define PIN_GREEN 6 
#define PIN_BLUE 5 

String readString; 

void setup () { 


  Ethernet.begin (mac, ip, gateway, subnet); 
  server.begin (); 
  Serial.begin (9600);

  pinMode (A0, OUTPUT); 
  pinMode (A1, OUTPUT); 
  pinMode (A2, OUTPUT); 
  pinMode (A3, OUTPUT); 

} 

void loop () { 

  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 + = c; 
          //Serial.print(c); 
        } 

        // if HTTP request has ended 
        if (c == '\ n') { 

          Serial.println (readString);
        
          if (readString.indexOf ("? S1Link")> 0) { 
            digitalWrite (A0, HIGH); 
          } 
          if (readString.indexOf ("? S1 Off")> 0) { 
            digitalWrite (A0, LOW); 
          } 

          if (readString.indexOf ("? S2Link")> 0) { 
            digitalWrite (A1, HIGH); 
          } 
          if (readString.indexOf ("? S2 Off")> 0) { 
            digitalWrite (A1, LOW); 
          } 

          if (readString.indexOf ("? S3Link")> 0) { 
            digitalWrite (A2, HIGH); 
          } 
          if (readString.indexOf ("? S3 Off")> 0) { 
            digitalWrite (A2, LOW);


          if (readString.indexOf ("? S4Link")> 0) { 
            digitalWrite (A3, HIGH); 
          } 
          if (readString.indexOf ("? S4 Off")> 0) { 
            digitalWrite (A3, LOW); 
          } 

          if (readString.indexOf ("? red")> 0) { 
            analogWrite (PIN_RED, 255); 
            analogWrite (PIN_GREEN, 0);             
            analogWrite (PIN_BLUE, 0); 
          } 

          if (readString.indexOf ("green")> 0) { 
            analogWrite (PIN_RED, 0); 
            analogWrite (PIN_GREEN, 255);             
            analogWrite (PIN_BLUE, 0); 
          } 

          if (readString.indexOf ("
            analogWrite (PIN_RED, 0); 
            analogWrite (PIN_GREEN, 0);             
            analogWrite (PIN_BLUE, 255); 
          } 

          if (readString.indexOf ("? white")> 0) { 
            analogWrite (PIN_RED, 255); 
            analogWrite (PIN_GREEN, 255);             
            analogWrite (PIN_BLUE, 255); 
          } 


          if (readString.indexOf ("? rgboff")> 0) { 
            analogWrite (PIN_RED, 0); 
            analogWrite (PIN_GREEN, 0);             
            analogWrite (PIN_BLUE, 0); 
          } 

          int S1 = digitalRead (A0); 
          int S2 = digitalRead (A1); 
          int S3 = digitalRead (A2);
          int S4 = digitalRead (A3); 

          int Key1 = digitalRead (KEY_1); 
          int Key2 = digitalRead (KEY_2); 
          int Key3 = digitalRead (KEY_3); 

          int LedR = analogRead (6); 
          int LedG = analogRead (5); 
          int LedB = analogRead (3); 

          client.println (F ("HTTP / 1.1 200 OK")); // send new page 
          client.println (F ("Content-Type: text / html")); 
          client.println (); 

          client.println (F ("<HTML>")); 
          client.println (F ("<HEAD>")); 
          client.println (F ("<link href = 'https: //maxcdn.bootstrapcdn.com/bootstrap/3.3.1/css/bootstrap.min.css' rel = 'stylesheet'
          client.println (F ("</ head>")); 
          client.println (F ("<body>")); 
          client.println (F ("<div class = 'jumbotron'>")); 
          client.println (F ("<command hint"))); 
          client.println (F ("<div class = 'row'>"))); 
          client.println (F ("<div class = 'col-md-10'>")); 
          client.println (F ("<table class = 'table table-bordered'>")); 
          client.println (F ("<tbody>")); 
          // S 1 
          client.println (F ("<tr> <td width = 130px> S 1 -")); 
          if (S1 == HIGH) 
          { 
            client.println (F ("On")); 
            client.println (F ("</ td> <td>"));
            client.println (F ("<a class='btn btn-danger btn-lg'href='?S1Disconnected'> Disconnect </ buttDig>")); 
          } 
          else 
          { 
            client.println (F ("Off")); 
            client.println (F ("</ td> <td>")); 
            client.println (F ("<a class='btn btn-success btn-lg'href='?S1Link'> Connect </ buttLink>"));       
          }       
          client.println (F ("</ td> </ tr>")); 


          // S 2 
          client.println (F ("<tr> <td width = 130px> S 2 -")); 
          if (S2 == HIGH) 
          { 
            client. println (F ("On")); 
            client.println (F ("</ td> <td>"));
            client.println (F ("<a class='btn btn-danger btn-lg'href='?S2Disconnected'> Disconnect </ buttDig>")); 
          } 
          else 
          { 
            client.println (F ("Off")); 
            client.println (F ("</ td> <td>")); 
            client.println (F ("<a class='btn btn-success btn-lg'href='?S2Linked'> Connect </ buttLink>"));       
          }       
          client.println (F ("</ td> </ tr>")); 


          // S 3 
          client.println (F ("<tr> <td width = 130px> S 3 -")); 
          if (S3 == HIGH) 
          { 
            client. println (F ("On")); 
            client.println (F ("</ td> <td>"));
            client.println (F ("<a class='btn btn-danger btn-lg'href='?S3Disconnected'> Disconnect </ buttDig>")); 
          } 
          else 
          { 
            client.println (F ("Off")); 
            client.println (F ("</ b> </ td> <td>"))); 
            client.println (F ("<a class='btn btn-success btn-lg'href='?S3Ligado'> Connect </ buttLigado>"));       
          }       
          client.println (F ("</ td> </ tr>")); 


          // S 4 
          client.println (F ("<tr> <td width = 130px> S 4 -")); 
          if (S4 == HIGH) 
          { 
            client. println (F ("On")); 
            client.println (F ("</ td> <td>"));
            client.println (F ("<a class='btn btn-danger btn-lg'href='?S4Disconnected'> Disconnect </ buttDig>")); 
          } 
          else 
          { 
            client.println (F ("Off")); 
            client.println (F ("</ td> <td>")); 
            client.println (F ("<a class='btn btn-success btn-lg'href='?S4Linked'> Connect </ buttLink>"));       
          }       
          client.println (F ("</ td> </ tr>")); 


          // RGB 
          client.println (F ("<tr> <td> RGB </ td> <td>")); 
          client.println (F ("<a class = 'btn btn-primary btn-lg'

          client.println (F ("<a class='btn btn-success btn-lg' href='?green'> Green </a> & nbsp;"));       
          client.println (F ("<a class='btn btn-default btn-lg'href='?white'> White </a> & nbsp;"));                   
          client.println (F ("<a class='btn btn-link' href='?rgboff'> Shut Down </a> & nbsp;"));                                                           
          client.println (F ("</ td> </ tr>")); 




          client.println (F ("<tr> <td colspan = 2> Key 1 -")); 
          if (Key1 == HIGH) 
          { 
            client.println (F ("<span class = 'glyphicon glyphicon-ok-circle'   



            client.println (F ("<span class = 'glyphicon glyphicon-ban-circle' aria-hidden = 'true'> </ span>"));   
          } 

          client.println (F ("<br>"));     

          client.println (F ("Key 2 -")); 
          if (Key2 == HIGH) 
          { 
            client.println (F ("<span class = 'glyphicon glyphicon-ok-circle' aria-hidden = 'true'> </ span>"));   
          } 
          else 
          { 
            client.println (F ("<span class = 'glyphicon glyphicon-ban-circle' aria-hidden = 'true'> </ span>"));   
          } 


          client.println (F ("<br>"));     
          client.println (F ("Key 3 -")); 

          if (Key3 == HIGH) 
          {
            client.println (F ("<span class = 'glyphicon glyphicon-ok-circle' aria-hidden = 'true'> </ span>"));   
          } 
          else 
          { 
            client.println (F ("<span class = 'glyphicon glyphicon-ban-circle' aria-hidden = 'true'> </ span>"));   
          } 

          client.println (F ("<br>"));     
          client.println (F ("<a class='btn btn-link' href='/'> Check status keys </a>"));                                                           
        
        
          client.println (F ("</ td> </ tr>"));           client.println (F ("</ tbody>"));           client. println (F ("</ table>"));           client.println (F ("</ div>"));           client.println (F ("</ body>"));
        
   





          client.println (F ("</ html>")); 

          delay (1); 
          // stopping client 
          client.stop (); 

          // clearing string for next read 
          readString = ""; 

        } 
      } 
    } 
  } 
} 

Demo:

Let’s see a video project with the mini version Shield W5100

And with the Ethernet Shield version for Arduino Uno:

 

Tags: 201802,Arduino Uno,Nano Automation Shield,Ethernet Shield W5100,Power switches.

Author:

 

 

 

Description:

This  project is to drive the automation board remotely. Arduino Nano will be configured as a WebServer providing a html page for viewing and triggering the IOs of the card.

Hardware:

1 – Arduino NANO V3.0
1 – Nano Automation Shield Board, on sale in our online store.
1 – 12V power supply
1 – Shield W5100 – MiniShield or Ethernet Shield
3 – Power switches
3 – 10K resistors
16 – Wires with MODU connectors for project connection Project connections with mini shield

22i

Connection with Ethernet Shield:

23

Automation shield:

24

byte mac [] = { 
  0x90, 0xA2, 0xDA, 0x0D, 0xA6, 0x09}; // physical mac address 
byte ip [] = { 
  192, 168, 0, 177}; // ip in lan 
gateway byte [] = { 
  192, 168, 0, 1}; // internet access via router 
byte subnet [] = { 
  255, 255, 255, 0}; // subnet mask 
EthernetServer server (80); // server port 


#define CHAVE_1 2 
#define CHAVE_2 4 
#define CHAVE_3 7 

#define PIN_RED 3 
#define PIN_GREEN 6 
#define PIN_BLUE 5 

String readString; 

void setup () { 


  Ethernet.begin (mac, ip, gateway, subnet); 
  server.begin (); 
  Serial.begin (9600);

  pinMode (A0, OUTPUT); 
  pinMode (A1, OUTPUT); 
  pinMode (A2, OUTPUT); 
  pinMode (A3, OUTPUT); 

} 

void loop () { 

  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 + = c; 
          //Serial.print(c); 
        } 

        // if HTTP request has ended 
        if (c == '\ n') { 

          Serial.println (readString);
        
          if (readString.indexOf ("? S1Link")> 0) { 
            digitalWrite (A0, HIGH); 
          } 
          if (readString.indexOf ("? S1 Off")> 0) { 
            digitalWrite (A0, LOW); 
          } 

          if (readString.indexOf ("? S2Link")> 0) { 
            digitalWrite (A1, HIGH); 
          } 
          if (readString.indexOf ("? S2 Off")> 0) { 
            digitalWrite (A1, LOW); 
          } 

          if (readString.indexOf ("? S3Link")> 0) { 
            digitalWrite (A2, HIGH); 
          } 
          if (readString.indexOf ("? S3 Off")> 0) { 
            digitalWrite (A2, LOW);


          if (readString.indexOf ("? S4Link")> 0) { 
            digitalWrite (A3, HIGH); 
          } 
          if (readString.indexOf ("? S4 Off")> 0) { 
            digitalWrite (A3, LOW); 
          } 

          if (readString.indexOf ("? red")> 0) { 
            analogWrite (PIN_RED, 255); 
            analogWrite (PIN_GREEN, 0);             
            analogWrite (PIN_BLUE, 0); 
          } 

          if (readString.indexOf ("green")> 0) { 
            analogWrite (PIN_RED, 0); 
            analogWrite (PIN_GREEN, 255);             
            analogWrite (PIN_BLUE, 0); 
          } 

          if (readString.indexOf ("
            analogWrite (PIN_RED, 0); 
            analogWrite (PIN_GREEN, 0);             
            analogWrite (PIN_BLUE, 255); 
          } 

          if (readString.indexOf ("? white")> 0) { 
            analogWrite (PIN_RED, 255); 
            analogWrite (PIN_GREEN, 255);             
            analogWrite (PIN_BLUE, 255); 
          } 


          if (readString.indexOf ("? rgboff")> 0) { 
            analogWrite (PIN_RED, 0); 
            analogWrite (PIN_GREEN, 0);             
            analogWrite (PIN_BLUE, 0); 
          } 

          int S1 = digitalRead (A0); 
          int S2 = digitalRead (A1); 
          int S3 = digitalRead (A2);
          int S4 = digitalRead (A3); 

          int Key1 = digitalRead (KEY_1); 
          int Key2 = digitalRead (KEY_2); 
          int Key3 = digitalRead (KEY_3); 

          int LedR = analogRead (6); 
          int LedG = analogRead (5); 
          int LedB = analogRead (3); 

          client.println (F ("HTTP / 1.1 200 OK")); // send new page 
          client.println (F ("Content-Type: text / html")); 
          client.println (); 

          client.println (F ("<HTML>")); 
          client.println (F ("<HEAD>")); 
          client.println (F ("<link href = 'https: //maxcdn.bootstrapcdn.com/bootstrap/3.3.1/css/bootstrap.min.css' rel = 'stylesheet'
          client.println (F ("</ head>")); 
          client.println (F ("<body>")); 
          client.println (F ("<div class = 'jumbotron'>")); 
          client.println (F ("<command hint"))); 
          client.println (F ("<div class = 'row'>"))); 
          client.println (F ("<div class = 'col-md-10'>")); 
          client.println (F ("<table class = 'table table-bordered'>")); 
          client.println (F ("<tbody>")); 
          // S 1 
          client.println (F ("<tr> <td width = 130px> S 1 -")); 
          if (S1 == HIGH) 
          { 
            client.println (F ("On")); 
            client.println (F ("</ td> <td>"));
            client.println (F ("<a class='btn btn-danger btn-lg'href='?S1Disconnected'> Disconnect </ buttDig>")); 
          } 
          else 
          { 
            client.println (F ("Off")); 
            client.println (F ("</ td> <td>")); 
            client.println (F ("<a class='btn btn-success btn-lg'href='?S1Link'> Connect </ buttLink>"));       
          }       
          client.println (F ("</ td> </ tr>")); 


          // S 2 
          client.println (F ("<tr> <td width = 130px> S 2 -")); 
          if (S2 == HIGH) 
          { 
            client. println (F ("On")); 
            client.println (F ("</ td> <td>"));
            client.println (F ("<a class='btn btn-danger btn-lg'href='?S2Disconnected'> Disconnect </ buttDig>")); 
          } 
          else 
          { 
            client.println (F ("Off")); 
            client.println (F ("</ td> <td>")); 
            client.println (F ("<a class='btn btn-success btn-lg'href='?S2Linked'> Connect </ buttLink>"));       
          }       
          client.println (F ("</ td> </ tr>")); 


          // S 3 
          client.println (F ("<tr> <td width = 130px> S 3 -")); 
          if (S3 == HIGH) 
          { 
            client. println (F ("On")); 
            client.println (F ("</ td> <td>"));
            client.println (F ("<a class='btn btn-danger btn-lg'href='?S3Disconnected'> Disconnect </ buttDig>")); 
          } 
          else 
          { 
            client.println (F ("Off")); 
            client.println (F ("</ b> </ td> <td>"))); 
            client.println (F ("<a class='btn btn-success btn-lg'href='?S3Ligado'> Connect </ buttLigado>"));       
          }       
          client.println (F ("</ td> </ tr>")); 


          // S 4 
          client.println (F ("<tr> <td width = 130px> S 4 -")); 
          if (S4 == HIGH) 
          { 
            client. println (F ("On")); 
            client.println (F ("</ td> <td>"));
            client.println (F ("<a class='btn btn-danger btn-lg'href='?S4Disconnected'> Disconnect </ buttDig>")); 
          } 
          else 
          { 
            client.println (F ("Off")); 
            client.println (F ("</ td> <td>")); 
            client.println (F ("<a class='btn btn-success btn-lg'href='?S4Linked'> Connect </ buttLink>"));       
          }       
          client.println (F ("</ td> </ tr>")); 


          // RGB 
          client.println (F ("<tr> <td> RGB </ td> <td>")); 
          client.println (F ("<a class = 'btn btn-primary btn-lg'

          client.println (F ("<a class='btn btn-success btn-lg' href='?green'> Green </a> & nbsp;"));       
          client.println (F ("<a class='btn btn-default btn-lg'href='?white'> White </a> & nbsp;"));                   
          client.println (F ("<a class='btn btn-link' href='?rgboff'> Shut Down </a> & nbsp;"));                                                           
          client.println (F ("</ td> </ tr>")); 




          client.println (F ("<tr> <td colspan = 2> Key 1 -")); 
          if (Key1 == HIGH) 
          { 
            client.println (F ("<span class = 'glyphicon glyphicon-ok-circle'   



            client.println (F ("<span class = 'glyphicon glyphicon-ban-circle' aria-hidden = 'true'> </ span>"));   
          } 

          client.println (F ("<br>"));     

          client.println (F ("Key 2 -")); 
          if (Key2 == HIGH) 
          { 
            client.println (F ("<span class = 'glyphicon glyphicon-ok-circle' aria-hidden = 'true'> </ span>"));   
          } 
          else 
          { 
            client.println (F ("<span class = 'glyphicon glyphicon-ban-circle' aria-hidden = 'true'> </ span>"));   
          } 


          client.println (F ("<br>"));     
          client.println (F ("Key 3 -")); 

          if (Key3 == HIGH) 
          {
            client.println (F ("<span class = 'glyphicon glyphicon-ok-circle' aria-hidden = 'true'> </ span>"));   
          } 
          else 
          { 
            client.println (F ("<span class = 'glyphicon glyphicon-ban-circle' aria-hidden = 'true'> </ span>"));   
          } 

          client.println (F ("<br>"));     
          client.println (F ("<a class='btn btn-link' href='/'> Check status keys </a>"));                                                           
        
        
          client.println (F ("</ td> </ tr>"));           client.println (F ("</ tbody>"));           client. println (F ("</ table>"));           client.println (F ("</ div>"));           client.println (F ("</ body>"));
        
   





          client.println (F ("</ html>")); 

          delay (1); 
          // stopping client 
          client.stop (); 

          // clearing string for next read 
          readString = ""; 

        } 
      } 
    } 
  } 
} 

Demo:

Let’s see a video project with the mini version Shield W5100

And with the Ethernet Shield version for Arduino Uno:

 

Tags: 201802,Arduino Uno,Nano Automation Shield,Ethernet Shield W5100,Power switches.

Author:

 

 

 

COMMENTS

Please Login to comment
  Subscribe  
Notify of