ESP8266 Módulo WiFi, ¿Qué es y cómo configurar? Pinout y características

¿Qué es el ESP8266 ?

El ESP8266 es un módulo con sistema Wi-Fi en el chip (SoC) desarrollado por el sistema Espressif. Se utiliza principalmente para el desarrollo de aplicaciones integradas en la IOT, Internet de las Cosas. Y es uno de los más usados con Arduino.

Módulo ESP8266

Características de ESP8266

El ESP8266 viene con las siguientes características:

  • Wi-Fi de 2,4 GHz (802.11 b/g/n, compatible con WPA/WPA2)
  • entrada/salida de propósito general (16 GPIO)
  • Protocolo de comunicación serie Inter-Integrated Circuit (I²C)
  • conversión de analógico a digital (ADC de 10 bits)
  • Protocolo de comunicación serie SPI (Serial Peripheral Interface)
  • Interfaces I²S (Inter-IC Sound) con DMA (Direct Memory Access) (compartiendo pines con GPIO)
  • UART (en pines dedicados, más un UART de sólo transmisión que se puede habilitar en la GPIO2)
  • modulación de ancho de pulso (PWM).

El ESP8266 emplea una CPU RISC de 32 bits basada en la Tensilica Xtensa L106 que funciona a 80 MHz (o con overclocking a 160 MHz). Tiene una ROM de arranque de 64 KB, 64 KB de RAM de instrucciones y 96 KB de RAM de datos. Se puede acceder a la memoria flash externa a través de SPI.

El módulo ESP8266 es un transceptor inalámbrico independiente de bajo coste que puede utilizarse para desarrollos de punto final IoT.

Para comunicarse con el módulo ESP8266, el microcontrolador necesita utilizar una serie de comandos AT. El microcontrolador se comunica con el módulo ESP8266-01 utilizando UART con la velocidad de transmisión especificada.

Hay muchos fabricantes de terceros que producen diferentes módulos basados en este chip. Por lo tanto, el módulo viene con diferentes opciones de disponibilidad de pines como,

  • El ESP-01 viene con 8 pines (2 pines GPIO) – Antena de rastreo PCB. (mostrado en la figura anterior)
  • El ESP-02 viene con 8 pines, (3 pines GPIO) – Conector de antena U-FL.
  • El ESP-03 viene con 14 pines, (7 pines GPIO) – Antena de cerámica.
  • El ESP-04 viene con 14 pines, (7 pines GPIO) – Sin antena

Aprende más sobre el ESP8266 y cómo usarlo en la domótica en este curso ESP8266 wifi inalmbrico con Arduino – Domtica

ESP8266 curso udemy

Por ejemplo, la siguiente figura muestra los pines del módulo ESP-01

ESP8266 pinout Módulo Descripción de Pines

ESP8266 01 Modulo Pin Descripcion

ESP8266 01 Modulo Pin Descripción

  • 3V3: – Pin de alimentación de 3,3 V.
  • GND: – Pin de tierra.
  • RST: – Pin activo de reajuste bajo.
  • EN: – Pin activo de alta habilitación.
  • TX: – Serial Transmit Pin of UART.
  • RX: – Pin de recepción en serie de UART.
  • GPIO0 y GPIO2: – Pines de E/S de propósito general. Estos pines deciden en qué modo (boot o normal) se inicia el módulo. También decide si los pines TX/RX se utilizan para programar el módulo o para fines de E/S en serie.

Para programar el módulo usando UART, conecte GPIO0 a tierra y GPIO2 a VCC o déjalo abierto. Para usar UART para E/S serie normal, deje ambos pines abiertos (ni VCC ni tierra).

Para más información, consulta http://esp8266.net/

Ahora, antes de empezar con la interfaz del ESP8266, necesitamos actualizar su firmware.

Descarga de Firmware

Hay muchas plataformas de software y hardware, firmware y frameworks disponibles, que son específicos para sus aplicaciones, por ejemplo:

