Vous êtes sur la page 1sur 41

Crear Servidor Web con Arduino – DIYMakers http://diymakers.

es/crear-servidor-web-con-arduino/

1 de 41 2/03/2017 9:29 a.m.


Crear Servidor Web con Arduino – DIYMakers http://diymakers.es/crear-servidor-web-con-arduino/

2 de 41 2/03/2017 9:29 a.m.


Crear Servidor Web con Arduino – DIYMakers http://diymakers.es/crear-servidor-web-con-arduino/

GET / HTTP/1.1
Host: 192.168.1.100 (dirección IP del servidor)
Accept: text/html
User-Agent: Mozilla/5.0 (Windows) (Navegador y sistema operativo)
[Línea en blanco]

HTTP/1.1 200 OK
Date: Sun, 25 Des 2014 17:42:10 GMT
Content-Type: text/html
<html>
<!-- código HTML -->
</html>

3 de 41 2/03/2017 9:29 a.m.


Crear Servidor Web con Arduino – DIYMakers http://diymakers.es/crear-servidor-web-con-arduino/

4 de 41 2/03/2017 9:29 a.m.


Crear Servidor Web con Arduino – DIYMakers http://diymakers.es/crear-servidor-web-con-arduino/

5 de 41 2/03/2017 9:29 a.m.


Crear Servidor Web con Arduino – DIYMakers http://diymakers.es/crear-servidor-web-con-arduino/

