Ethernet-Switching - met Arduino (2 / 5 stap)

Stap 2: Ethernet schakelen - met Arduino - programma


//Ethernet switch
//
Intro:
Dit zal swich in- en uitschakelen uitgangen via uw mobiele apparaat.
Geen afbeeldingen of koppelingen naar afbeeldingen. CSS3 en HTML5 gebruik.
Hoewel het werken met andere webbrowser, suggereren we Safari voor de beste ervaring.
//
Versie: Web Server Ethernet schakelen versie 3,05
Auteur: Claudio Vella - Malta
Eerste code uit: http://bildr.org/2011/06/arduino-ethernet-pin-control/
Veel opmerkingen gemaakt voor beginners.

ARDUINO 1.0 + ALLEEN

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

////////////////////////////////////////////////////////////////////////
CONFIGUREREN
////////////////////////////////////////////////////////////////////////

Handmatige IP-instellingen
byte ip [] = {192, 168, 1, 177};   Handmatige installatie alleen
byte gateway [] = {192, 168, 1, 254}; Handmatige installatie alleen
byte subnet [] = {255, 255, 255, 0}; Handmatige installatie alleen

Als wilt wijzigen het MAC-adres (zeer zeldzaam)
byte mac [] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED};

Ethernet-poort
EthernetServer server = EthernetServer(80); HTML-standaardpoort 80

Het aantal uitgangen gonna worden geschakeld.
int outputQuantity = 8;  Wanneer toegevoegd aan outputLowest resultaat mag niet hoger zijn dan 10

De laagste uitvoer pin die wij vanaf
int outputLowest = 2;    Moet tussen 2 tot en met 9
////////////////////////////////////////////////////////////////////////

Variabelen declareren
int outp = 0;
Boole printLastCommandOnce = false;
Boole printButtonMenuOnce = false;
Boole initialPrint = waar;
AllOn string = "";
AllOff koord = "";
lezing van Boole = vals;
Booleaanse readInput [10]; Een Boole-array voor de maximale ammount maken.

Begin van het programma
VOID Setup {}
Serial.begin(9600);

Pinnen 10,11,12 en 13 worden gebruikt door de ethernet-shield
Set pinnen als uitgang
voor (int var = outputLowest; var < outputLowest + outputQuantity; var ++) {}
pinMode (var, OUTPUT);
}

Instellen van het IP-adres. Commentaar uit de die je niet nodig.
Ethernet.begin(Mac); voor DHCP-adres. (Adres zal worden afgedrukt op seriële.)
Ethernet.begin (mac, IP-gateway, subnet); voor handmatige installatie. (Adres is enerzijds boven geconfigureerd.)

server.begin();
Serial.println(Ethernet.localIP());
}

void loop {}

luisteren voor clients voor inkomende en verwerken van de aanvragen.
checkForClient();
}

ongeldig checkForClient() {}

EthernetClient client = server.available();

Als (client) {}

een http-verzoek eindigt met een lege regel
Boole currentLineIsBlank = waar;
Boole sentHeader = false;

terwijl (client.connected()) {}
Als (client.available()) {}

if(!sentHeader) {}
verzenden van een standaard http-antwoordheader
client.println ("HTTP/1.1 200 OK");
client.println ("Content-Type: text/html");
client.println ("Connnection: sluiten");
client.println();
client.println ("<! HTML DOCTYPE > ");
client.println ("< head >");

paginatitel toevoegen
client.println ("< titel > Ethernet-Switching op </title >");
client.println ("< metanaam = \"beschrijving\"content = \"Ethernet Switching\"/ >");

