Stap 4:
Webserver
Een eenvoudige web-server
Route:
* Ethernet-shield gekoppeld aan pinnen 10, 11, 12, 13
*/
//-------------------------------------------------------------------------------------------------------
#include < SPI.h >
#include < Ethernet.h >
Voer een MAC-adres en het IP-adres voor uw controller hieronder.
byte mac [] = {0x90, 0xA2, 0xDA, 0x0D, 0x48, 0xD3};
Het IP-adres zal afhankelijk van uw lokale netwerk zijn:
een IP-adres toewijzen voor de controller:
IP-adres ip(192,168,1,20);
IP-adres gateway(192,168,1,1);
IP-adres subnet (255, 255, 255, 0);
Initialiseer de Ethernet server-bibliotheek met de poort die u wilt gebruiken.
EthernetServer server(8081);
String readString;
//-------------------------------------------------------------------------------------------------------
//-------------------------------------------------
Eventuele extra codes voor verklaring:
Pin 8 verklaren als een LED, want dat is wat we verbinding maken de LED aan. U kunt elke andere pin en moesten vervolgens wijzigen van de pincode.
int geleid = 8;
//-------------------------------------------------
//-------------------------------------------------------------------------------------------------------
VOID Setup
{
//-------------------------------------------------
Extra Set code:
pinMode led (, uitvoer); PIN geselecteerd besturingselement
//-------------------------------------------------
//-------------------------------------------------------------------------------------------------------
seriële gegevens afdrukken inschakelen
Serial.begin(9600);
Start Ethernet
Ethernet.begin (mac, IP-gateway, subnet);
server.begin();
Serial.Print ("Server is op");
Serial.println(Ethernet.localIP());
Serial.println ("LED Controller Test 1.0");
}
//-------------------------------------------------------------------------------------------------------
//-------------------------------------------------------------------------------------------------------
void loop
{
luisteren voor clients voor inkomende
EthernetClient client = server.available();
Als (client)
{
Serial.println ("nieuwe klant");
terwijl (client.connected())
{
Als (client.available())
{
char c = client.read();
lezen van tekens door voor HTTP-verzoek
Als (readString.length() < 100)
{
Winkel tekens naar tekenreeks
readString += c;
Serial.Print(c);
Serial.write(c);
Als u toegang hebt verkregen tot het einde van de regel (ontvangen een newline
teken) en de regel is leeg, de http-aanvraag is beëindigd,
zodat u kunt een antwoord sturen
Als HTTP-aanvraag is beëindigd
Als (c == '\n') {}
Serial.println(readString); afdrukken op seriële monitor voor debugging
//--------------------------------------------------------------------------------------------------------
Nodig Site wilt weergeven:
client.println ("HTTP/1.1 200 OK"); nieuwe pagina verzenden
client.println ("Content-Type: text/html");
client.println();
client.println ("< HTML >");
client.println ("< HEAD >");
//--------------------------------------------------------------------------------------------------------
//-------------------------------------------------
Wat wordt weergegeven:
client.println ("< titel > 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 ("< een href = \" /? lighton\ "\" > zet op licht < /a > ");
client.println ("< br/>");
client.println ("< br/>");
client.println ("< een href = \" /? lightoff\ "\" > Turn Off Light < /a >< br/> ");
client.println ("</BODY >");
client.println ("</HTML >");
delay(1);
stoppen client
client.stop();
//-------------------------------------------------
Code die moet worden uitgevoerd:
if(readString.indexOf("?LightOn") > 0) //checks voor op
{
digitalWrite (8, hoge); pin 8 hoog ingesteld
Serial.println ("bracht op");
}
else {}
if(readString.indexOf("?lightoff") > 0) //checks voor korting
{
digitalWrite (8, laag); pin 8 laag ingesteld
Serial.println ("opende");
}
}
ontruimen van tekenreeks voor volgende lezen
readString = "";
de web browser tijd geven om te ontvangen van de gegevens
delay(1);
de verbinding sluiten:
client.stop();
Serial.println ("client disonnected");
}
}
}
}
}
}