Módulo WiFi ESP8266: Guía de configuración y proyectos

Índice

Programming ESP8266 WiFi Module with Arduino IDE

ESP8266 es un módulo Wi-Fi adecuado para proyectos de IoT y domótica. Permite controlar entradas y salidas como lo harías con una placa de la serie Arduino, pero con Wi-Fi. Por lo tanto, es muy adecuado para aplicaciones de domótica/IoT.

En comparación con otras soluciones Wi-Fi del mercado, el ESP8266 es una excelente opción para la mayoría de los proyectos de «Internet de las cosas». En este artículo, presentaremos los conceptos básicos de la placa ESP8266, su pinout y ejemplos de programación.

Introducción al ESP8266

ESP8266 es un microcontrolador potente y versátil con conexión Wi-Fi que ha ganado popularidad en el mundo de la electrónica y el IoT (Internet de las cosas). Desarrollado por Espressif Systems, el ESP8266 ofrece una solución rentable para conectar dispositivos a Internet y permitirles comunicarse entre sí. Cuenta con un módulo Wi-Fi integrado, un potente procesador y pines GPIO para conectar componentes externos. El ESP8266 se puede programar utilizando varios lenguajes de programación, lo que lo hace accesible tanto para principiantes como para desarrolladores experimentados. Su bajo consumo de energía y su tamaño compacto lo hacen ideal para una amplia gama de aplicaciones, incluyendo la automatización del hogar, las redes de sensores inalámbricos y los dispositivos inteligentes. Por ejemplo, el ESP8266 se puede utilizar para crear un termostato inteligente que permite a los usuarios controlar la temperatura de sus hogares de forma remota.

Pinout del ESP8266

ESP8266 Pinout
ESP8266 Pinout

En el diagrama de pines, algunos pines tienen otros usos además de GPIO. Por ejemplo, el pin D1 no solo es GPIO5, sino también una interfaz SCL, que se puede conectar al pin SCL correspondiente de la pantalla LCD.

La siguiente tabla muestra la correspondencia entre las etiquetas de la identificación integrada y los números GPIO, y qué pines son los más adecuados para los proyectos y cuáles requieren precaución. Los pines resaltados en verde están listos para su uso. Los resaltados en amarillo se pueden utilizar, pero requieren atención, ya que pueden tener un comportamiento inesperado, principalmente al inicio. Los pines resaltados en rojo no se recomiendan para su uso como entradas o salidas.

LabelGPIOInputOutputNotes
D0GPIO16No InterruptNo PWM or I2C supportHIGH at boot used to wake up from deep sleep
D1GPIO5OKOKCommonly used as SCL (I2C)
D2GPIO4OKOKCommonly used as SDA (I2C)
D3GPIO0Pull-upOKConnected to FLASH button, boot fails if pulled LOW
D4GPIO2Pull-upOKHIGH at boot connected to on-board LED, boot fails if pulled LOW
D5GPIO14OKOKSPI (SCLK)
D6GPIO12OKOKSPI (MISO)
D7GPIO13OKOKSPI (MOSI)
D8GPIO15Pull-downOKSPI (CS) Boot fails if pulled HIGH
RXGPIO3OKRXHIGH at boot
TXGPIO1TXOKHIGH at boot debug output at boot, boot fails if pulled LOW
A0ADC0AnalogXAnalog pin

¿Cómo programar ESP8266 con Arduino IDE?

Hay muchas formas de programar el ESP8266:

  1. Utilizar Arduino IDE para desarrollar, siguiendo el estilo de desarrollo de Arduino, fácil de usar;
  2. Utilizar el SDK oficial de ESP8266 para el desarrollo;
  3. Utilizar MicroPython para desarrollar, siguiendo el estilo de programación de Python (este método requiere grabar primero un firmware especial para la placa);

Aquí elegimos la primera opción, porque la programación de Arduino es sencilla y fácil de manejar.

Paso 1: Instalar el IDE de Arduino

Descargue el IDE desde el sitio web oficial de Arduino: https://www.arduino.cc/en/software. La versión que estoy utilizando ahora es Arduino IDE 1.8.3. (Tenga en cuenta que la última versión de Arduino IDE 2.1.1 no puede instalar el paquete de recursos ESP8266 en línea).

Install Arduino IDE 1.8.3
Install Arduino IDE 1.8.3

Paso 2: Instalar el paquete ESP8266