een meta-tag vernieuwen, zodat de browser opnieuw om de 5 seconden trekt toevoegen
client.println ("< meta http-equiv = \"refresh\"content = \" 10; url = / \ ">");

andere browserconfiguratie toevoegen
client.println ("< metanaam = \" apple-mobiele-web-app-capable\ "inhoud = \"yes\">");
client.println ("< meta name=\"apple-mobile-web-app-status-bar-style\ "inhoud = \"default\">");
client.println ("< metanaam = \"viewport\"content = \" Breedte = apparaat-breedte, gebruiker-scalable = no\ "/ >");

invoegen van de gegevens van de stijlen, meestal te vinden in de CSS-bestanden.
client.println ("< stijl type = \" tekst/css\ ">");
client.println("");

Hierdoor wordt ingesteld hoe de pagina eruit ziet grafisch
client.println ("html {hoogte: 100%;}");

client.println ("lichaam {");
client.println ("hoogte: 100%;");
client.println ("marge: 0;");
client.println ("lettertype-familie: helvetica, sans-serif;");
client.println ("- webkit-tekst-size-adjust: none;");
client.println("}");
client.println("");
client.println ("lichaam {");
client.println ("- webkit-achtergrond-size: 100% 21px;");
client.println ("background-color: #c5ccd3;");
client.println ("achtergrond-afbeelding:");
client.println ("- webkit-gradient(linear, left top, right top,");
client.println ("kleur-stop(.75, transparent),");
client.println ("kleur-stop(.75, rgba(255,255,255,.1)));");
client.println ("- webkit-achtergrond-size: 7px;");
client.println("}");
client.println("");
client.println (".view {");
client.println ("min-hoogte: 100%;");
client.println ("overloop: Automobiel;");
client.println("}");
client.println("");
client.println (".header-wrapper {");
client.println ("hoogte: 44px;");
client.println ("font-weight: bold;");
client.println ("tekst-schaduw: rgba(0,0,0,0.7) 0 - 1px 0;");
client.println ("border-top: 1px solid rgba(255,255,255,0.6);");
client.println ("border-bottom: 1px solid rgba(0,0,0,0.6);");
client.println ("kleur: #fff;");
client.println ("background-color: #8195af;");
client.println ("achtergrond-afbeelding:");
client.println ("- webkit-gradient(linear, left top, left bottom,");
client.println ("from(rgba(255,255,255,.4)),");
client.println("to(RGBA(255,255,255,.05))),");
client.println ("- webkit-gradient(linear, left top, left bottom,");
client.println ("from(transparent),");
client.println("to(RGBA(0,0,64,.1)));");
client.println ("achtergrond-herhaling: geen-herhaling;");
client.println ("achtergrond-positie: linksboven, linksonder;");
client.println ("- webkit-achtergrond-size: 100% 21px, 100% 22px;");
client.println ("- webkit-vak-sizing: grens-vak;");
client.println("}");
client.println("");
client.println (".header-wrapper h1 {");
client.println ("text-align: midden;");
client.println ("tekengrootte: 20px;");
client.println ("regelafstand: 44px;");
client.println ("marge: 0;");
client.println("}");
client.println("");
client.println (".group-wrapper {");
client.println ("marge: 9px;");
client.println("}");
client.println("");
client.println (".group-wrapper h2 {");
client.println ("color: #4c566c;");
client.println ("tekengrootte: 17px;");
client.println ("regelafstand: 0.8;");
client.println ("font-weight: bold;");
client.println ("tekst-schaduw: 1px #fff 0 0;");
client.println ("marge: 20px 10px 12px;");
client.println("}");
client.println("");
client.println (".group-wrapper h3 {");
client.println ("color: #4c566c;");
client.println ("tekengrootte: 12px;");
client.println ("regelafstand: 1;");
client.println ("font-weight: bold;");
client.println ("tekst-schaduw: 1px #fff 0 0;");
client.println ("marge: 20px 10px 12px;");
client.println("}");
client.println("");
client.println (".group-wrapper tabel {");
client.println ("background-color: #fff;");
client.println ("- webkit-border-radius: 10px;");

client.println ("- moz-border-radius: 10px;");
client.println ("- khtml-border-radius: 10px;");
client.println ("border-radius: 10px;");

client.println ("tekengrootte: 17px;");
client.println ("regelafstand: 20px;");
client.println ("marge: 9px 0 20px;");
client.println ("rand: 1px solid #a9abae;");
client.println ("padding: 11px 3px 12px 3px;");
client.println ("marge-linkerzijde: auto;");
client.println ("marge-rechts: auto;");

client.println ("- moz-transformatie: scale(1);"); Code voor Mozilla Firefox
client.println ("- moz-transformatie-oorsprong: 0 0;");

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

hoe de groene (ON) LED eruit zal zien
client.println (".green-cirkel {");
client.println ("display: block;");
client.println ("hoogte: 23px;");
client.println ("breedte: 23px;");
client.println ("background-color: #0f0;");
client.println ("achtergrondkleur: rgba (60, 132, 198, 0.8);");
client.println ("- moz-border-radius: 11px;");
client.println ("- webkit-border-radius: 11px;");
client.println ("- khtml-border-radius: 11px;");
client.println ("border-radius: 11px;");
client.println ("margin-left: 1px;");

client.println ("achtergrondafbeelding: - webkit-gradiënt (lineair, 0 tot 0%, 0% 90%, van (rgba (46, 184, 0, 0.8)), en (rgba (148, 255, 112,. 9)));
client.println ("rand: 2px solid #ccc;");
client.println ("- webkit-box-shadow: rgba (11 140, 27, 0,5) 0px 10px 16px;");
client.println ("- moz-box-shadow: rgba (11 140, 27, 0,5) 0px 10px 16px; / * FF 3.5 + * / ");
client.println ("box-shadow: rgba (11 140, 27, 0,5) 0px 10px 16px; / * FF 3.5 + * / ");

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

hoe de zwarte (uit) LED eruit zal zien
client.println (".black-cirkel {");
client.println ("display: block;");
client.println ("hoogte: 23px;");
client.println ("breedte: 23px;");
client.println ("background-color: #040;");
client.println ("- moz-border-radius: 11px;");
client.println ("- webkit-border-radius: 11px;");
client.println ("- khtml-border-radius: 11px;");
client.println ("border-radius: 11px;");
client.println ("margin-left: 1px;");
client.println ("- webkit-box-shadow: rgba (11 140, 27, 0,5) 0px 10px 16px;");
client.println ("- moz-box-shadow: rgba (11 140, 27, 0,5) 0px 10px 16px; / * FF 3.5 + * / ");
client.println ("box-shadow: rgba (11 140, 27, 0,5) 0px 10px 16px; / * FF 3.5 + * / ");
client.println("}");
client.println("");

Dit zal de schittering aan beide van de LED's toevoegen
client.println (".glare {");
client.println ("positie: relatief;");
client.println ("top: 1;");
client.println ("links: 5px;");
client.println ("- webkit-border-radius: 10px;");
client.println ("- moz-border-radius: 10px;");
client.println ("- khtml-border-radius: 10px;");
client.println ("border-radius: 10px;");
client.println ("hoogte: 1px;");
client.println ("breedte: 13px;");
client.println ("opvulling: 5px 0;");
client.println ("achtergrondkleur: rgba (200 200 200, 0,25);");
client.println ("achtergrondafbeelding: - webkit-gradiënt (lineair, 0 tot 0%, 0% 95%, van (rgba (255, 255, 255, 0.7)), en (rgba (255, 255, 255, 0)));");
client.println("}");
client.println("");


en ten slotte is dit het einde van de stijl gegevens als een header
client.println ("</style >");
client.println ("</head >");

nu het afdrukken van de pagina zelf
client.println ("< body >");
client.println ("< div class = \"weergave\">");
client.println ("< div class = \" kop-wrapper\ ">");
client.println ("< h1 > Ethernet-Switching op </h1 >");
client.println ("</div >");
client.println ("< div class = \" groep-wrapper\ ">");
client.println ("< h2 > Switch de vereiste output. </h2 >");
client.println();

Dit is voor de arduino voor de bouw van de pagina op de vlieg.
sentHeader = true;
}

char c = client.read();

Als (lezen & & c == ' ') {}
lezen = false;
}

Serial.Print(c);


Als (c == '?') {
lezen = true; vond de?, beginnen met het lezen van de info
}

if(Reading) {}
Als (c == 'H') {outp = 1;}
Als (c == 'L') {outp = 0;}
Serial.Print(c);   afdrukken van de waarde van c bij seriële communicatie
Serial.Print(outp);
Serial.Print('\n');

schakelen (c) {}
Case '2':
Voeg code hier om te starten op 2
triggerPin (2, client, outp);
breken;
Case '3':
Voeg code hier te activeren op 3
triggerPin (3, client, outp);
breken;
Case '4':
Voeg code hier om te starten op 4
triggerPin (4, client, outp);
breken;
Case '5':
Voeg code hier om te starten op 5
triggerPin (5, client, outp);
printHtml(client);
breken;
Case "6":
Voeg code hier om te starten op 6
triggerPin (6, client, outp);
breken;
Case '7':
Voeg code hier om te starten op 7
triggerPin (7, client, outp);
breken;
zaak '8':
Voeg code hier om te starten op 8
triggerPin (8, client, outp);
breken;
Case '9':
Voeg code hier om te starten op 9
triggerPin (9, client, outp);
breken;
}

}

Als (c == '\n' & & currentLineIsBlank) {}
printLastCommandOnce = true;
printButtonMenuOnce = true;
triggerPin (777, client, outp); Oproep om te lezen van input- en print menu. 777 wordt gebruikt niet worden bijgewerkt van alle uitgangen
breken;
}
}
}

