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
Connection with Ethernet Shield:
Automation shield:
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