Servidor Web Arduino para el control de leds. En este tutorial aprenderemos a hacer el control de leds mediante el modulo ESP8266 y Arduino con una interfaz, Aprenderemos un poco de programación HTML Y como crear una página web con botones y mandar datos para que el arduino los interprete.
Lo que necesitaremos es:
Lo primero es reconocer los pines de nuestro módulo ESP8266, aquí se muestra una imagen:
Después de conocer un poco nuestro módulo lo siguiente es conectarlo al Arduino:
-De modo que el pin “URXD” este conectado al pin 2 de Arduino.
-El pin “UTXD” este conectado al pin 3 de Arduino.
-El pin “VCC” y “CH_PD” esten conectados al pin “3.3v” de Arduino (no es recomendable conectarlo a “5v” por qué podrían dañarse).
-El pin “GND” este conectado al pin “GND” de Arduino.
aquí se muestra una imagen sobre las conexiones:
Nota: el módulo wifi esp8266 necesita una corriente superior a la que el arduino puede dar que es 50mv por lo que podríamos quitar la corriente al módulo y volverlo a conectar para que arranque y después se estabilizara.
ARDUINO
Después de realizar las respectivas conexiones, pasamos a nuestro PC y abrimos un nuevo sketch de arduino, ahora copeamos y pegamos este código al programa de arduino:
Después de pasar el código, conectamos y lo cargamos al arduino, luego abrimos el monitor serial y nos aseguramos que en la parte de abajo diga “Ambos NL & CR” y en los baudios ”115200 baud” hecho esto ahora cortamos y volvemos a conectar la alimentación del módulo wifi para reiniciarlo y después de unos momentos veremos algo como esto y un poco más abajo la palabra “ready”:
Si no apareciera volver a reiniciar el modulo. Si no se entendiera el mensaje verificar que los baudios del módulo ESP8266 sea “115200 baud” y si no bajar los baudios hasta ver algo legible.
Ahora comenzamos a configurar el modulo, ingresamos en el monitor serial la palabra “AT”.
Y recibiremos un “OK”:
Ahora cambiamos la configuración de los baudios con el siguiente comando “AT+CIOBAUD=9600”:
Después de hacer esto cambiar los baudios de 115200 a 9600 en el código para estabilizar la comunicación con arduino por que podría llegar a tener errores en la comunicación a 115200 baud.
Cambiamos esta parte:
Después probamos este comando “AT+CWMODE?” para ver en qué modo está configurado el modulo, nos respondería con un “+CWMODE: 3” y si no aparece el modo 3 utilizamos el comando “AT+CWMODE=3”:
CONECTANDO A UNA RED WIFI
Después pasamos a revisar nuestras redes WI-FI mediante el comando “AT+CWLAP” y nos mostraría algo como esto:
Ahora nos conectaremos a una red, en mi caso será “FAMILIA TORRES” y claro con su contraseña.
Mediante este comando AT+CWJAP=”FAMILIA TORRES”,”torres150”.
Nos respondería con algo como esto:
Después vemos que dirección “IP” se nos asignó con el comando “AT+CIFSR”.
Y nuestra dirección será la segunda en aparecer (la dirección puede variar) en mi caso es “192.168.15.19”.
Tenemos que recordar esta «IP» o anotarla porque es la que ingresamos en nuestro navegador:
Ahora tenemos que habilitar las conexiones múltiples y habilitar un servidor.
Mediante los comandos «AT+CIPMUX=1» y este otro «AT+CIPSERVER=1,80»:
Después ingresamos la dirección IP del módulo en nuestro navegador:
Ahora como pueden ver si vemos el monitor serial podremos observar que veremos nuestra IP. Luego escribimos un “/” después de la IP luego escriban lo que gusten y en el monitor serial aparecerá lo que escribieron en su navegador por ejemplo “192.168.15.19/abcdefg123” y esto aparecerá en su monitor serial:
CODIGO EN ARDUINO
Ahora descargamos este archivo que contiene el programa de Arduino que utilizaremos: botones_ESP8266. copiamos este código en su Arduino (sin desconectar el módulo wifi y recordando la «IP» sino tendrían que volver a configurar su módulo otra vez).
En el código esta agregado un poco de código HTML lo cual explicaré un poco para saber qué hacen cada línea en el código. Después de cargar el código en el Arduino abrimos en monitor serial e ingresamos la dirección IP y tendríamos una página como esta:
el monitor serias no me da nada, sigue en blanco ????
verifica la velocidad, saludos
Hola que tal, he intentado todos los pasos que nos brindaste y todo bien hasta el momento de abrir la pagina Web, el problema es que no se abre la pagina Web. El monitor Serial da:
+IPD,0,376:GET / HTTP/1.1
Host: 192.xxx.yyy.zz
Connection: keep-alive
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 6.2; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Encoding: gzip, deflate, sdch
Accept-Language: es-ES,es;q=0.8
Pero en la pagina web sale:
La página 192.xxx.yyy.zz no funciona
192.xxx.yyy.zz no ha enviado ningún dato.
Disculpa la pregunta repetida, pensé que no se había enviado esta.
Hola buen dia si verifico la velocidad o vea la parte de la configuracion de la IP
Hola, no se abre la pagina Web. En lugar de esto sale:
La página 192.xxx.yyy.zz no funciona
192.xxx.yyy.zz no ha enviado ningún dato.
¿Por que no cierra todas las etiquetas html?
Muchas gracias por el tutorial me sirvio demasiado la verdad, una pregunta, el modulo se desconfigura si se desconecta a se apaga?
si es asi como es que podemos mantener las configuraciones aunque se desconecte el modulo???
Hola, agradecemos sus comentarios, no debe ocurrir algun problema con ello, en caso de que sucedio favor de comunicarse
Hola pues dejeme decirle, use el modulo estuve haciendo pruebas y vi que por defecto la comunicación en Baudios siempre viene por defecto en 115200 si el modulo se apaga y se vuelve a encender sigue estando en 115200, ahora cuando se configura una velocidad de 9600 baudios el modulo lo acepta y trabaja a esa velocidad, cuando el modulo se apaga y se vuelve a encender la configuracion de 9600 baudios asignada anteriormente se resetea y el modulo vuelve a 115200, es solo una aclaracion que hago nada mas para ayudar a que mas gente vea como funciona el modulo
fuera de todo el tutorial me ayudo
Gracias por la aclaracion y esperemos que pueda ayudar a mas personas
buenas noches, estoy haciendo en proyecto donde lee la temperatura y humedad desde un arduino, lo que quiero hacer es que los valores de las lecturas se visualicen en una aplicación en c#, des mismo modo que desde la aplicación c# pueda enviar datos al arduino, ya tengo el esp8266 pero la verdad no tengo idea de como usarlo, no se si necesito un servidor como intermediario entre el arduino y la aplicación o puedo establecer comunicación directamente?
Hola,
He hecho funcionar el servidor web, pero tengo un problema: Si entro la web del servidor me va bien, pero si cierro el navegador e intento acceder de nuevo me da error y no entra. Es como solo se pudiera acceder una sola vez….
Si abres el monitor serie de arduino me doy cuenta de que intenta «invertir» el pin -539.
¿¿ A alguien más le pasa esto ??
Javier, a mi me ocurre lo mismo. ¿Pudiste solucionarlo?
Lo he «solucionado», y digo esto porque ahora uso un código y módulo distinto (NODEMCU) ya que me ha resultado imposible arreglarlo. Una vez que entra en el bucle while (x1 == 1) no vuelve a salir nunca más, por lo que si cierras el navegador el módulo sigue recibiendo datos, es decir, no cierra el cliente.
Si quieres intentarlo prueba a añadirle al while otra condición más para que siga leyendo datos SOLO cuando el cliente esté activo y además x1==1. Pruébalo y nos cuentas.
Te recomiendo que compres el módulo NODEMCU (este tiene hasta 10 entradas/salidas), es como lo estoy haciendo yo ahora, programando sobre dicho módulo SIN arduino. Lo recibí ayer y de momento estoy haciendo pruebas.
Tambien se puede poner una condicion en el bucle x1==1
if(pinNumber<0){
pinNumber=1;
servidor();
}
C:\Users\mrwn_\Desktop\sketch_aug01a\Wifi\Wifi\Wifi2\Wifi2.ino: In function ‘void loop()’:
C:\Users\mrwn_\Desktop\sketch_aug01a\Wifi\Wifi\Wifi2\Wifi2.ino:23:21: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
if(BT1.find(«+IPD,»))
^
Hola me da este error por favor me pueden ayudar.
lo he intentedo una y otra ves y nada legue a la conclusion de que el modulo todavia tiene errores
no funciona esos codigos. solo funciona los comandos at y nada mas pero cuando cargo el codigo al arduino ya no manda ni señal
Hola que tal, he buscado corregir el error pero realmente no se cual es, al momento de presionar cualquiera de los botones me da un balor de 24, el primero y los siguientes me dan valores de 10 en 10, a lo que me refiero es 24,34,44,54, ayuda por favor!