Arduino Ethernet Shield Tutorial (4 / 5 stap)

Stap 4: Server


u kunt de Arduino Ethernet-shield als webserver te laden van een HTML-pagina of functioneren als een chatserver. U kunt ook het parseren van aanvragen die worden verzonden door een cliënt, zoals een webbrowser. De volgende twee voorbeelden laten zien hoe het te gebruiken om te dienen van de HTML-pagina's, en parseren van URL-tekenreeksen.

Een belangrijk ding in gedachten te houden is dat zul je je Arduino van IP-adres invoeren in beide voorbeelden hieronder in om voor hen te werken.

De volgende wijzigingen in de code de webpagina's geserveerd op basis van een druk op de knop:

 /* Web Server Demo thrown together by Randy Sarafan A simple web server that changes the page that is served, triggered by a button press. Circuit: * Ethernet shield attached to pins 10, 11, 12, 13 * Connect a button between Pin D2 and 5V * Connect a 10K resistor between Pin D2 and ground Based almost entirely upon Web Server by Tom Igoe and David Mellis Edit history: created 18 Dec 2009 by David A. Mellis modified 4 Sep 2010 by Tom Igoe */ #include <SPI.h> #include <Ethernet.h> // Enter a MAC address and IP address for your controller below. // The IP address will be dependent on your local network: byte mac[] = { 0x00, 0xAA, 0xBB, 0xCC, 0xDA, 0x02 }; IPAddress ip(191,11,1,1); //<<< ENTER YOUR IP ADDRESS HERE!!! // Initialize the Ethernet server library // with the IP address and port you want to use // (port 80 is default for HTTP): EthernetServer server(80); int buttonPress = 1; void setup() { pinMode(2, INPUT); // start the Ethernet connection and the server: Ethernet.begin(mac, ip); server.begin(); } void loop() { buttonPress = digitalRead(2); // listen for incoming clients EthernetClient client = server.available(); if (client) { // an http request ends with a blank line boolean currentLineIsBlank = true; while (client.connected()) { if (client.available()) { char c = client.read(); // if you've gotten to the end of the line (received a newline // character) and the line is blank, the http request has ended, // so you can send a reply if (c == '\n' && currentLineIsBlank) { // send a standard http response header client.println("HTTP/1.1 200 OK"); client.println("Content-Type: text/html"); client.println(); //serves a different version of a website depending on whether or not the button //connected to pin 2 is pressed. if (buttonPress == 1) { client.println("<cke:html><cke:body bgcolor=#FFFFFF>LIGHT!</cke:body></cke:html>"); } else if (buttonPress == 0){ client.println("<cke:html><cke:body bgcolor=#000000 text=#FFFFFF>DARK!</cke:body></cke:html>"); } break; } if (c == '\n') { // you're starting a new line currentLineIsBlank = true; } else if (c != '\r') { // you've gotten a character on the current line currentLineIsBlank = false; } } } // give the web browser time to receive the data delay(1); // close the connection: client.stop(); } } 

Om deze voorbeeldcode werken, gewoon het toevoegen van een knop tussen pin D2 en 5V, een 10K Ohm weerstand tussen pin D2 en grond en laadt vervolgens het IP-adres van uw Arduino in uw webbrowser. De pagina moet laden met een zwarte achtergrond. Houd de knop ingedrukt houden, en vernieuw dan de browserpagina. De site moet nu laden met een witte achtergrond.

