Arduino Ethernet Shield handledning (4 / 5 steg)
Steg 4: Server
En viktig sak att komma ihåg är att du måste ange din Arduino IP-adress i båda exemplen nedan för dem att arbeta.
Följande kodförändringar på webbsidan serveras utifrån en knapptryckning:
/*
Web Server Demo
möts av Randy Sarafan
En enkel webbserver som ändrar sidan som serveras, utlöst av en knapptryckning.
Krets:
* Ethernet shield bifogas stift 10, 11, 12, 13
* Anslut en knapp mellan stift D2 och 5V
* Ansluta en 10K motstånd mellan stift D2 och marken
Bygger nästan helt på webbservern Tom Igoe och David Mellis
Redigera historia:
skapad 18 Dec 2009
av David A. Mellis
modifierade 4 Sep 2010
av Tom Igoe
*/
#include < SPI.h >
#include < Ethernet.h >
Ange en MAC-adress och IP-adressen för din controller nedan.
IP-adressen kommer att bero på ditt lokala nätverk:
byte [mac] = {0x00, 0xAA, 0xBB, 0xCC, 0xDA, 0x02};
IP-adress ip(191,11,1,1); <<< Ange din IP-adress här!!!
Starta servern Ethernet-biblioteket
med IP-adress och port vill du använda
(port 80 är standard för HTTP):
EthernetServer server(80);
int buttonPress = 1;
void setup()
{
pinMode (2, ingång);
Starta Ethernet-anslutningen och servern:
Ethernet.BEGIN (mac, ip);
Server.BEGIN();
}
void loop()
{
buttonPress = digitalRead(2);
lyssna efter inkommande klienter
EthernetClient klient = server.available();
om (klient) {
en http-förfrågan avslutas med en tom rad
booleska currentLineIsBlank = sant;
samtidigt (client.connected()) {
om (client.available()) {
char c = client.read();
Om du har fått till slutet av raden (fick en newline
karaktär) och raden är tom, http-begäran har avslutats,
så du kan skicka ett svar
om (c == '\n' & & currentLineIsBlank) {
Skicka ett standard http-svarshuvud
client.println ("HTTP/1.1 200 OK");
client.println ("Content-Type: text/html");
client.println();
serverar en annan version av en webbplats beroende på huruvida knappen
ansluten trycks till nåla fast 2.
om (buttonPress == 1) {
client.println ("< cke:html >< cke:body bgcolor = #FFFFFF > ljus! </cke:body >< / cke:html >");
}
annat if (buttonPress == 0) {
client.println ("< cke:html >< cke:body bgcolor = #000000 text = #FFFFFF > DARK! </cke:body >< / cke:html >");
}
bryta;
}
om (c == "\n") {
du börjar en ny rad
currentLineIsBlank = sant;
}
annars om (c! = '\r') {
du har fått ett tecken på den aktuella raden
currentLineIsBlank = false;
}
}
}
de web webbläsare möjlighet att ta emot data
Delay(1);
stänga anslutningen:
client.stop();
}
}
För att göra denna exempelkod fungerar, helt enkelt bifoga en knapp mellan stift D2 och 5V, en 10K motstånd mellan stift D2 och marken och sedan ladda din Arduino IP-adress i din webbläsare. Sidan bör in med en svart bakgrund. Tryck och håll ned knappen och sedan uppdatera webbläsaren sidan. Webbplatsen ska nu läsa med vit bakgrund.
Följande kod lyser upp en LED beroende på den URL som skickas till Arduino:
/*
Web Server Demo
möts av Randy Sarafan
Kan du slå på och av en LED genom att ange olika webbadresser.
Att slå på den:
http://your-IP-address/$ 1
Att stänga av:
http://your-IP-address/$ 2
Krets:
* Ethernet shield bifogas stift 10, 11, 12, 13
* Anslut ledde till stift D2 och lägga den i serie med ett 220 ohm motstånd till jord
Bygger nästan helt på webbservern Tom Igoe och David Mellis
Redigera historia:
skapad 18 Dec 2009
av David A. Mellis
modifierade 4 Sep 2010
av Tom Igoe
*/
#include < SPI.h >
#include < Ethernet.h >
booleska inkommande = 0;
Ange en MAC-adress och IP-adressen för din controller nedan.
IP-adressen kommer att bero på ditt lokala nätverk:
byte [mac] = {0x00, 0xAA, 0xBB, 0xCC, 0xDA, 0x02};
IP-adress ip(191,11,1,1); <<< Ange din IP-adress här!!!
Starta servern Ethernet-biblioteket
med IP-adress och port vill du använda
(port 80 är standard för HTTP):
EthernetServer server(80);
void setup()
{
pinMode (2, utgång);
Starta Ethernet-anslutningen och servern:
Ethernet.BEGIN (mac, ip);
Server.BEGIN();
Serial.BEGIN(9600);
}
void loop()
{
lyssna efter inkommande klienter
EthernetClient klient = server.available();
om (klient) {
en http-förfrågan avslutas med en tom rad
booleska currentLineIsBlank = sant;
samtidigt (client.connected()) {
om (client.available()) {
char c = client.read();
Om du har fått till slutet av raden (fick en newline
karaktär) och raden är tom, http-begäran har avslutats,
så du kan skicka ett svar
läser URL-strängen från $ till första tomt utrymme
om (inkommande & & c == "") {
inkommande = 0;
}
om (c == '$') {
inkommande = 1;
}
Kontroller för URL-strängen $1 eller $2
IF(Incoming == 1) {
Serial.println(c);
om (c == '1') {
Serial.println("on");
digitalWrite (2, hög).
}
om (c == '2') {
Serial.println("off");
digitalWrite (2, låg).
}
}
om (c == "\n") {
du börjar en ny rad
currentLineIsBlank = sant;
}
annars om (c! = '\r') {
du har fått ett tecken på den aktuella raden
currentLineIsBlank = false;
}
}
}
de web webbläsare möjlighet att ta emot data
Delay(1);
stänga anslutningen:
client.stop();
}
}
Att göra detta arbete Anslut positiva ledde till stift D2, och negativa bly i serie med en 220 ohm motstånd till jord.
Om du vill aktivera LED ange detta i din webbläsare:
http://[Din IP-adress här]$1
För att stänga av lampan ange detta i din webbläsare:
http://[Din IP-adress här]$2
Obs: Du bör självklart ersätta [Din IP-adress här] med din IP-adress.