1
2 EthernetClient client = server.available(); //Creamos un cliente Web
3 //Cuando detecte un cliente a través de una petición HTTP
4 if (client) {
5 boolean currentLineIsBlank = true; //Una petición HTTP acaba con una línea en blanco
6 while (client.connected()) {
7 if (client.available()) {
8 char c = client.read();//Leemos la petición HTTP carácter por carácter
9 Serial.write(c);//Visualizamos la petición HTTP por el Monitor Serial
10
11 //Cuando reciba una línea en blanco, quiere decir que la petición HTTP ha acabado y
12 //el servidor Web está listo para enviar una respuesta
13 if (c == '\n' && currentLineIsBlank)
14 {
15 //Código HTML
}

1
client.println("<button onClick=location.href='./?LED=ON\' style='margin:auto;background-color

6 de 41 2/03/2017 9:29 a.m.


Crear Servidor Web con Arduino – DIYMakers http://diymakers.es/crear-servidor-web-con-arduino/

1
2 EthernetClient client = server.available(); //Creamos un cliente Web
3 //Cuando detecte un cliente a través de una petición HTTP
4 if (client) {
5 boolean currentLineIsBlank = true; //Una petición HTTP acaba con una línea en blanco
6 String cadena=""; //Creamos una cadena de caracteres vacía
7 while (client.connected()) {
8 if (client.available()) {
9 char c = client.read();//Leemos la petición HTTP carácter por carácter
10 Serial.write(c);//Visualizamos la petición HTTP por el Monitor Serial
cadena.concat(c);//Unimos el String 'cadena' con la petición HTTP (c). De esta manera

1
2 //Ya que hemos convertido la petición HTTP a una cadena de caracteres, ahora podremos buscar
3 int posicion=cadena.indexOf("LED="); //Guardamos la posición de la instancia "LED=" a la vari
4
5 if(cadena.substring(posicion)=="LED=ON")//Si a la posición 'posicion' hay "LED=ON"
6 {
7 digitalWrite(led,HIGH);
8 estado="ON";
9 }
10 if(cadena.substring(posicion)=="LED=OFF")//Si a la posición 'posicion' hay "LED=OFF"
11 {
12 digitalWrite(led,LOW);
13 estado="OFF";
}

7 de 41 2/03/2017 9:29 a.m.


Crear Servidor Web con Arduino – DIYMakers http://diymakers.es/crear-servidor-web-con-arduino/

8 de 41 2/03/2017 9:29 a.m.


Crear Servidor Web con Arduino – DIYMakers http://diymakers.es/crear-servidor-web-con-arduino/

1
2 /*
3 www.diymakers.es
4 by A.García & M.García
5 Crear servidor Web con Arduino
6 Tutorial en: http://diymakers.es/crear-servidor-web-con-arduino/ (http://diymakers.es/crea
7 */
8
9 #include <SPI.h> //Importamos librería comunicación SPI
10 #include <Ethernet.h> //Importamos librería Ethernet
11
12 byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };//Ponemos la dirección MAC de la Etherne
13 IPAddress ip(192,168,1,100); //Asingamos la IP al Arduino
14 EthernetServer server(80); //Creamos un servidor Web con el puerto 80 que es el puerto HTTP
15
16 int led=6; //Pin del led
17 String estado="OFF"; //Estado del Led inicialmente "OFF"
18
19 void setup()
20 {
21 Serial.begin(9600);
22
23 // Inicializamos la comunicación Ethernet y el servidor
24 Ethernet.begin(mac, ip);
25 server.begin();
26 Serial.print("server is at ");
27 Serial.println(Ethernet.localIP());
28
29 pinMode(led,OUTPUT);
30 }
31
32 void loop()
33 {
34 EthernetClient client = server.available(); //Creamos un cliente Web
35 //Cuando detecte un cliente a través de una petición HTTP
36 if (client) {
37 Serial.println("new client");
38 boolean currentLineIsBlank = true; //Una petición HTTP acaba con una línea en blanco
39 String cadena=""; //Creamos una cadena de caracteres vacía
40 while (client.connected()) {
41 if (client.available()) {
42 char c = client.read();//Leemos la petición HTTP carácter por carácter
43 Serial.write(c);//Visualizamos la petición HTTP por el Monitor Serial
44 cadena.concat(c);//Unimos el String 'cadena' con la petición HTTP (c). De esta maner
45
46 //Ya que hemos convertido la petición HTTP a una cadena de caracteres, ahora podrem
47 int posicion=cadena.indexOf("LED="); //Guardamos la posición de la instancia "LED="
48
49 if(cadena.substring(posicion)=="LED=ON")//Si a la posición 'posicion' hay "LED=ON"
50 {
51 digitalWrite(led,HIGH);
52 estado="ON";
53 }
54 if(cadena.substring(posicion)=="LED=OFF")//Si a la posición 'posicion' hay "LED=OF
55 {
56 digitalWrite(led,LOW);
57 estado="OFF";
58 }

9 de 41 2/03/2017 9:29 a.m.


Crear Servidor Web con Arduino – DIYMakers http://diymakers.es/crear-servidor-web-con-arduino/

59 //Cuando reciba una línea en blanco, quiere decir que la petición HTTP ha acabado y
60 if (c == '\n' && currentLineIsBlank) {
61
62 // Enviamos al cliente una respuesta HTTP
63 client.println("HTTP/1.1 200 OK");
64 client.println("Content-Type: text/html");
65 client.println();
66
67 //Página web en formato HTML
68 client.println("<html>");
69 client.println("<head>");
70 client.println("</head>");
71 client.println("<body>");
72 client.println("<h1 align='center'>DIYMakers</h1><h3 align='center'>LED controla
73 //Creamos los botones. Para enviar parametres a través de HTML se utiliza el met
74 client.println("<div style='text-align:center;'>");
75 client.println("<button onClick=location.href='./?LED=ON\' style='margin:auto;ba
76 client.println("ON");
77 client.println("</button>");
78 client.println("<button onClick=location.href='./?LED=OFF\' style='margin:auto;b
79 client.println("OFF");
80 client.println("</button>");
81 client.println("<br /><br />");
82 client.println("<b>LED = ");
83 client.print(estado);
84 client.println("</b><br />");
85 client.println("</b></body>");
86 client.println("</html>");
87 break;
88 }
89 if (c == '\n') {
90 currentLineIsBlank = true;
91 }
92 else if (c != '\r') {
93 currentLineIsBlank = false;
94 }
95 }
96 }
97 //Dar tiempo al navegador para recibir los datos
98 delay(1);
99 client.stop();// Cierra la conexión
100 }
101 }

10 de 41 2/03/2017 9:29 a.m.


Crear Servidor Web con Arduino – DIYMakers http://diymakers.es/crear-servidor-web-con-arduino/

11 de 41 2/03/2017 9:29 a.m.


Crear Servidor Web con Arduino – DIYMakers http://diymakers.es/crear-servidor-web-con-arduino/

12 de 41 2/03/2017 9:29 a.m.


Crear Servidor Web con Arduino – DIYMakers http://diymakers.es/crear-servidor-web-con-arduino/

13 de 41 2/03/2017 9:29 a.m.


Crear Servidor Web con Arduino – DIYMakers http://diymakers.es/crear-servidor-web-con-arduino/

14 de 41 2/03/2017 9:29 a.m.


Crear Servidor Web con Arduino – DIYMakers http://diymakers.es/crear-servidor-web-con-arduino/

15 de 41 2/03/2017 9:29 a.m.


Crear Servidor Web con Arduino – DIYMakers http://diymakers.es/crear-servidor-web-con-arduino/

16 de 41 2/03/2017 9:29 a.m.


Crear Servidor Web con Arduino – DIYMakers http://diymakers.es/crear-servidor-web-con-arduino/

17 de 41 2/03/2017 9:29 a.m.


Crear Servidor Web con Arduino – DIYMakers http://diymakers.es/crear-servidor-web-con-arduino/

18 de 41 2/03/2017 9:29 a.m.


Crear Servidor Web con Arduino – DIYMakers http://diymakers.es/crear-servidor-web-con-arduino/

19 de 41 2/03/2017 9:29 a.m.


Crear Servidor Web con Arduino – DIYMakers http://diymakers.es/crear-servidor-web-con-arduino/

20 de 41 2/03/2017 9:29 a.m.


Crear Servidor Web con Arduino – DIYMakers http://diymakers.es/crear-servidor-web-con-arduino/

21 de 41 2/03/2017 9:29 a.m.


Crear Servidor Web con Arduino – DIYMakers http://diymakers.es/crear-servidor-web-con-arduino/

22 de 41 2/03/2017 9:29 a.m.


Crear Servidor Web con Arduino – DIYMakers http://diymakers.es/crear-servidor-web-con-arduino/

23 de 41 2/03/2017 9:29 a.m.


Crear Servidor Web con Arduino – DIYMakers http://diymakers.es/crear-servidor-web-con-arduino/

24 de 41 2/03/2017 9:29 a.m.


Crear Servidor Web con Arduino – DIYMakers http://diymakers.es/crear-servidor-web-con-arduino/

25 de 41 2/03/2017 9:29 a.m.


Crear Servidor Web con Arduino – DIYMakers http://diymakers.es/crear-servidor-web-con-arduino/

26 de 41 2/03/2017 9:29 a.m.


Crear Servidor Web con Arduino – DIYMakers http://diymakers.es/crear-servidor-web-con-arduino/

27 de 41 2/03/2017 9:29 a.m.


Crear Servidor Web con Arduino – DIYMakers http://diymakers.es/crear-servidor-web-con-arduino/

28 de 41 2/03/2017 9:29 a.m.


Crear Servidor Web con Arduino – DIYMakers http://diymakers.es/crear-servidor-web-con-arduino/

29 de 41 2/03/2017 9:29 a.m.


Crear Servidor Web con Arduino – DIYMakers http://diymakers.es/crear-servidor-web-con-arduino/

30 de 41 2/03/2017 9:29 a.m.


Crear Servidor Web con Arduino – DIYMakers http://diymakers.es/crear-servidor-web-con-arduino/

31 de 41 2/03/2017 9:29 a.m.


Crear Servidor Web con Arduino – DIYMakers http://diymakers.es/crear-servidor-web-con-arduino/

32 de 41 2/03/2017 9:29 a.m.


Crear Servidor Web con Arduino – DIYMakers http://diymakers.es/crear-servidor-web-con-arduino/

33 de 41 2/03/2017 9:29 a.m.


Crear Servidor Web con Arduino – DIYMakers http://diymakers.es/crear-servidor-web-con-arduino/

34 de 41 2/03/2017 9:29 a.m.


Crear Servidor Web con Arduino – DIYMakers http://diymakers.es/crear-servidor-web-con-arduino/

35 de 41 2/03/2017 9:29 a.m.


Crear Servidor Web con Arduino – DIYMakers http://diymakers.es/crear-servidor-web-con-arduino/

36 de 41 2/03/2017 9:29 a.m.


Crear Servidor Web con Arduino – DIYMakers http://diymakers.es/crear-servidor-web-con-arduino/

37 de 41 2/03/2017 9:29 a.m.


Crear Servidor Web con Arduino – DIYMakers http://diymakers.es/crear-servidor-web-con-arduino/

38 de 41 2/03/2017 9:29 a.m.


Crear Servidor Web con Arduino – DIYMakers http://diymakers.es/crear-servidor-web-con-arduino/

39 de 41 2/03/2017 9:29 a.m.


Crear Servidor Web con Arduino – DIYMakers http://diymakers.es/crear-servidor-web-con-arduino/

40 de 41 2/03/2017 9:29 a.m.


Crear Servidor Web con Arduino – DIYMakers http://diymakers.es/crear-servidor-web-con-arduino/

41 de 41 2/03/2017 9:29 a.m.

Vous aimerez peut-être aussi