De volgende code brandt een LED afhankelijk van de URL die is verzonden naar de Arduino:

 /* Web Server Demo thrown together by Randy Sarafan Allows you to turn on and off an LED by entering different urls. To turn it on: http://your-IP-address/$1 To turn it off: http://your-IP-address/$2 Circuit: * Ethernet shield attached to pins 10, 11, 12, 13 * Connect an LED to pin D2 and put it in series with a 220 ohm resistor to ground Based almost entirely upon Web Server by Tom Igoe and David Mellis Edit history: created 18 Dec 2009 by David A. Mellis modified 4 Sep 2010 by Tom Igoe */ #include <SPI.h> #include <Ethernet.h> boolean incoming = 0; // Enter a MAC address and IP address for your controller below. // The IP address will be dependent on your local network: byte mac[] = { 0x00, 0xAA, 0xBB, 0xCC, 0xDA, 0x02 }; IPAddress ip(191,11,1,1); //<<< ENTER YOUR IP ADDRESS HERE!!! // Initialize the Ethernet server library // with the IP address and port you want to use // (port 80 is default for HTTP): EthernetServer server(80); void setup() { pinMode(2, OUTPUT); // start the Ethernet connection and the server: Ethernet.begin(mac, ip); server.begin(); Serial.begin(9600); } void loop() { // listen for incoming clients EthernetClient client = server.available(); if (client) { // an http request ends with a blank line boolean currentLineIsBlank = true; while (client.connected()) { if (client.available()) { char c = client.read(); // if you've gotten to the end of the line (received a newline // character) and the line is blank, the http request has ended, // so you can send a reply //reads URL string from $ to first blank space if(incoming && c == ' '){ incoming = 0; } if(c == '$'){ incoming = 1; } //Checks for the URL string $1 or $2 if(incoming == 1){ Serial.println(c); if(c == '1'){ Serial.println("ON"); digitalWrite(2, HIGH); } if(c == '2'){ Serial.println("OFF"); digitalWrite(2, LOW); } } if (c == '\n') { // you're starting a new line currentLineIsBlank = true; } else if (c != '\r') { // you've gotten a character on the current line currentLineIsBlank = false; } } } // give the web browser time to receive the data delay(1); // close the connection: client.stop(); } } 

Om dit werk steek de positieve stekker een LED aan pin D2, en de negatieve lood in serie met een weerstand van 220 ohm op grond.

De LED Voer dit om in te schakelen in uw browser:
http://[Je IP-adres hier]$1

De LED Voer dit om uit te schakelen in uw browser:
http://[Je IP-adres hier]$2

Nota: U moet uiteraard Vervang [Uw IP-adres hier] met uw IP-adres.

Gerelateerde Artikelen

Voorbeeld van de automatisering van Remote Home - Arduino + Ethernet-Shield

Voorbeeld van de automatisering van Remote Home - Arduino + Ethernet-Shield

opnieuw welkom!In dit Instructable, ik zal detail hoe met verschillende sensoren en items met een internet aangesloten Arduino. Naar mijn mening was dit een erg leuk project samen te stellen en sleutelen! Plus, kreeg ik omhoog borstel op mijn HTML en
WeMo Switch regelen met Arduino + Ethernet-shield

WeMo Switch regelen met Arduino + Ethernet-shield

Er zijn veel apps waarmee u de controle van uw Belkin WeMo -apparaten, maar er is geen een panel schakelaar hardware zoals de Hue Tap voor Philips hue.Dus bouwen ik met een Arduino!Stap 1: materialenVoor dit project heb je het volgende nodig:Een Ardu
Arduino ethernet-shield + advancedHMI, atmega644/1284 kloon + VB NET + MODBUS TCP

Arduino ethernet-shield + advancedHMI, atmega644/1284 kloon + VB NET + MODBUS TCP

Dit project is een manier om controle van een Arduino of mijn kloon Arduino atmega644/1284 via een PC of een mens machine interface aangesloten op de arduino ethernet-shield. U maakt een SCADA-systeem om te bepalen uw systeem vanaf een grote afstand.
Controle van Denon AVR met Arduino + Ethernet-shield

Controle van Denon AVR met Arduino + Ethernet-shield

Aan dit project heb ik het opbouwen van een eenvoudig bedieningspaneel voor mijn Denon AVR (AVR-X4100W).Meeste van Denon A / V-ontvangers zijn netwerk klaar, zodat u hen binnen een web interfase of een app bepalen kunt. Er is geen officiële documenta
Arduino Routing Protocol RIPv1 Spoofer / netwerk Jammer - Ethernet Shield Tutorial

