Lätt grundläggande Arduino Ethernet Controller (4 / 5 steg)
Steg 4:
Webbserver
En enkel webbserver
Krets:
* Ethernet shield bifogas stift 10, 11, 12, 13
*/
//-------------------------------------------------------------------------------------------------------
#include < SPI.h >
#include < Ethernet.h >
Ange en MAC-adress och IP-adressen för din controller nedan.
byte [mac] = {0x90, 0xA2, 0xDA, 0x0D, 0x48, 0xD3};
IP-adressen kommer att bero på ditt lokala nätverk:
tilldela en IP-adress för registeransvarige:
IP-adress ip(192,168,1,20);
IP-adress gateway(192,168,1,1);
IP-adress undernät (255, 255, 255, 0);
Starta servern Ethernet-biblioteket den port du vill använda.
EthernetServer server(8081);
Sträng readString;
//-------------------------------------------------------------------------------------------------------
//-------------------------------------------------
Några extra koder för förklaringen:
Deklarera Pin 8 som en LED eftersom det är vad vi kommer att ansluta lysdioden till. Du kan använda alla andra pin och måste då ändra pin-kod.
int ledde = 8.
//-------------------------------------------------
//-------------------------------------------------------------------------------------------------------
void setup()
{
//-------------------------------------------------
Extra uppsättning upp koden:
pinMode ledde (, OUTPUT); PIN valt att styra
//-------------------------------------------------
//-------------------------------------------------------------------------------------------------------
Aktivera seriella print
Serial.BEGIN(9600);
Starta Ethernet
Ethernet.BEGIN (mac, ip, gateway, undernät);
Server.BEGIN();
Serial.Print ("servern är på");
Serial.println(Ethernet.localIP());
Serial.println ("LED-Controller Test 1.0").
}
//-------------------------------------------------------------------------------------------------------
//-------------------------------------------------------------------------------------------------------
void loop()
{
lyssna efter inkommande klienter
EthernetClient klient = server.available();
om (klient)
{
Serial.println ("ny kund");
samtidigt (client.connected())
{
om (client.available())
{
char c = client.read();
Läs röding av char HTTP-begäran
om (readString.length() < 100)
{
lagra tecken till sträng
readString += c;
Serial.Print(c);
Serial.write(c);
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 HTTP-begäran har avslutats
om (c == "\n") {
Serial.println(readString); skriva ut till seriell monitor för debuging
//--------------------------------------------------------------------------------------------------------
Behövs för att visa webbplatsen:
client.println ("HTTP/1.1 200 OK"); Skicka ny sida
client.println ("Content-Type: text/html");
client.println();
client.println ("< HTML >");
client.println ("< HEAD >");
//--------------------------------------------------------------------------------------------------------
//-------------------------------------------------
Vad visas:
client.println ("< TITLE > Home Automation </TITLE >");
client.println ("< center >");
client.println ("</HEAD >");
client.println ("< BODY >");
client.println ("< H1 > Home Automation </H1 >");
client.println ("< hr/>");
client.println ("< center >");
client.println ("< en href = \" /? lighton\ "\" > slå på ljuset < /a > ");
client.println ("< br/>");
client.println ("< br/>");
client.println ("< en href = \" /? lightoff\ "\" > vända bort ljus < /a >< br/> ");
client.println ("</kropp >");
client.println ("</HTML >");
Delay(1);
stoppa klienten
client.stop();
//-------------------------------------------------
Kod som måste genomföras:
IF(readString.indexOf("?Lighton") > 0) //checks för på
{
digitalWrite 8, hög. ställa in pin 8 hög
Serial.println ("ledde");
}
annat {
IF(readString.indexOf("?lightoff") > 0) //checks för off
{
digitalWrite 8, låg. lågt satt stift 8
Serial.println ("ledde bort");
}
}
Rensa sträng för nästa Läs
readString = "";
de web webbläsare möjlighet att ta emot data
Delay(1);
stänga anslutningen:
client.stop();
Serial.println ("klient disonnected");
}
}
}
}
}
}