Servidor web
En esta práctica montaremos un servidor web con un arduino y
mediante un LM35, mediremos la temperatura de una estancia.
Una vez tenemos los conocimientos necesarios, pasamos al
programa de Arduino. Lo primero que tenemos que hacer es configurar la shield
Ethernet.
Debemos
fijar la la MAC (suele venir en una pegatina en la placa) y la IP de la shield,
esta última debe estar dentro de nuestra red.
La
siguiente instrucción arranca el servidor web en el puerto seleccionado, en
este caso hemos utilizado el 80 que es el predefinido en los ordenadores para
la comunicación HTTP.
Las siguientes instrucciones interesantes son:

Donde iniciamos la comunicación Ethernet y el servidor.
Antes de programar el loop, tenemos que tener en cuenta cómo
vamos a introducir el código HTML que dará formato a nuestra página, dentro del
código de processing. La solución es hacerlo mediante peticiones HTTP.
Para detectar una petición HTTP con el código de Arduino,
primero tendremos que crear un cliente Web. Luego cuando el cliente envié una
petición HTTP al Arduino, este la leerá carácter por carácter a través de una
variable char. Sabiendo que una petición HTTP termina con una línea en blanco,
pondremos una condición que detecte esta línea en blanco para, posteriormente,
enviar la respuesta HTML.
Una vez contemplado este proceso, procedemos:
Cuando reciba una línea en blanco, quiere decir que la
petición HTTP ha acabado y el servidor Web está listo para enviar una respuesta
en código HTML.
Ahora tenemos que entregar una cabecera de texto, con las
reglas de HTML, para que el navegador al otro extremo nos entienda.
Ahora ya podemos introducir el texto HTML que definirá
nuestra página, sabiendo que el otro extremo de la comunicación sabrá
interpretarlo. A continuación se expone un fragmento, a modo de ejemplo:
El programa en su totalidad se puede descargar en el
siguiente enlace, pero el resto no tiene ningún misterio.
Hay que decir que “client” es un puntero a un objeto que
desciende de la clase “stream” de arduino, lo mismo que “serial” o “Ethernet”,
por lo cual tienen propiedades y métodos comunes. De esta forma, podemos usar
un client.print al igual que hacemos con un Serial.print y ambos cumplen con
las mismas reglas.
LM35
El LM35 es un sensor de temperatura digital. A diferencia de
otros dispositivos como los termistores en los que la
medición de temperatura se obtiene de la medición de su resistencia eléctrica,
el LM35 es un integrado con su propio circuito de control, que proporciona una
salida de voltaje proporcional a la temperatura.
La salida del LM35 es lineal con la temperatura,
incrementando el valor a razón de 10mV por cada grado centígrado. El rango de
medición es de -55ºC (-550mV) a 150ºC (1500 mV). Su precisión a temperatura
ambiente es de 0,5ºC.
El esquema eléctrico es el que vemos en la imagen, aunque
por medio se encuentra la shield Ethernet.
La parte del programa que nos leerá, transformará y printará
el resultado es la siguiente:
Configuración del router
Por último, si queremos acceder a nuestro servidor desde una
IP externa a nuestra red, debemos abrir el puerto correspondiente y para la
aplicación concreta.
En mi caso, al tener un router de Telefónica,
debo entrar al portal Alejandra. Con otras compañías este paso es más sencillo,
ya que entrando a la configuración del router (dirección local 192.168.1.0 o
192.168.1.1) se puede hacer directamente.
El puerto que debemos abrir es el 80, para la IP que hemos
definido en el programa.









No hay comentarios:
Publicar un comentario