Arduino Routing Protocol RIPv1 Spoofer / netwerk Jammer - Ethernet Shield Tutorial

Dit is een snelle intstructable met één of ander bewijs conceptcode om te laten zien dat routeringsprotocollen kunnen zijn vervalst, met behulp van Arduino. Het ook fungeert als een snelle inleiding tot het gebruik van de ethernet-shield en krijgt je
Arduino cellulaire Shield Tutorial

Arduino cellulaire Shield Tutorial

The Arduino cellulaire Shield kun je cellulaire telefoon bellen en SMS-berichten versturen. De hersenen van dit schild is de SM5100B die is een robuuste cellulaire module staat uit te voeren veel van de taken van de meeste standaard mobiele telefoons
Arduino Motor Shield Tutorial

Arduino Motor Shield Tutorial

The Arduino Motorschild kunt u gemakkelijk bepalen motor richting en snelheid met behulp van een Arduino. Doordat u eenvoudig inspelen op Arduino pinnen, maakt het het zeer eenvoudig om een motor in uw project opnemen. U kunt om het vermogen van een
Online grafieken met niets, maar een Arduino, Ethernet-Shield en Sensor

Online grafieken met niets, maar een Arduino, Ethernet-Shield en Sensor

Tot slot heb ik besloten om enkele van mijn bestaande projecten opgemaakt op instructables. Dit is aangepast van mijn project Super Graphing datalogger.Wat is de Super Graphing Data Logger (SGDL)? Het is een Arduino project dat integreert gegevensreg
TouchOSC en Arduino Ethernet-Shield controle energie (A.M.P.A.E.)

TouchOSC en Arduino Ethernet-Shield controle energie (A.M.P.A.E.)

Dag na dag, mensen gebruik maken van een grote hoeveelheid gadgets en veel energie hebben geen bezorgdheid over het afval. Ons idee is in principe een mobiele toepassing voor tablets en smartphones die de gebruiker een totale controle van alle energi
Slimme huis met Arduino Ethernet-shield en Teleduino (met web app)

Slimme huis met Arduino Ethernet-shield en Teleduino (met web app)

Dit project is een eenvoudige oplossing voor degenen die willen een smart-home-systeem, maar hebben niet een groot budget en de lui die wil niet opstaan uit bed om te schakelen van de verlichting of uitschakelen.Het is ook het project van een middelb
Online Temperatuurbewaking met behulp van Arduino + Ethernet-Shield

Online Temperatuurbewaking met behulp van Arduino + Ethernet-Shield

Hallo, vandaag mij zal uiterlijk vertoon u guy hoe maak je arduino online temperatuurbewaking, dit voorbeeld is web gebaseerde dat betekent dat u kunt verbinden uit anyplace, door combineren AJAX en PHP samen die temperatuur gegevens kunt overbrengen
Arduino Wifly Shield Tutorial

Arduino Wifly Shield Tutorial

er zijn veel dingen die je met je arduino board doen kunt. U kunt bijvoorbeeld, wifi-connectiviteit toevoegen aan uw project. Om dit te doen, moet u een Arduino Wifly RN-131 C schild of een ander type van WiFi schild die kunt u in de markt.Het schild
Draadloos met Arduino Board iPhone, iPad of iPod Using iArduino App en Ethernet-Shield

Draadloos met Arduino Board iPhone, iPad of iPod Using iArduino App en Ethernet-Shield

deze tutorial zal u met hoe maak je hele setup te controleren uw Arduino Board met toepassing van de iArduino. Om te begrijpen, zullen we gebruik maken van Led en we zullen het aan en uit schakelen met behulp van iArduino app. U krijgt hieruit het id
Arduino Nano met Ethernet-Shield

Arduino Nano met Ethernet-Shield

Ik kocht onlangs een Arduino Ethernet-shield voor de Arduino Uno ontworpen, en dacht dat ik kon net gemakkelijk sluit deze dan aan mijn bestaande Arduino Nano. Ik had het mis!Ik kon niet vinden veel informatie helemaal over hoe dit te doen, behalve d