El firmware del ESP8266 se proporciona en archivos de formato binario (.BIN) que se pueden descargar directamente en el chip ESP8266.

Estos archivos binarios se generan utilizando ESP8266 SDK (Software Development Kit), que es una plataforma de desarrollo de aplicaciones producida por Espressif. El sistema operativo Linux es necesario para compilar el SDK ESP8266. El usuario de Windows puede utilizar la máquina virtual.

Para más información sobre la compilación del SDK ESP8266, consulta ESP8266_Getting_Started_Guide o descarga el ESP8266 que se adjunta a continuación.

Después de la compilación, descarga el firmware directamente en el chip ESP8266 a través del puerto serie.

Descargue el Firmware del SDK Espressif NON-OS en el módulo ESP8266.

Primero descarga ESP8266 FLASH DOWNLOAD TOOL que es la herramienta oficial de descarga de firmware desarrollada por Espressif.

Segundo descarga Espressif NON-OS SDK Firmware

Ahora selecciona los archivos.bin con su dirección respectiva como se muestra en la siguiente figura.

boot_v1.2.bin                         ————————————————>          0x00000

user1.1024.new.2.bin           ————————————————>          0x01000

esp_init_data_default.bin     ————————————————>          0xfc000

blank.bin                                 ————————————————>          0x7e000

blank.bin                                 ————————————————>          0xfe000

ESP8266 download tool

ESP8266 download tool

Ten en cuenta que todos los archivos binarios (.BIN) están disponibles en el directorio ESP8266_NONOS_SDK-master\bin excepto user1.1024.new.2.bin que podemos generar a partir de la compilación del SDK y que se encuentra en la subcarpeta del directorio ESP8266_NONOS_SDK-master\bin.

Asegúrate de que has seleccionado el puerto COM y la velocidad BAUD correctos (115200 por defecto).

Ahora conecta el módulo ESP8266 al ordenador con puerto serie estándar RS232 (utilizando el convertidor USB a serie en caso de ordenador portátil) como se muestra en la figura siguiente.

Módulo ESP8266 Conexión serial con PC

Módulo ESP8266 Conexión serial con PC

Ten en cuenta que, para poner el ESP8266 en modo flash, realiza las conexiones como se indica en la figura anterior (entre el ESP8266 y el convertidor USB a Serial) y luego conéctalo únicamente a un PC/laptop. No olvides conectar el pin GPIO0 a tierra.

Luego haz clic en la pestaña START en ESP8266 DOWNLOAD TOOL, y espera hasta que termine. Después de terminar el proceso de flash, desconecta el módulo ESP8266 del PC/laptop y retira la conexión a tierra en el pin GPIO0.

Después de descargar con éxito el firmware, podemos utilizar los siguientes comandos AT para la comunicación con el servidor y el cliente utilizando el ESP8266.

Esta vez no conecte los pines GPIO0 y GPIO2, deja los pines abiertos/desconectados.

Para qué se usa

El ESP82666 puede ser usado en una gran variedad de proyectos en los que se necesitar usar una conexión WiFi, desde proyectos en los que se necesite geolocalizar algún dipositivo, crear un servidor web. Cómo base a sensores de presión, humedad o temperaturas hasta proyectos medioambientales en los que se necesite realizar mediciones del aire ambiental.

Cómo programar esp8266 con Arduino

Ahora vamos a programar el módulo ESP8266 usando un Arduino UNO, y el IDE de Arduino.

Vamos a necesitar:

  • Un módulo ESP8266.
  • Un Arduino UNO  o cualquier dispositivo UART a USB.
  • Cables de puente.
  • Arduino IDE versión 1.6.6 o superior.

Ahora necesitamos identificar el pinout del ESP8266.

conectar esp8266 a Arduino

Para poner el ESP8266 en modo de programación, es necesario conectar sus cables de esta manera:

ESP8266 Arduino UNO
RXD RX
GPIO0 GND
GPIO2 ———-
GND GND
VCC 3.3V
RST ———–
CH_PD 3.3V
TXD TX

