Visita Número  

39129
   

Login Form  

   
   

Ejemplo de uso Modulo WiFi ESP8266

ESP8266_moduloshttp://blog.theinventorhouse.org/wp-content/uploads/2014/12/ESP_modulos-300x168.jpg 300w" sizes="(max-width: 960px) 100vw, 960px" style="border: 1px solid rgb(204, 204, 204); margin: 0.4em auto 2em; clear: both; display: block; max-width: 100%; height: auto; box-sizing: border-box; padding: 6px;">

Esta es la primera parte de nuestra Guía de ESP8266, si deseas verla  completa usa el link

Desde hace tiempo en hackaday se dio a conocer un pequeño modulo wifi chino muy económico, pero con mucho potencial el denominado ESP8266 a causado mucho furor en la comunidad y no me quede con las ganas de mandar pedir un par de estos interesantes módulos que la comunidad a acogido muy bien y a estado desarrollando bastante documentación a base de experimentación.

¿Pero que tiene de especial este modulo?

  • Bajo costo alrededor de $5 Dolares (yo calculo aquí a México llegaran en unos 80 pesos)
  • Fácil uso vía comandos AT
  • Pines GPIO disponibles para programación (puedes encender un led sin requerir un microcontrolador)
  • Liberación del SDK
  • Una gran comunidad que esta experimentando
  • It’s a wireless SoC
  • It has GPIO, I2C, ADC, SPI, PWM and some more
  • It’s running at 80MHz
  • It has a Winbond W25Q40BVNIG SPI flash
  • It’s a RISC architecture
  • The core is a 106micro Diamond Standard core (LX3) made by Tensilica
  • The ESP8266 chip is made by Espressif
  • Modules bearing this chip are made by various manufacturers
  • 802.11 b/g/n protocol
  • Wi-Fi 2.4 GHz, support WPA/WPA2
  • Super small module size (11.5mm x 11.5mm)
  • Integrated 10-bit ADC
  • Integrated TCP/IP protocol stack (ipv4 only at the moment)
  • Integrated TR switch, balun, LNA, power amplifier and matching network Integrated PLL, regulators, and power management units
  • +20dBm output power in 802.11b mode
  • Supports antenna diversity
  • Deep sleep power <10uA, Power down leakage current < 5uA
  • Integrated low power 32-bit MCU
  • SDIO 2.0, SPI, UART, I2C
  • STBC, 1×1 MIMO, 2×1 MIMO
  • A-MPDU & A-MSDU aggregation & 0.4μs guard interval
  • Wake up and transmit packets in < 2ms
  • Standby power consumption of < 1.0mW (DTIM3)
  • Operating temperature range -40C ~ 125C

La semana pasada me llegaron estos módulos, pero no fue hasta el día de ayer por la noche que me puse a jugar, desde hace tiempo he seguido el avance de la documentacion en el foro de la comunidad ESP8266 vi las primeras traducciones del chino al ingles, las primeras “bibliotecas para Arduino”, los primeros proyectos desarrollados y la tan reciente liberación del SDK por parte del fabricante, pero hasta apenas ayer empece a meter mis primeros comandos AT.

Lo primero es identificar que modulo tienes ya que hay varias versiones, la principal diferencia entre uno y otro es la disponibilidad de pines

module_v1

ESP-01 versión 1

ESP8266_module_v2http://blog.theinventorhouse.org/wp-content/uploads/2014/11/ESP8266_module_v2-203x300.png 203w" sizes="(max-width: 371px) 100vw, 371px" style="border: 1px solid rgb(204, 204, 204); margin: 0.4em auto 2em; clear: both; display: block; max-width: 100%; height: auto; box-sizing: border-box; padding: 6px;">

ESP-01 versión 2

En este caso yo tengo la versión 2 del ESP-01 solo tengo el GPIO0 y GPIO2 disponible para controlar, pueden ver otros modelos de en la Wiki y elegir la que mas les convenga o tengan.

Material:

Para hacer las siguientes pruebas yo voy a usar el siguiente material:

  • Arduino Uno
  • Cables Macho- Hembra y Hembra-Macho
  • Convertidor USB-Serial (FTDI) en este caso de Adafruit.
Conexión

Ok, después de identificar nuestro chip hay que ver si funciona, vamos a conectar nuestro chip ATENCION!! el voltaje de alimentación es a 3.3v tener cuidado si no queremos dañar nuestro modulo, en el caso de los pines TX y RX del chip son tolerantes a 5 volts así que bien podemos conectarlo a un Arduino y no tener problemas.

PinNameDescription
1 GND Tierra
2 U0TXD UART0 Transmision (Tolerante a 5 volts)
3 GPIO2 Has internal pull-up
4 CHIP_EN Chip Enable, se activa en alto
5 GPIO0 Has internal pull-up
6 EXT_RSTB External reset signal, active low, has no pull-up? Spurious blue LED activity when attaching a DMM between GND and RST to check voltage.
7 U0RXD UART0 Receive, has internal pull-up (Tolerante a 5v)
8 VDD +3.3V entrada de alimentación