Ingestelde variabelen voordat u afsluit
printLastCommandOnce = false;
printButtonMenuOnce = false;

allOn = "";
allOff = "";
client.println ("\n < h3 align = \"center\"> & kopiëren; Auteur - Claudio Vella < br > Malta - oktober - 2012 < / h3 > ");
client.println ("</div > \n </div > \n </body > \n </html >");

delay(1); de web browser tijd geven om te ontvangen van de gegevens
client.stop(); de verbinding sluiten:

}

}

VOID triggerPin (int pin, EthernetClient client, int outp) {}
Op of afschakelen uitgangen, leest de output en de knoppen afdrukken

Uitgangen van de instelling
Als (pin! = 777) {}
if(outp == 1) {}
digitalWrite (pin, hoge);
}
if(outp == 0) {}
digitalWrite (pin, laag);
}
}
Vernieuwen van de lezing van uitgangen
readOutputStatuses();


De knoppen afdrukken
Als (printButtonMenuOnce == true) {}
printHtmlButtons(client);
printButtonMenuOnce = false;
}

}

afdrukken van de HTML-knoppen om over te schakelen aan/uit-kanalen
VOID printHtmlButtons (EthernetClient-client) {}

Start de html-tabel maken
client.println("");
client.println ("< p >");
client.println ("< FORM >");
client.println ("< tabelrand = \"0\"align = \"center\">");

