Warning: Declaration of Suffusion_MM_Walker::start_el(&$output, $item, $depth, $args) should be compatible with Walker_Nav_Menu::start_el(&$output, $item, $depth = 0, $args = Array, $id = 0) in /homepages/4/d302049640/htdocs/quenotienes/wordpress/wp-content/themes/suffusion/library/suffusion-walkers.php on line 39
Ago 232015
 

Probando el módulo wifi ESP8266

Últimamente en el mundo DIY se está hablando de un módulo wifi barato y potente que está basado en el chip ESP8266.

esp8266

  

El precio de cada unidad está en alrededor de 5$ y es capaz de comunicarse más allá de los 300 metros usando la antena que viene incorporada en la placa.

Yo he comprado una pareja por menos de 10$ en aliexpress, y en este artículo voy a comentar cómo hacerlo funcionar.

Lo primero que hay que indicar es que funciona a 3,3V. y lo segundo es que se comunica mediante el puerto serie que tiene el módulo. Por ello no se puede conectar directamente a un Arduino que funciona a 5 voltios, así que necesitareis convertir las líneas TX, RX y la alimentción a 3,3V.

El módulo tiene 8 pines repartidos en 2 filas. El esquema de conexiones es este:

conexiones

Hay varias versiones del módulo. En las más recientes será necesario que el pin activar esté puesto a VCC (o una salida digital a 1) para hacerlo funcionar.

Para probar el módulo he usado un conversor usb a serie que funciona a 3,3V. Sin embargo el módulo puede llegar de consumir unos 200mA en algunos momentos por lo que lo he alimentado aparte con un regulador, eso si, uniendo siempre las masas.

montaje

Me he conectado por putty a 115200 bps al puerto serie de conversor y acto seguido he dado alimentación al módulo, con lo que sale el primer mensaje indicándonos que está preparado:

putty1

Todo el comportamiento del módulo se basa en comandos AT, por lo que vamos a inicializarlo con:

putty2El siguiente paso es configurar el tipo de wifi. Para este ejemplo lo configuraré como estación (que es como está por defecto):

Lo siguiente será mostrar una lista de las wifis disponibles:

putty3

Me conectaré a SISTEMASORP con la clave que tengo:

Ahora comprobamos qué IP me ha dado el router:

putty4

Eso significa que hemos conectado con éxito y que ya tenemos una IP.

Mi siguiente paso ha sido crear un script php muy simple en mi servidor web que muestra la cadena Hola seguida de la fecha actual. El objetivo es hacer una llamada al servidor web, hacerle una petición http y que este nos devuelva la cadena mencionada.

Para ello debemos configurar el módulo para que haga una sola conexión (aunque se pueden hacer hasta 5 simultáneas):

Conectamos al servidor web mediante un socket TCP por el puerto 80:

Le indicamos cuántos caracteres le vamos a enviar:

Esto nos mostrará un símbolo >, donde le meteremos la cadena a enviar. Para el ejemplo seguiremos los siguientes pasos en el putty:

  • Copiamos y pegamos GET /prueba.php HTTP/1.0
  • Pulsamos CTRL+M y CTRL+J
  • Copiamos y pegamos Host: sistemasorp.es
  • Pulsamos CTRL+M y CTRL+J y otra vez CTRL+M y CTRL+J

Si todo ha ido bien recibiremos una respuesta +IPD con el número de bytes recibidos, la cabecera http del servidor y la cadena esperada:

putty5

El protocolo http especifica que el socket debe ser cerrado después de enviar la respuesta, por eso vemos un Unlink, si en otro caso queremos cerrar nosotros la conexión, debemos usar el comando:

Hay más funcionalidades que se pueden usar con los comandos AT, aquí una lista de ellos.

Espero que con este ejemplo os sirva para empezar a dar uso a estos módulos wifi tan baratos y funcionales.

Actualización 09/10/2014:

Si se desea enviar y recibir datos en bruto, es decir, sin tener que mediar con la cantidad de bytes del comando AT+CIPSEND y la respuesta IPD, podemos activar el modo de datos con el siguiente comando:

Y cuando queramos enviar y recibir datos, lo hacemos con CIPSEND sin poner los bytes a enviar:

Así entramos en el modo de datos y todo lo que recibe el módulo por el pin RX lo envía por wifi y todo lo que recibe el módulo por wifi lo envía por el pin TX. Para salir de este modo hay que esperar 1 segundo sin enviar nada, enviar la secuencia de escape formada por 3 símbolos más +++ y esperar otro segundo sin enviar nada, momento en el cual volvemos a entrar en el modo de comandos. Este vídeo muestra esa funcionalidad:

En el vídeo por un lado tengo el putty conectado al módulo y por el otro creo un servidor con netcat en el puerto 9000. Cuando entro en modo de datos escribo en la ventana putty Hello, cosa que se ve reflejada en la ventana de netcat. Acto seguido escribo Welcome to ESP8266 en la ventana de netcat y pulso enter (si no netcat no envía nada), para a continuación mostrarse en la ventana de putty. Finalmente copio y pego la secuencia de escape +++ para salir del modo datos al modo comandos (hay que hacerlo rápido, ya que escribiéndolo directamente no me ha salido).

Magical and Enchanted World — Salvapantallas Gratis

Como descargar fotos de un tablero Pinterest (todas).

El copyright de las imágenes pertenece a sus respectivos autores y/o productoras/distribuidoras.

 Leave a Reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

(required)

(required)

Límite de tiempo se agote. Por favor, recargar el CAPTCHA por favor.