Ubuntu och arduino. (21 / 26 steg)
Steg 21: Arduino plus ethernet adapter.
< code > / *
Webbserver
En enkel webbserver
Krets:
* Ethernet shield bifogas pins oA, 0B 0C, 0D
*/
//——————————————————————————————————-
#include < SPI.h >
#include < Ethernet.h > / / Ange MAC-adress och IP-adressen för din controller nedan.
byte [mac] = {0 × 90, 0xA2, 0xDA, 0x0D, 0 × 48, 0xD3}; IP-adressen kommer att bero på ditt lokala nätverk:
tilldela en IP-adress för registeransvarige: IP-adress ip(192,168,1,17);
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(80);
Sträng readString;
//——————————————————————————————————-
//————————————————-
Några extra koder för deklaration: / / förklara stift 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 ställa 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) {//store 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 4 hög
Serial.println ("ledde");
}
annat {
IF(readString.indexOf("?lightoff") > 0) //checks för off
{
digitalWrite 8, låg. lågt satt stift 4
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"); }
}
}
}
}
} < / code >