Nota: Si estás usando un Arduino UNO necesitarás configurar Arduino RST a GND. Por favor, ten cuidado con el VCC del ESP8266, sólo funciona con una fuente de alimentación de 3.3V.

Bien ahora vamos a configurar el IDE de Arduino

  1. Descargar Arduino IDE.
  2. Abrir el su IDE y hacer clic en «Archivo -> Preferencias».
  3. En «Aditional Boards Manager URLs» añade esta línea y haz clic en «OK»: «http://arduino.esp8266.com/stable/package_esp8266com_index.json»
  4. Ve a «Herramientas -> Board -> Boards Manager», escribe «ESP8266» e instálalo.
  5. Ve de nuevo a «Tools -> Board» y selecciona «Generic ESP8266 Module».

Ahora ya estás listo para utilizar el ESP8266 como módulo autónomo sin necesidad de un microcontrolador externo.

Cómo actualizar el Firmware de ESP8266

ESP8266 WiFi pinout

esp8266 pinout

ESP8266 AT Conjunto de comandos

Function AT Commands Response
Working AT OK
Restart AT+RST OK

…….

Ready

Firmware Version AT+GMR <AT version info> information about AT version

<SDK version info> information about SDK version

<compile time> time of the bin was compiled

OK

List Access Point AT+CWLAP +CWLAP:<ecn>,<ssid>,<rssi>,<mac>,<ch>,<freq offset>

OK

Query Joined Access Point AT+CWJAP? +CWJAP:<ssid>,<bssid>,<channel>,<rssi>

OK

Join Access Point AT+CWJAP=”SSID”,”Password” WIFI CONNECTED

WIFI GOT IP

OK

Quit Access Point AT+CWQAP OK

WIFI DISCONNECTED

Get IP Address AT+CIFSR

(Assuming AT+CWMODE=3)

+CIFSR:APIP,<IP address>

+CIFSR:APMAC,<mac address>

+CIFSR:STAIP,<IP address>

+CIFSR:STAMAC,<mac address>

OK

Query WiFi Mode AT+CWMODE? +CWMODE:<mode>
Set WiFi Mode AT+CWMODE=<mode>

Mode: –

1 = STA (station)

2 = AP (Access Point)

3 = BOTH i.e. STA & AP

OK
Query TCP/UDP Connection AT+CIPMUX? +CIPMUX:<mode>
Set TCP/UDP Connection AT+CIPMUX=<mode>

Mode: –

0 = Single Connection

1 = Multiple Connection

OK
TCP/IP Connection status AT+CIPSTATUS STATUS:<status>

Possible statuses are

2: Got IP

3: Connected

4: Disconnected

Query TCP transmission mode AT+CIPMODE? +CIPMODE:<mode>
Set TCP transmission mode AT+CIPMODE=<mode>

Mode: –

0 = Normal mode

1 = Transparent mode

OK
Set up TCP/UDP connection (CIPMUX=0) AT+CIPSTART = <type>,<addr>,<port>

(CIPMUX=1) AT+CIPSTART= <id>,<type>,<addr>, <port>

Example (CIPMUX=0):

AT+CIPSTART=»TCP»,»192.168.101.110″,80

CONNECT

OK

Send Data (CIPMUX=0) AT+CIPSEND=<data length>

(CIPMUX=1) AT+CIPSEND=<id>,<data length>

OK

>

(Note: write your data after > and enter it to send it will return status like.)

Recv <data length> bytes

SEND OK

(after we receive response from server if any for default auto receive mode)

(CIPMUX=0): + IPD, <length>: <data>

(CIPMUX=1): + IPD, <id>, <length>: <data>

Close TCP/UDP Connection AT+CIPCLOSE CLOSED

OK

Cómo configurar ESP8266

Cómo conectar esp8266 a internet

En este vídeo puedes aprender cómo poder conectar tu módulo esp8266 conectado a Arduino a Internet, no te pierdas ni un segundo:

Pin It on Pinterest

Shares