Stap 21: Arduino plus ethernet adapter.
< code > / *
Webserver
Een eenvoudige web-server
Route:
* Ethernet-shield gekoppeld aan pinnen oA, 0B 0C, 0D
*/
//——————————————————————————————————-
#include < SPI.h >
#include < Ethernet.h > / / Voer een MAC-adres en een IP-adres voor uw controller hieronder.
byte mac [] = {0 × 90, 0xA2, 0xDA, 0x0D, 0 × 48, 0xD3}; Het IP-adres zal afhankelijk van uw lokale netwerk zijn:
toewijzen van een IP-adres voor de controller: IPAdres ip(192,168,1,17);
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(80);
String readString;
//——————————————————————————————————-
//————————————————-
Eventuele extra codes voor verklaring: / / Pin 8 declareren 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 code instellen:
pinMode led (, uitvoer); PIN geselecteerd voor controle / / — — —-
//——————————————————————————————————-
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) {//store karakters 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 4 hoog ingesteld
Serial.println ("bracht op");
}
else {}
if(readString.indexOf("?lightoff") > 0) //checks voor korting
{
digitalWrite (8, laag); pin 4 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"); }
}
}
}
}
} < / code >