martes, 9 de junio de 2015

Desarrollo. Primeros Pasos con el Módulo ESP8266

Módulo WiFi ESP8266.


  • Módulo para comunicación wi-fi.
  • Es pequeño y barato incluye la pila TCP/IP.
  • Diseñado para Internet de las cosas.
  • Puede Configurarse mediante comandos AT .


Características de Funcionamiento.

  • Funciona a 3.3Vcd, es importante que se alimente exactamente con este voltaje, ya que, en las pruebas que realicé, el módulo no funcionaba en absoluto.Además utilicé una fuente externa, como se mencionaba en ciertos blogs, ya que el consumo de corriente excede el que puede suministrar la fuente de la placa de Arduino.
Todas las características y hoja de datos del módulo están en :


La siguiente es una tabla que ejemplifica el consumo de corriente del módulo.

 


Tuve serios problemas al principio para poder hacer funcionar el módulo, ya que se debe colocar una resistencia de 10K Ohms cortocircuitando el pin Vcc y el pin CH_PD, esto es muy importante hacerlo con la resistencia, ya uqe de lo contrario si se hace con un simple cable, el módulo no funciona, esto me llevo mucho tiempo averiguarlo y fue gracias al siguiente video que pude averiguarlo:












Aunque esté en inglés puede verse la conexión que realizó, yo no tuve que conectar el capacitor que muestra.

En los videos se muestra una forma alternativa de hacer funcionar el módulo, con otras herramientas.

Del mismo modo, no utilizaremos los pines GPIO.

En esté caso, yo  me dediqué a usar la configuración del módulo con los comandos AT y la USART de Arduino, para ello me fuí guiando en el siguiente tutorial.



Así es como quedó mi módulo y el Arduino en mis pruebas.



Advertencia!
En algunos otros tutoriales, se comenta que debe ponerse una resistencia en el pin de Recepción del ESP8266 que se conecta al arduino, para no dañarlo, en mi caso omití este paso y no significo dañar el módulo, lo dejo a su consideración.



Instrucciones AT (Attention).


Desarrollados en 1977  por Dennis Hayes.
Interfaz de comunicación con un MODEM para así poder configurarlo y proporcionarle instrucciones, tales como marcar un número de teléfono.

Microcomm y US Robotics, lo universalizan.

No dependen del canal de comunicación a través del cual estas son enviadas, (Serial, infrarrojos, Bluetooth, etc.)

La telefonía móvil GSM también ha adoptado como estándar este lenguaje para poder comunicarse con sus terminales.

Si deseas más información esta en:

http://www.google.com.mx/url?sa=t&rct=j&q=&esrc=s&source=web&cd=3&ved=0CCoQFjACahUKEwivheLDsILGAhUJlIgKHfNLADg&url=http%3A%2F%2Fblog.tec-innovation.org%2Fwp-content%2Fuploads%2F2013%2F07%2FCOMANDOS-AT.doc&ei=rbx2Ve_6BomoogTzl4HAAw&usg=AFQjCNFnjz__K2-EM-seyFnEGQX2y00WwQ&bvm=bv.95277229,d.cGU




Comandos AT específicos para el ESP8266.

Todo el funcionamiento y configuración del módulo se consigue con ayuda de los siguientes comandos:


Comando Descripción Sintaxis Test
Parámetros
AT Test General - - - -
AT+RST Reinicio del módulo - - - -
AT+GMR Chequeo  versión del firmware. - - - -
AT+CWMODE Modo de funcionamiento AT+CWMODE=<mode> AT+CWMODE? AT+CWMODE=? 1= Sta, 2= AP, 3=both, Sta is the default mode of router, AP is a normal mode for devices
AT+CWJAP Conexión como cliente de la wifi local. AT+ CWJAP =<ssid>,< pwd > AT+ CWJAP? - ssid = ssid, pwd = wifi password
AT+CWLAP Muestra las redes disponibles para conectarse. AT+CWLAP


AT+CWQAP Quita el AP. AT+CWQAP - AT+CWQAP=?
AT+ CWSAP Conexión como cliente de la wifi local. AT+ CWSAP= <ssid>,<pwd>,<chl>, <ecn> AT+ CWSAP?
ssid, pwd, chl = channel, ecn = encryption; eg. Connect to your router: AT+CWJAP="www.electrodragon.com","helloworld"; and check if connected: AT+CWJAP?
AT+CWLIF Revisa los clientes conectados directamente en el módulo. AT+CWLIF - -
AT+ CIPSTATUS get the connection status AT+ CIPSTATUS