Beginnen met afdrukken knop door de knop
voor (int var = outputLowest; var < outputLowest + outputQuantity; var ++) {}

opdracht set voor alle in-/ uitschakelen
allOn += "H";
allOn += var;
allOff += "L";
allOff += var;


Drukken begin van rij
client.Print ("< tr > \n");

Afdrukken de ON-knoppen
client.Print ("< td >< INPUT TYPE = \"button\"waarde = \" Inschakel - Pin ");
client.Print(var);
client.Print ("\" onClick=\"parent.location='/? H");
client.Print(var);
client.Print ("'\" >< /td > \n ");

Wordt de uit knoppen afgedrukt
client.Print ("< td >< INPUT TYPE = \"button\"waarde = \" Switch OFF - Pin ");
client.Print(var);
client.Print ("\" onClick=\"parent.location='/? L");
client.Print(var);
client.Print ("'\" >< /td > \n ");


Eerste deel van de cirkels of de LED's afdrukken
Als (readInput [var] == true) {}
client.Print ("< td >< div class =" groene-cirkel ' >< div class = 'glare' >< / div >< / div >< /td > \n ");
} else
{
client.Print ("< td >< div class =" zwart-cirkel ' >< div class = 'glare' >< / div >< / div >< /td > \n ");
}


Einde van rij afdrukken
client.Print ("< /tr > \n");
}

