martes, 2 de mayo de 2017

Arduino + ESP8266 [Configuración y Server]


Hola queridos Arduineros!!!!
En esta ocasión les mostrare como configurar el modulo Wi-Fi ESP8266 y a montar un pequeño Server el cual podrá interactuar con nuestro modulo, todo esto con por medio de Arduino y su IDE.

Les dejo una breve descripción de el Modulo así como sus características principales.

Descripción

El Módulo Wifi Serial ESP8266 ofrece una solución completa y muy económica para conexión de sistemas a redes Wi-Fi, permitiendo al diseñador delegar todas las funciones relacionadas con Wi-Fi y TCP/IP del procesador que ejecuta la aplicación principal. El módulo wifi serial ESP8266 es capaz de funcionar como “adaptador de red” en sistemas basados en microcontroladores que se comunican con el a través de una interfaz UART.
Se trata posiblemente del módulo wifi serial más económico en el mercado y que además concentra las características mínimas necesarias para poder utilizarse sin problemas, ya que  la documentación en ingles y español de este módulo ya esta siendo desarrollada y comienza a formarse una verdadera comunidad alrededor de el. Usalo como una alternativa barata y confiable para habilitar tus productos y prototipos para la era del Internet de las cosas (IoT).

Características del módulo Wifi Serial ESP8266:

  • Protocolos soportados: 802.11 b/g/n
  • Wi-Fi Direct (P2p), Soft Access Point
  • Stack TCP/IP integrado
  • PLL, reguladores y unidades de manejo de energía integrados
  • Potencia de salida: +19.5dBm en modo 802.11b
  • Sensor de temperatura integrado
  • Consumo en modo de baja energía:menor a 10uA
  • Procesador integrado de 32 bits, puede ser utilizado como procesador de aplicaciones


 Como ven, este es un modulo muy potente por que lo podemos usar sin Arduino por los 2 pines GPIO que tiene incorporados a demás que es muy económico, al rededor de $50 pesos mexicanos.

Aquí el pinOut de el Modulo:

Después de esta breve explicación, vamos con lo interesante... La practica!!!!

Materiales necesarios:
1 Arduino UNO
1 Modulo WiFi ESP8266 como el de las imágenes anteriores.
1 Led Cualquier color.
Cables para conexión
Y tener conexión WiFi!!!

Para configurar el modulo la primera vez vamos a utilizar el Arduino como si fuera un convertidor USB a TTL (en caso de que lo tuvieran lo puede usar) para esto vamos a conectarlo como se los muestro en el siguiente diagrama:
También les dejo una tabla de las conexiones:

ESP8266 Arduino
VCC
3.3V
GND
GND
TX
TX
RX
RX
CH-PD
3.3V
GPIO0
GND

Si se pudieron dar cuenta el pin Reset de Arduino lo conectaremos a tierra para "des-habilitar" el microcontrolador y así trabajar solo con la comunicación serial.
Teniendo todas las conexiones echas solo basta con conectar el Arduino a la PC y seleccionar el puerto que se le asigno a el Arduino desde el menú herramientas, y después abrir el Monitor Serial.
Primero tenemos que asegurarnos que el monitor serial este configurado como en la imagen:

Después de configurarlo ya podemos empezar a escribir comandos AT a el modulo ESP8266
Si la comunicación es correcta, al escribir la palabra "AT" nos respondera con un "OK" como se puede apreciar en la imagen anterior.

También les dejo una lista de comandos AT para este modulo:

Para cargar el código a el ESP8266 primero tenemos que "instalarlo" en el IDE de Arduino, a continuación se los explico a detalle:
Vamos a el menu Archivo->Preferencias y veremos esta ventana:
Y en el cuadro te texto de la opción "Gestor de URLs Adicionales de Tarjetas" pondremos esta URL
http://arduino.esp8266.com/stable/package_esp8266com_index.json
Damos clic en Ok, y vamos a el menu Herramientas->Placa->Gestor de Tarjetas.
Para llegar a la siguiente ventana en la cual vamos a escribir en el cuadro de búsqueda "ESP8266" e instalaremos la placa que nos aparezca(en mi caso ya la tengo instalada es por eso que el boton me sale des-habilitado).
Después de que termine de instalarse podemos cerrar la ventana e ir a el menú Herramientas->Placa y al desplazarnos hacia abajo veremos que ya tenemos disponibles las placas de la familia ESP.

Antes de cargar el sketch tenemos que elegir la placa NodeMCU 1.0(ESP-12E Module), la verdad no tengo explicación para esto pero ami me funciona XD, y asegurarnos de tener configurado los siguientes parámetros que se muestran en la imagen siguiente(vienen configurados por default pero no esta de mas darles una revisada):
Aquí el código:



Si no tenemos ningún error veremos esto en el área de consola de el IDE...

Después de llegar a el 100%, tendremos que desconectar el pin GPIO0 de tierra y conectar un Led a el pin GPIO2 de el modulo como se muestra a continuación:
Ahora abrimos el monitor serial y veremos lo siguiente:

Ya solo nos resta ir a la dirección que nos indica para ver la sencilla interfaz de el servidor.
Y aquí un vídeo de el resultado final. Un poco movido pero se puede ver el resultado!!! XD


Eso solo es una muestra de lo que se puede hacer con este modulo, para mejorar esta practica solo tienen que usar su imaginación!!!
Espero les sirva y recuerden dejar sus dudas en los comentarios para poder resolverlas!!
Saludos y hasta la próxima!!!

8 comentarios:

  1. Solo para que me quede mas claro el programa se carga en el modulo WiFi, verdad?

    ResponderBorrar
    Respuestas
    1. Así es, Gerardo.
      En este caso el Arduino solo lo usamos como convertidor Serial!!
      Saludos!!

      Borrar
  2. funcionara para este ? http://www.gearbest.com/transmitters-receivers-module/pp_227651.html


    saludos

    ResponderBorrar
  3. Hola, Sergio.
    Solo asegúrate que acepte comandos AT

    ResponderBorrar
  4. Hola! en caso de que quiera que el ESP le envie datos a Arduino como se podria hacer?

    ResponderBorrar
    Respuestas
    1. Hola Misael.
      Es cuestión de hacer una comunicación serial entre el ESP y Arduino.
      Esta semana haré un tutorial referente a eso!!!
      Saludos

      Borrar
  5. Muchas gracias por el post tan claro.
    En este será el reto para esta semana
    Saludos

    ResponderBorrar
    Respuestas
    1. Gracias por comentar!!
      Cualquier duda comentala para tratar de resolverla.

      Borrar