<id>,<type>,<addr>,<port>,<tetype>= client or server mode
AT+CIPSTART Inicia una conexión TCP o UDP para poder comenzar a mandar mensajes al dispositivo conectado al módulo. 1)single connection (+CIPMUX=0) AT+CIPSTART= <type>,<addr>,<port>; 2) multiple connection (+CIPMUX=1) AT+CIPSTART= <id><type>,<addr>, <port> - AT+CIPSTART=? id = 0-4, type = TCP/UDP, addr = IP address, port= port; eg. Connect to another TCP server, set multiple connection first: AT+CIPMUX=1; connect: AT+CIPSTART=4,"TCP","X1.X2.X3.X4",9999
AT+CIPMODE Establece el modo de transmisión de datos. AT+CIPMODE=<mode> AT+CIPSEND?
0 not data mode, 1 data mode; return "Link is builded"
AT+CIPSEND Envía datos cuando ya existe la conexión con el dispositivo. 1)single connection(+CIPMUX=0) AT+CIPSEND=<length>; 2) multiple connection (+CIPMUX=1) AT+CIPSEND= <id>,<length>
AT+CIPSEND=? eg. send data: AT+CIPSEND=4,15 and then enter the data.
AT+CIPCLOSE close TCP or UDP connection AT+CIPCLOSE=<id> or AT+CIPCLOSE
AT+CIPCLOSE=?
AT+CIFSR Regresa la IP del módulo. AT+CIFSR
AT+ CIFSR=?
AT+ CIPMUX Establece múltiples conexiones. AT+ CIPMUX=<mode> AT+ CIPMUX?
0 for single connection 1 for multiple connection
AT+ CIPSERVER Establece el módulo como servidor. AT+ CIPSERVER= <mode>[,<port> ]

mode 0 to close server mode, mode 1 to open; port = port; eg. turn on as a TCP server: AT+CIPSERVER=1,8888, check the self server IP address: AT+CIFSR=?
AT+ CIPSTO Set the server timeout AT+CIPSTO?
<time>0~28800 in second
+IPD Aparece en el monitor serial cuando se han recibido datos desde la conexión


For Single Connection mode(CIPMUX=0): + IPD, <len>:
For Multi Connection mode(CIPMUX=1): + IPD, <id>, <len>: <data>























Programa para configurar de manera manual los comandos en el módulo.








Con el siguiente programa se ingresan y reciben los mensajes que el módulo regresa cuando se hace la configuración.















En la parte de setup ingrese algunos comandos de configuración básica. Afortunadamente el módulo guarda las configuraciones correctas, por lo que podría configurarse solo una vez correctamente con este programa, si los comandos del setup fallan(desconozco exactamente la causa)Se pueden ingresar manualmente los siguientes comandos de configuración básica sin ponerlos en el setup:

AT+RST
AT+CWMODE=3
AT+CWJAP=”CHARLY”,”CONTRASE”      // Conectar al punto de acceso
AT+CIFSR                          // Para saber mi IP
AT+CIPMUX=1                       // Permitir multiples conexiones
AT+CIPSERVER=1,80             // Arrancar el servidor web en el puerto 80
 AT+CIFSR

Solo basta abrir el navegador y escribir la dirección que el comando AT+CIFSR nos dió en nuestra wifi local.

En el monitor serial aparecerá:




 Otra forma de conectarse al módulo es en el modo de AP, y se configura con el copmando:

AT+CWSAP="arduinoCasa","enableAccess",9,3

Donde :             
AT+CWSAP="ssid","contraseña",canal,encriptación

La dirección generica del modulo en este caso es:
192.168.4.1

Bastará conectarnos a esta nueva red configurada y abrir el navegador para teclear la dirección anterior y en el monitor serial aparecerá algo parecido que en el ejemplo anterior.


Para poder embeber código html y poder mostrar una pagina que reciba los mensajes del módulo se utiliza el siguiente comando:


inicar conexion para mandar mensajes
 AT+CIPSTART=0,"TCP","192.168.2.18",80 

Donde:

AT+CIPSTART=id,"TCP/UDP","IP Destino",puerto

Si el mensaje es:

Escribir:

AT+CIPSEND=0,tamaño del texto Enter
>
<h1>Codigo HTML</h1>








En el navegador aparecerá:























































































2 comentarios:

  1. estoy interesado en tu tema , abra manera de comunicarnos??? o ponernos en contacto?

    ResponderEliminar
    Respuestas
    1. Hola, si claro lo que gustes cualquier duda comentario o sugerencia te dejo mi e-mail unscriptedmoment@gmail.com solo en sunto comentame que eres tu

      Eliminar