Drukt de op alle pinnen knop
client.Print ("< tr > \n < td >< INPUT TYPE = \"button\"waarde = \" zet alle pinnen");
client.Print ("\" onClick=\"parent.location='/?");
client.Print(allOn);
client.Print ("'\" >< /td > \n ");

Drukt de OFF All knop pinnen
client.Print ("< td >< INPUT TYPE = \"button\"waarde = \" Schakel alle pinnen");
client.Print ("\" onClick=\"parent.location='/?");
client.Print(allOff);
client.Print ("'\" >< /td > \n < td >< /td > \n < /tr > \n ");

Sluiten van de tabel en het formulier
client.println ("</table >");
client.println ("</FORM >");
client.println ("< /p >');

}

Het lezen van de Output-statussen
ongeldig readOutputStatuses() {}
voor (int var = outputLowest; var < outputLowest + outputQuantity; var ++) {}
readInput [var] = digitalRead(var);
Serial.Print(readInput[var]);
}

}

Gerelateerde Artikelen

Programmeerbare 8 lussen pedaal switcher met Arduino Mega2560

Programmeerbare 8 lussen pedaal switcher met Arduino Mega2560

laatste update: februari 17 2016Dit is het tweede deel van mijn vorige tutorial over hoe het te doen eenvoudige programable pedalen switcher (of looper) nu met een Arduino MEGA2560 tot 8 Opbergbare lussen op 8 voorinstellingen.Merk op dat het mogelij
Decoderen en verzenden van 433MHz RF codes met Arduino en rc-switch

Decoderen en verzenden van 433MHz RF codes met Arduino en rc-switch

In deze tutorial zal ik u tonen hoe te een Arduino gebruiken voor het decoderen van de signalen van RF afstandsbedieningen, en hen op afstand bedienen van sommige schakelopties lichtnet en een garagedeur opnieuw te sturen.Opmerking: Deze handleiding
Draadloos met Arduino Board iPhone, iPad of iPod Using iArduino App en Ethernet-Shield

Draadloos met Arduino Board iPhone, iPad of iPod Using iArduino App en Ethernet-Shield

deze tutorial zal u met hoe maak je hele setup te controleren uw Arduino Board met toepassing van de iArduino. Om te begrijpen, zullen we gebruik maken van Led en we zullen het aan en uit schakelen met behulp van iArduino app. U krijgt hieruit het id
Slimme huis met Arduino Ethernet-shield en Teleduino (met web app)

Slimme huis met Arduino Ethernet-shield en Teleduino (met web app)

Dit project is een eenvoudige oplossing voor degenen die willen een smart-home-systeem, maar hebben niet een groot budget en de lui die wil niet opstaan uit bed om te schakelen van de verlichting of uitschakelen.Het is ook het project van een middelb
Water meter + Arduino = Aquameterduino!

Water meter + Arduino = Aquameterduino!

Na een slechte waterschade (onze kelder gevuld eigenlijk omhoog terwijl we weg voor meerdere dagen waren), heb ik besloten om te controleren onze waterverbruik voor afwijkingen. Treedt Arduino...Het idee van dit project is om een arduino gebruiken om
Programmering ESP8266 ESP-12E NodeMCU v1.0 met Arduino IDE in draadloze temperatuur logger