En este caso voy a conectar el chip a los 3.3 volts de alimentación ya que mi adaptador USB-Serial esta trabajando a 5 volts

ESP8266_Serial_basicahttp://blog.theinventorhouse.org/wp-content/uploads/2014/11/ESP8266_Serial_basica-300x175.png 300w" sizes="(max-width: 1024px) 100vw, 1024px" style="border: 1px solid rgb(204, 204, 204); margin: 0.4em auto 2em; clear: both; display: block; max-width: 100%; height: auto; box-sizing: border-box; padding: 6px;">

3.3v ESP8622 —> 3.3v Arduino

GND ESP8622 —> GND Arduino –> GND FTDI

RX ESP8622 —> TX FTDI

TX ESP8622 —> RX FTDI

CH_PD —-> 3.3v Arduino

Al tener todo correctamente y alimentar el circuito al ver en nuestras redes inalambricas nos debe aparecer algo así

ESP8266_1http://blog.theinventorhouse.org/wp-content/uploads/2014/11/ESP8266_1-215x300.png 215w" sizes="(max-width: 284px) 100vw, 284px" style="margin: 0.4em auto 2em; clear: both; display: block; max-width: 100%; height: auto; border: 1px solid rgb(204, 204, 204); box-sizing: border-box; padding: 6px;">

En mi caso al inicio no sabia que el pin CH_PD debía estar en alto, lo tenia al aire y al inicio no me parecía la red inalambrica, después de ponerlo a 3.3 volts funcionó, tener cuidado en esos detalles.

Excelente ya tenemos trabajando nuestro modulo, ahora es momento de tratar de comunicarnos con el por medio de los comados AT, para esto voy a usar el monitor serial que incluye el IDE de Arduino, ustedes pueden usar el que quieran. para saber si nuestro modulo nos escucha tecleamos y enviamos

AT

y debe responder “OK”, para saber la versión de nuestro firmware

AT+GMR

En este caso tenemos la versión 0.9.1

ESP8266_2http://blog.theinventorhouse.org/wp-content/uploads/2014/11/ESP8266_2-300x271.png 300w" sizes="(max-width: 419px) 100vw, 419px" style="margin: 0.4em auto 2em; clear: both; display: block; max-width: 100%; height: auto; border: 1px solid rgb(204, 204, 204); box-sizing: border-box; padding: 6px;">

En mi chip no estaba trabajando muy bien y leí en algunos foros que algunas versiones de firmware tenían este problemas, así que me decidí a flashearlo a la ultima versión de firmware 0.9.2 que encontré en electodragon. (Actualmente ya lo subi a la versión 0.9.3 que ya esta disponible)

Para subir firmware al modulo, configurar los pines de la siguiente manera:

PinLevelDescription
CH_PD High Enables the chip (Habilita chip)
GPIO0 Low Selects UART download boot mode
GPIO2 High Selects UART download boot mode
GPIO15 Low Si esta disponible. Seleccion UART descarga boot mode (modo boot)

En mi caso solo coloqué el GPIO0 a GND y el GPIO2 a 3.3v y volví a alimentar el circuito con eso ya esta el chip en modo boot, para cargar el firmware hay varias herramientas disponibles pero en esta ocasión utilice Flasher del cual les dejo el link mas adelante (actualmente ya estoy utilizando ESPTOOL en linux, también se puede usar en windows).

Seleccionamos la imagen que queremos cargar a nuestro ESP, seleccionamos el COM al que tenemos conectado nuestro FTDI y presionamos el botón de Download

ESP8266_flash1http://blog.theinventorhouse.org/wp-content/uploads/2014/11/ESP8266_flash1-300x164.png 300w" sizes="(max-width: 659px) 100vw, 659px" style="border: 1px solid rgb(204, 204, 204); margin: 0.4em auto 2em; clear: both; display: block; max-width: 100%; height: auto; box-sizing: border-box; padding: 6px;">

Como vemos el programa empieza a borrar y escribir en la memoria del chip y nos indica el porcentaje de avance, ademas cuando a terminado

ESP8266_flash2http://blog.theinventorhouse.org/wp-content/uploads/2014/11/ESP8266_flash2-300x164.png 300w" sizes="(max-width: 658px) 100vw, 658px" style="border: 1px solid rgb(204, 204, 204); margin: 0.4em auto 2em; clear: both; display: block; max-width: 100%; height: auto; box-sizing: border-box; padding: 6px;">

 
 

Ahora que termino apagamos el circuito, desconectamos los GPIO0 y GPIO2, volvemos a energizar el circuito, abrimos nuestro monitor serial enviamos el comando “AT” y recibimos un “OK”, ahora verificamos la versión de nuestro firmware AT+GMR y nos dice que es la 0.9.2 <img src="https://s.w.org/images/core/emoji/72x72/1f600.png" alt="

Pin It
   
   
 x 

Carro vacío
   
   
© Fabio Vega; Calle 16 Bis # 24 A - 39; Tel 5888589. Cel: 3206985182