Dado que el IDE de Arduino se utiliza por defecto para la placa de desarrollo Arduino, solo hay recursos de desarrollo relevantes para la placa de desarrollo Arduino por defecto. Para utilizar ESP8266 en el IDE de Arduino, necesitamos instalar manualmente el paquete de desarrollo ESP8266. Hay dos métodos de instalación: instalación en línea e instalación de paquetes sin conexión. Aquí elegimos el primero.

En primer lugar, busca «Archivo -> Preferencias» en el menú del IDE de Arduino: 

Open Preferences in Arduino IDE
Open Preferences in Arduino IDE

A continuación, introduzca el siguiente enlace en «URL adicionales del administrador de tableros»:

http://arduino.esp8266.com/stable/package_esp8266com_index.json

Setting Additional boards manager URLs in Preferences
Setting Additional boards manager URLs in Preferences

A continuación, haz clic para abrir: Herramientas -> Tablero -> Administrador del tablero.

Open Boards Manager in Arduino
Open Boards Manager in Arduino

En el campo, introduzca y busque «esp8266». Verá un paquete esp8266. Haga clic en «Instalar» para iniciar la instalación en línea.

Search and Install the ESP8266 Board
Search and Install the ESP8266 Board
Installing ESP8266 packages
Installing ESP8266 packages

Una vez completada la instalación, encontrará todos los recursos relacionados con la placa esp8266 en el menú «Herramientas->Placa».

ESP8266 Boards Resource (3.1.2 Version)
ESP8266 Boards Resource (3.1.2 Version)

Paso 3: Programación del ESP8266

Aquí escribimos un programa sencillo para probar la conexión de red de la placa ESP8266. El código del programa es el siguiente:

				
					void setup() {
  Serial.begin(9600);
  Serial.println("esp8266 test");
  initWiFi();

}

void loop() {
  Serial.println("hello esp8266");
  delay(1000);

}

#include <ESP8266WiFi.h>

constchar ssid[] = "xxxxx";      //WiFi Name
constchar pass[] = "xxxxx";       //WiFi Password

WiFiClient client;

//Initialize WIFI
void initWiFi()
{
   Serial.print("Connecting WiFi...");
   WiFi.mode(WIFI_STA); //Configure WIFI as Station mode
   WiFi.begin(ssid, pass); //Incoming ssid and password of WIFI hotspot
   while (WiFi.status() != WL_CONNECTED) //Waiting for successful connection
   {
     delay(500);
     Serial. print(".");
   }

   Serial.println("");
   Serial.println("WiFi connected");
   Serial.println("IP address: ");
   Serial.println(WiFi.localIP()); //print your own IP address
}
				
			

Notas:
La función de configuración se utiliza para la inicialización del puerto serie. Por ejemplo, «Serial.begin(9600);» significa que la velocidad de transmisión inicial del puerto serie es 9600.

La función loop es similar a while(1){} en la función principal del desarrollo de un microordenador de un solo chip, donde podemos escribir códigos lógicos de programa.

Para utilizar la función WIFI, es necesario incluir el archivo de encabezado «ESP8266WiFi.h».

El proceso de inicialización de WIFI incluye 3 pasos:

  1. Configurar WIFI en modo estación, es decir, nuestro ESP8266 se utiliza como dispositivo WIFI;
  2. Introducir el ssid y la contraseña del punto de acceso WIFI, para que el ESP8266 pueda conectarse al punto de acceso;
  3. Leer el estado de la conexión WIFI y esperar a que la conexión se establezca correctamente.

Seleccione el modelo y el número de puerto serie de su placa de desarrollo ESP8266:

Choose Board NodeMCU 1.0 (ESP-12E Module)
Choose Board NodeMCU 1.0 (ESP-12E Module)

Ahora podemos compilar y grabar el código en la placa ESP8266WiFi.

Compile and Upload the code to ESP8266 WiFi Module
Compile and Upload the code to ESP8266 WiFi Module

Suscríbete

Únete a nuestra lista de suscriptores para recibir actualizaciones mensuales del blog, noticias de tecnología y estudios de caso. Nunca enviaremos spam y puedes cancelar tu suscripción en cualquier momento.

Acerca del Autor

Picture of Aidan Taylor
Aidan Taylor

I am Aidan Taylor and I have over 10 years of experience in the field of PCB Reverse Engineering, PCB design and IC Unlock.

Comparte

Post Recomendado

¿Necesitas ayuda?

Scroll al inicio

Cotización