Programmering ESP8266 ESP-12E NodeMCU v1.0 met Arduino IDE in draadloze temperatuur logger

Terug in eind 2014 en begin 2015, uw echt kwamdeze handige WiFi Chip ESP8266 (de ESP-01) en moeten vechten onder de inconsistente documentatie uit verschillende bronnen. Vooralsnog uitloper gedocumenteerd hij zijn frustraties (bevindingen) als een in
PuttDuino putt-putt gat met arduino

PuttDuino putt-putt gat met arduino

mijn bedrijf heeft jaarlijkse evenementen waar we allemaal samen te komen voor leuk - om te blazen stoom af en hebben een beetje concurrentie. In het verleden hebben we Softbal en bowling competities. Dit jaar iemand had een bron van inspiratie: elke
Het gebruik van IR-afstandsbedieningen met Arduino (huidige en bijgewerkte)

Het gebruik van IR-afstandsbedieningen met Arduino (huidige en bijgewerkte)

Ik ben moe van deze ingewikkelde tutorials over het gebruik van bepaalde dingen. Ik hou van eenvoudige, gemakkelijk te begrijpen, stap voor stap instructies. Mijn grootste probleem was met IR en POV. Ik heb eindelijk onder de knie hoe u kunt besturen
Gemotoriseerd, geluid reageren Star Wars At-St Bandai Model, met Arduino.

Gemotoriseerd, geluid reageren Star Wars At-St Bandai Model, met Arduino.

Gemaakt van Star Wars bij-St-Model van Bandai.Reageert op geluid en draait zijn hoofd naar toe.Gemaakt met Arduino Nano, een aangepast onderdeel van 3dprinted, microfoons, micro servo.Dit instructable is gemaakt om te delen van de wijzigingen die nod
Bouw je Robot Internet gecontroleerde Video-Streaming met Arduino en Raspberry Pi

Bouw je Robot Internet gecontroleerde Video-Streaming met Arduino en Raspberry Pi

< the Instructable en de code zijn klaar. Geniet van! Laat een reactie met je feedback! >Ik ben (aka LiquidCrystalDisplay / Itay), een 14 jaar oude student van Israël leren in de Max Shein Junior High School voor geavanceerde wetenschap en wiskunde.
Hoe maak je een remote controlled Robotic Hand met Arduino

Hoe maak je een remote controlled Robotic Hand met Arduino

Dit is mijn schoolproject voor het 5de jaar van de middelbare school (ik ben Italiaans, we hebben 5 jaar van de middelbare school).Het bestaat uit een kunstmatige hand gecontroleerd door een handschoen met flex sensoren. De kunstmatige hand reproduce
Hoe maak je een mobiele telefoon en Computer gecontroleerd 3D gedrukte Robot met Arduino - IoBot.

Hoe maak je een mobiele telefoon en Computer gecontroleerd 3D gedrukte Robot met Arduino - IoBot.

Als u op zoek bent naar een manier om een Arduino gebaseerde apparaten te controleren, zal deze instructie u tonen hoe om het te doen door het bouwen van eenvoudige robot.De IoBot kan worden gecontroleerd door mobiel en computer toepassing via LAN of
Switch met de Linkit One Touch

Switch met de Linkit One Touch

In deze instructables ga ik u tonen hoe te maken van een touch-switch met behulp van de Linkit één bestuur. Dit is een Capacitieve touch en niet een resistive touch, zodat u kon om veiligheidsredenen gebruiken of gewoon om te schakelen op de lichten
DIY Facebook notifier met Arduino - Arduino Facebook Notifier (v.0.1.1) - Open Source project

DIY Facebook notifier met Arduino - Arduino Facebook Notifier (v.0.1.1) - Open Source project

voor een eerste keer-project dat is behoorlijk indrukwekkend - Arduino forumlid Apolikamixitos heeft details van zijn open-source notifier van de status van de Facebook gepubliceerd. Het zal u attent maken op nieuwe berichten, berichten of vriendscha