Citation preview

ARDUINO COMO SERVIDOR WEB Montando un servidor web con Arduino

Home (Https://Www.Prometec.Net)



Arduino Como Servidor Web

OBJETIVOS    

  Montar un circuito con un DHT11 y un Shield Ethernet.  Crear un servidor Web.  Mostrar un código básico HTML para publicar los valores del sensor, que nos sirva como armazón para nuestros proyectos.

 

MATERIAL REQUERIDO.

9.60€

+ IVA ARDUINO UNO REV 3 (https://www.prometec.net/producto/arduinouno/)

Añadir al carrito (/webserver/? add-tocart=4998) 

12.00€

Out of Stock

+ IVA

ETHERNET SHIELD (https://www.prometec.net/producto/ethernetshield/)

Leer más (https://www.prometec.net/producto/ethernetshield/)

2.00€

+ IVA

4.50€

+ IVA PROTOBOARD 830 PINES320. (https://www.prometec.net/producto/protoboard-

KIT DE RESISTENCIAS VARIADAS (https://www.prometec.net/producto/kit-

830/)

de-resistencias-

Añadir al carrito (/webserver/? add-tocart=8828)

variadas/)



Añadir al carrito (/webserver/? add-tocart=8361) 

 

2.00€

2.90€

+ IVA DHT11 SENSOR (https://www.prometec.net/producto/dht11sensor-temperaturay-humedad/)

Añadir al carrito (/webserver/? add-tocart=8677) 

 

CIRCUITO DE PRUEBA

+ IVA

CABLES DUPONT HEMBRAHEMBRA (https://www.prometec.net/producto/cablesdupont-hembrahembra/)

Añadir al carrito (/webserver/? add-tocart=8652) 

  la sesión previa, vimos como conectarnos a la red local y salir a consultar una página Web externa. Es decir ser clientes de internet para conseguir recoger alguna información de la red. Pero en muchas ocasiones, es muy práctico publicar el resultado de unos sensores en la web para poder consultarlos en remoto. En esta sesión sesión veremos cómo publicar estos valores con nuestro Arduino y el Shield Ethernet mediante un servidor web. Para ello montaremos un pequeño circuito similar al de la sesión Sensores de temperatura DHT11 (https://www.prometec.net/sensores-dht11/) y publicaremos los valores el sensor para poderlos consultar inicialmente desde la red local doméstica. Lo curioso es, que si no necesitáis mostrar páginas web espectaculares, veréis que es mucho más fácil publicar una página web con los valores precisos, como servidor, de lo que es interpretar lo que se recibe de una consulta como cliente. La cantidad de información es mucho menor y el programa para interpretarlo ni siquiera es necesario.  

DIAGRAMAS DEL CIRCUITO   En la sesión previa  Sensores de temperatura DHT11 (https://www.prometec.net/sensores-dht11/) mostramos la descripción del sensor así como un programa de ejemplo para leerlo, por lo que en esta sesión no entraremos a repetir y nos centraremos en la parte que es nueva de montar el servidor de páginas web. Vamos a incluir aquí, no obstante copia del esquema de conexión, por comodidad, pero que es sumamente simple.

(https://www.prometec.net/wp-content/uploads/2014/10/sesion-23_esquema.jpg)   Simplemente montad el Shield Ethernet sobre vuestro Arduino y después conectad normalmente el sensor al pin D2, junto con tensión y ground.  

 No habíamos dicho hasta ahora, que los Shields necesitan comunicarse con Arduino de Alguna manera y por tanto utilizan pines digitales o analógicos para su propia conveniencia, por lo que no podemos usarlos en nuestros montajes.  En el caso del Shield Ethernet, utiliza los pines SPI para comunicarse con Arduino y por ello no podemos usar los pines D11, D12, y D13 en Arduino UNO y los pines D50, D51, D52 en un MEGA, más que para la gestión del bus.

 Además, la mayor parte de las Shields Ethernet incluyen un lector de tarjetas SD o micro SD por lo que otro pin adicional queda reservado. En el UNO suele ser el pin D10 y en el Mega el pin D53 ( Aunque parece que puede modi carse el número de pin al con gurar la librería SD).   Aquí os pongo el esquema de protoboard.

(https://www.prometec.net/wp-content/uploads/2014/10/sesion-23_bb_.jpg)  

EL PROGRAMA DE CONTROL   Vamos a empezar comprobando que todo está en su sitio cargando n de los ejemplos que viene con la librería Ethernet. Se llama Web Server y podéis cargarlo desde \\Archivos\Ejemplos\Ethernet\WebServer

Lo único que hace es crear una página muy sencilla y ponerla en el servidor web para comprobar que las conexiones a la red son correctas. Enseguida volveremos para ver en detalle el funcionamiento del programa. Por ahora solo queremos comprobar que estamos en la red. Ese programa incluye al principio una línea así: IPAddress ip(192, 168, 1, 177);

Que es la dirección IP que asignamos al Shield Ethernet. Si esta dirección os sirve, porque estáis en la misma subred, no tenéis que modi carla, pero en caso contrario aseguraros de ponerle una dirección IP válida para vuestra red como vimos en la sesión anterior. Lo que haceEste programa hace, es mostrar los valores de las puertas analógicas en una página web cuya dirección IP es la que le hemos asignado en el paso anterior.  Naturalmente como no tenemos nada enchufado a estas puertas el resultado que leamos será aleatorio, pero por ahora esto no nos importa.

Vamos a hora a comprobar que podemos leer estos valores. Si usáis un PC, abrid vuestro navegador preferido y escribir en la página de direcciones la IP de vuestro Shield Ethernet. En mi caso es la 192.168.1.177. Deberíais ver algo parecido a esto:

(https://www.prometec.net/wp-content/uploads/2014/11/IMg_62_1.png) Y cada vez que le deis a refrescar la pantalla los valores cambiaran de modo impredecible por su naturaleza aleatoria. (Normalmente se refresca con F5 en un PC). Si veis algo así, entonces ya podemos pasar a cosas más interesantes porque tenemos acceso a Arduino a través de Ethernet. Vamos con el programa. Algunas inclusiones y datos previos: #include

// El shield Etherent usa SPI

#include #include "DHT.h" byte mac[] = {

0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };

IPAddress ip(192,168,1,177); // Poned aqui vuestra IP