DIY Webserver med Arduino Mega 2560 (2 / 3 steg)
Steg 2: Koden på arduino
/ * ÄNDRA DETTA TILL DIN EGEN UNIKA VÄRDE. MAC antalet skall vara
* annorlunda från alla andra enheter på nätverket eller om du har
* problem ta emot paket. */
statisk uint8_t mac [] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED};
/ * ÄNDRA DETTA FÖR ATT MATCHA DIN VÄRD NÄTVERK. De flesta hemnätverk är
* det 192.168.0.XXX eller 192.168.1.XXX underintervallet. Plocka en adress
* som inte är i bruk och kommer inte att fördelas automatiskt av
* DHCP från din router. */
statisk uint8_t ip [] = {192, 168, 1, 15};
statisk uint8_t gateway [] = {192, 168, 0, 1};
statisk uint8_t undernät [] = {255, 255, 255, 0};
/ * Detta skapar en instans av webbservern. Genom att ange ett prefix
* för "", alla sidor kommer att roten till servern. */
#define PREFIXET ""
WebServer webserver (PREFIX, 80).
/ * kommandon är funktioner som blir synad av webserver ramen
* de kan läsa alla bokförda data från klienten, och de produktionen till den
* server för att skicka data tillbaka till webbläsaren. */
void helloCmd (WebServer & server, WebServer::ConnectionType typ, char *, bool)
{
/ * denna rad skickar standarden "vi är alla OK" headers tillbaka till den
webbläsare * /
server.httpSuccess();
/ * om vi hantering en GET eller POST, vi kan mata våra uppgifter här.
För en HEAD-begäran stannar vi bara efter mata headers. */
om (typ! = WebServer::HEAD)
{
/ * Detta definierar vissa HTML-text i läsminne aka PROGMEM.
* Detta behövs för att undvika att ha strängen kopieras till våra limited
* mängden RAM-minne. */
P(helloMsg) = "< html >< huvud >< titel > ATMEGA2560 online! < / title >< / capita > "
"< h1 > Hej kompis, detta är ATMEGA2560 ringer! < / h1 >< / html >";
/ * Detta är en speciell form av print som matar ut från PROGMEM * /
server.printP(helloMsg);
}
}
void setup()
{
/ * initiera det Ethernet-kortet * /
Ethernet.BEGIN (mac, ip);
/ * setup våra standardkommandot som ska köras när användaren öppnar
* rotsidan på servern * /
webserver.setDefaultCommand(&helloCmd);
/ * köra samma kommando om du försöker ladda /index.html, en gemensam
* standard namn * /
webserver.addCommand ("index.html" & helloCmd);
Glöm inte att inkludera ethernet, SPI och webserver bibliotek
/ * Starta webbservern * /
webserver.BEGIN();
}
void loop()
{
röding buff [64];
int len = 64;
/ * bearbetar inkommande anslutningar en i taget för alltid * /
webserver.processConnection (buff, & len);
}