Tutorial sobre el NodeMcu ESP8266

Abordamos un tutorial sobre el módulo de desarrollo NodeMcu ESP8266 WIFI en su versión V3 para realizar todo tipo de proyectos conectados a Internet si así lo desea y con la facilidad de programación con el IDE Arduino. Mejor imposible.

Tutorial-of-Programming-NodeMcu-ESP8266-in-Arduino-IDE

Comienza el tutorial sobre el NodeMCU ESP8266 V3

La Internet de las cosas (IoT) ha sido un campo de tendencia en el mundo de la tecnología. Ha cambiado nuestra forma de trabajar. Los objetos físicos y el mundo digital están conectados ahora más que nunca.

Teniendo esto en cuenta, Espressif Systems (una empresa de semiconductores con sede en Shanghai) lanzó hace varios años un adorable microcontrolador habilitado para WiFi de un tamaño muy reducido: ESP8266 , a un precio increíble. Por menos de $ 3, puede monitorear y controlar cosas desde cualquier parte del mundo, perfecto para casi cualquier proyecto de IoT. Y en la actualidad existen más de 15 modelos y varios módulos de diferentes fabricantes para facilitar los proyectos del usuario.

Uno de nuestros proyectos es el Chat Bot Telegram con ESP8266.

Módulo NodeMcu V3 ESP5266-12E

La placa de desarrollo equipa el módulo ESP-12E que contiene el chip ESP8266 con microprocesador Tensilica Xtensa® LX106 RISC de 32 bits que opera a una frecuencia de reloj ajustable de 80 a 160 MHz y admite RTOS .

Chip ESP-12E

  • Tensilica Xtensa® de 32 bits LX106
  • Frecuencia de reloj de 80 a 160 MHz
  • RAM interna de 128kB
  • Flash externo de 4 MB
  • Transceptor Wi-Fi 802.11b / g / n

También hay 128 KB de RAM y 4 MB de memoria Flash (para almacenamiento de datos y programas) lo suficiente para hacer frente a las grandes cadenas que componen las páginas web, los datos JSON / XML y todo lo que lanzamos a los dispositivos IoT hoy en día.

El ESP8266 integra el transceptor Wi-Fi 802.11b / g / n HT40 , por lo que no solo puede conectarse a una red WiFi e interactuar con Internet, sino que también puede configurar una red propia, lo que permite que otros dispositivos se conecten directamente a eso. Esto hace que el ESP8266 NodeMCU sea aún más versátil.

Requisitos de energía

Como el rango de voltaje de funcionamiento del ESP8266 es de 3 V a 3,6 V , la placa viene con un regulador de voltaje Regulado para mantener el voltaje constante en 3,3 V. Puede suministrar de manera confiable hasta 600 mA, lo que debería ser más que suficiente cuando el ESP8266 extrae hasta 80 mA durante las transmisiones de RF . La salida del regulador también se divide en uno de los lados del tablero y se etiqueta como 3V3. Este pin se puede utilizar para suministrar energía a componentes externos.

Requisitos de energía

  • Voltaje de funcionamiento: 2,5 V a 3,6 V
  • Regulador integrado de 3.3V 600mA
  • Corriente de funcionamiento de 80 mA
  • 20 µA durante el modo de suspensión

La alimentación del ESP8266 NodeMCU se suministra a través del conector USB MicroB integrado . Alternativamente, si tiene una fuente de voltaje regulada de 5 V , el pin VIN se puede usar para suministrar directamente el ESP8266 y sus periféricos.

Advertencia:

El ESP8266 requiere una fuente de alimentación de 3,3 V y niveles lógicos de 3,3 V para la comunicación. ¡Los pines GPIO no son tolerantes a 5V! Si desea conectar la placa con componentes de 5 V (o más), deberá realizar algunos cambios de nivel.
Nunca se confíe porque con toda seguridad quemará el módulo

Periféricos y E / S

El ESP8266 NodeMCU tiene un total de 17 pines GPIO divididos en los encabezados de los pines en ambos lados de la placa de desarrollo. Estos pines se pueden asignar a todo tipo de tareas periféricas, que incluyen:

  • Canal ADC: un canal ADC de 10 bits.
  • Interfaz UART: la interfaz UART se utiliza para cargar código en serie.
  • Salidas PWM: pines PWM para atenuar los LED o controlar motores.
  • Interfaz SPI, I2C e I2S: interfaz SPI e I2C para conectar todo tipo de sensores y periféricos.
  • Interfaz I2S: interfaz I2S si desea agregar sonido a su proyecto.

E / S multiplexadas

  • 1 canales ADC
  • 2 interfaces UART
  • 4 salidas PWM
  • Interfaz SPI, I2C e I2S

Gracias a la función de multiplexación de pines del ESP8266 (múltiples periféricos multiplexados en un solo pin GPIO). Es decir, un solo pin GPIO puede actuar como PWM / UART / SPI.

Interruptores e indicador LED integrados

El ESP8266 NodeMCU cuenta con dos botones. Uno marcado como RST ubicado en la esquina superior izquierda es el botón Restablecer, utilizado por supuesto para restablecer el chip ESP8266. El otro botón FLASH en la esquina inferior izquierda es el botón de descarga que se usa al actualizar el firmware.

Interruptores e indicadores

  • RST – Reinicia el chip ESP8266
  • FLASH – Descarga nuevos programas
  • LED azul: programable por el usuario (en algunos modelos)

Algunos módulos en la placa también tiene un indicador LED que es programable por el usuario y está conectado al pin D0 de la placa. En nuestro caso este Led no existe.

Comunicación serial

La placa oficial incluye el controlador convertidor CP2102 USB a UART de Silicon Labs , que convierte la señal USB en serie y permite que su computadora programe y se comunique con el chip ESP8266.

Comunicación serial

  • Convertidor de USB a UART
  • Velocidad de comunicación hasta 4.5 Mbps, por defecto 115200
  • Soporte de control de flujo

El clon del NodeMcu V3

En este tutorial y por cuestiones económicas usamos el NodeMcu V3 con el controlador convertidor CH340G USB a UART de fabricación china, que convierte la señal USB en serie y permite que su computadora programe y se comunique con el chip ESP8266.

Este controlador es usado por la mayoría de fabricantes chinos por su bajo costo, tiene un buen rendimiento. Yo los uso desde hace tiempo con los proyectos Arduino y ESP y no he tenido problemas hasta el momento.

He de destacar que la velocidad de comunicación siempre la tengo en 115200 baudios, pero puede alcanzar varios Megas sin problemas.

Si necesita el controlador del Chip CP2102 puede descargarlo del siguiente enlace:
Controlador CP2102

Pinout de ESP8266 NodeMCU

El ESP8266 NodeMCU tiene un total de 30 pines que lo conectan con el mundo exterior. Las conexiones son las siguientes:

La imagen anterior muestra el NodeMcu V3 con el chip RS232 TTL tipo CH340G

LA imagen anterior muestra el NodeMcu V3 con el chip RS232 tipo CP2102

Los pines del NodeMcu V3

En aras de la simplicidad, haremos grupos de pines con funcionalidades similares.

Alimentación

Pines de alimentación – Hay cuatro pines de alimentación a saber. un pin VIN y tres pines de 3.3V. El pin VIN se puede usar para suministrar directamente al ESP8266 y sus periféricos, si tiene una fuente de voltaje regulada de 5V. Los pines de 3.3V son la salida de un regulador de voltaje integrado. Estos pines se pueden utilizar para suministrar energía a componentes externos.

GND – Es un pin de tierra de la placa de desarrollo ESP8266 NodeMCU.

GPIO

Pines GPIO – ESP8266 NodeMCU tiene 17 pines GPIO que se pueden asignar a varias funciones como I2C, I2S, UART, PWM, control remoto IR, luz LED y botón mediante programación. Cada GPIO habilitado digitalmente puede configurarse para pull-up o pull-down interno, o configurarse en alta impedancia. Cuando se configura como una entrada, también se puede configurar como disparo por flanco o disparo por nivel para generar interrupciones de la CPU.

Canal ADC – El NodeMCU está integrado con un SAR ADC de precisión de 10 bits. Las dos funciones se pueden implementar utilizando ADC a saber. Probar el voltaje de la fuente de alimentación del pin VDD3P3 y probar el voltaje de entrada del pin TOUT. Sin embargo, no se pueden implementar al mismo tiempo.

Comunicación

Pines I2C – Se utilizan para conectar todo tipo de sensores y periféricos I2C en su proyecto. Se admiten tanto I2C Master como I2C Slave. La funcionalidad de la interfaz I2C se puede realizar mediante programación y la frecuencia de reloj es de 100 kHz como máximo. Cabe señalar que la frecuencia de reloj I2C debe ser más alta que la frecuencia de reloj más lenta del dispositivo esclavo.

Pines UART – ESP8266 NodeMCU tiene 2 interfaces UART, es decir, UART0 y UART1, que proporcionan comunicación asíncrona (RS232 y RS485) y pueden comunicarse a hasta 4.5 Mbps. UART0 (pines TXD0, RXD0, RST0 y CTS0) se puede utilizar para la comunicación. Es compatible con el control de fluidos. Sin embargo, UART1 (pin TXD1) presenta solo señal de transmisión de datos, por lo que generalmente se usa para imprimir registros.

Pines SPI – ESP8266 cuenta con dos SPI (SPI y HSPI) en modo esclavo y maestro. Estos SPI también admiten las siguientes características de SPI de uso general:

  • 4 modos de sincronización de la transferencia de formato SPI
  • Hasta 80 MHz y los relojes divididos de 80 MHz
  • FIFO de hasta 64 bytes

Especiales

Pines SDIO – ESP8266 cuenta con una interfaz de entrada / salida digital segura (SDIO) que se utiliza para conectar directamente las tarjetas SD. Se admiten SDIO v1.1 de 4 bits a 25 MHz y SDIO v2.0 de 4 bits a 50 MHz.

Pines PWM – La placa tiene 4 canales de modulación de ancho de pulso (PWM). La salida PWM se puede implementar de manera programática y usarse para impulsar motores digitales y LED. El rango de frecuencia PWM se puede ajustar de 1000 μs a 10000 μs, es decir, entre 100 Hz y 1 kHz.

Pines de control

Pines de control – Se utilizan para controlar ESP8266. Estos pines incluyen el pin Chip Enable (EN), el pin Reset (RST) y el pin WAKE.

  • Pin EN: el chip ESP8266 se habilita cuando el pin EN se tira a ALTO. Cuando se tira a BAJO, el chip funciona a potencia mínima.
  • Pin RST: el pin RST se utiliza para restablecer el chip ESP8266.
  • Clavija de activación: la clavija de activación se utiliza para despertar al chip del sueño profundo.

Plataformas de desarrollo ESP8266

Ahora, pasemos a lo interesante.

Existe una variedad de plataformas de desarrollo que pueden equiparse para programar el ESP8266. Puede optar por Espruino – SDK de JavaScript y firmware que emulan de cerca a Node.js, o usar Mongoose OS – Un sistema operativo para dispositivos IoT (plataforma recomendada por Espressif Systems y Google Cloud IoT) o usar un kit de desarrollo de software (SDK) proporcionado por Espressif o una de las plataformas enumeradas en WiKiPedia .

El IDE Arduino y ESP8266

Afortunadamente, la increíble comunidad ESP8266 llevó la selección del IDE un paso más allá al crear un complemento de Arduino. Si recién está comenzando a programar el ESP8266, este es el entorno con el que recomendamos comenzar y el que documentaremos en este tutorial.

Este complemento ESP8266 para Arduino se basa en el increíble trabajo de Ivan Grokhotkov y el resto de la comunidad ESP8266. Consulte el repositorio ESP8266 Arduino GitHub para obtener más información.

Instalación de ESP8266 Core en el sistema operativo Windows con el IDE Arduino

Procedamos con la instalación del núcleo Arduino ESP8266.

Lo primero es tener instalado el último IDE de Arduino (Arduino 1.8.2 o superior) en su PC. Si no lo tiene, le recomendamos que actualice ahora:

Último IDE de Arduino

Para comenzar, necesitaremos actualizar el administrador del tablero con una URL personalizada. Abra Arduino IDE y vaya a Archivo> Preferencias . Luego, copie la siguiente URL en el cuadro de texto URL adicionales del administrador del tablero situado en la parte inferior de la ventana:

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

Presiona OK. Luego navegue hasta el Administrador de tableros yendo a Herramientas> Tableros> Administrador de tableros . Debería haber un par de entradas nuevas además de las placas Arduino estándar. Filtre su búsqueda escribiendo esp8266 . Haga clic en esa entrada y seleccione Instalar.

Las definiciones de placa y las herramientas para el ESP8266 incluyen un conjunto completamente nuevo de gcc, g ++ y otros binarios compilados razonablemente grandes, por lo que puede llevar unos minutos descargar e instalar (el archivo archivado es ~ 110 MB). Una vez que se haya completado la instalación, aparecerá un pequeño texto INSTALADO junto a la entrada. Ahora puede cerrar Board Manager.

Ejemplos de funcionamiento

Ejemplo de Arduino: Blink

Para asegurarnos de que el núcleo Arduino ESP8266 y el NodeMCU estén configurados correctamente, cargaremos el boceto más simple de todos: ¡ The Blink !

Usaremos el LED integrado para esta prueba. Como se mencionó anteriormente en este tutorial, el pin D0 de la placa está conectado al LED azul integrado y es programable por el usuario. ¡Perfecto!

Antes de subir el boceto y jugar con LED, debemos asegurarnos de que la placa esté seleccionada correctamente en Arduino IDE. Abra Arduino IDE y seleccione la opción NodeMCU 0.9 (Módulo ESP-12) en su Arduino IDE> Herramientas> Menú de la placa .

En mi caso es la tarjeta NodeMcu 1.0 (ESP12E)

Ahora, conecte su ESP8266 NodeMCU a su computadora mediante un cable USB micro-B. Una vez que la placa está conectada, se le debe asignar un puerto COM exclusivo. En las máquinas Windows, será algo así como COM #, y en las computadoras Mac / Linux vendrá en forma de /dev/tty.usbserial-XXXXXX . Seleccione este puerto serie en el menú Arduino IDE> Herramientas> Puerto . También seleccione la velocidad de carga: 115200

Selecciones el Puerto de comunicación, en mi caso es el COM3

 

 

Advertencia:

Se debe prestar atención al seleccionar la placa, elegir el puerto COM y seleccionar la velocidad de carga. Es posible que obtenga el error espcomm_upload_mem al cargar nuevos bocetos, si no lo hizo.

Una vez que haya terminado, pruebe a continuación el boceto de ejemplo.

void setup()
{
pinMode(D0, OUTPUT);
}
void loop()
{
digitalWrite(D0, HIGH);
delay(500);
digitalWrite(D0, LOW);
delay(500);
}

Una vez que se carga el código, el LED comenzará a parpadear. Es posible que deba tocar el botón RST para que su ESP8266 comience a ejecutar el boceto. Aunque no es necesario porque el NodeMcu realiza un reinicio al cargar el firmware.

Resúmen del módulo NodeMcu ESP8266:

NodeMCU es una pequeña placa Wifi compatible con Arduino lista para usar en cualquier proyecto IoT. Está montada alrededor del ya conocido ESP8266 y expone todos sus pines en los laterales. Además ofrece más ventajas como la incorporación de un regulador de tensión integrado, así como un puerto USB de programación. Se puede programar con LUA o mediante el IDE de Arduino.

Dispone de una extensa comunidad y documentación que te permitirán conectar tu proyecto al mundo exterior mediante conexión Wifi.

Debido a que utiliza un conversor USB CH340 (en el caso del NoceMcu chino), normalmente el sistema operativo lo instala automáticamente, aunque dependiendo de los casos, puede que enecesites instalar el driver específico.

Resúmen Características:

  • Procesador: ESP8266 @ 80MHz (3.3V) (ESP-12E)
  • 4MB de memoria FLASH (32 MBit)
  • WiFi 802.11 b/g/n
  • Regulador 3.3V integrado (500mA)
  • Conversor USB-Serial CH340G / CH340G
  • Función Auto-reset
  • 9 pines GPIO con I2C y SPI
  • 1 entrada analógica (1.0V max)
  • 4 agujeros de montaje (3mm)
  • Pulsador de RESET
  • Entrada alimentación externa VIN (20V max)

De momento es todo amigos, En la mayoría de comercios pueden adquirir el NodeMcu V3 por unos 4 o 5 dólares, un precio muy competitivo para realizar proyectos en casa con bajo presupuesto.

Nota de Joan:

Para aquellos que preguntan sobre el puerto del led azul de la placa les dejo lo siguiente; La asignación de pines en el NodeMCU ESP-12E. El led azul está conectado a la salida GPIO2 (Pin D4) y el botón «FLASH» a la entrada GPIO0 (Pin D3).

 

Este tutorial está basado en la idea original de lasminuteengineers.com

Si tienen proyectos con el NodeMcu V3 y desean que le publiquemos o tienen alguna sugerencia pueden dejarnos comentarios y entre toda la comunidad intentaremos ayudar.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Información básica sobre protección de datos
Responsable Joan Mengual +info...
Finalidad Gestionar y moderar tus comentarios. +info...
Legitimación Consentimiento del interesado. +info...
Destinatarios Automattic Inc., EEUU para filtrar el spam. +info...
Derechos Acceder, rectificar y cancelar los datos, así como otros derechos. +info...
Información adicional Puedes consultar la información adicional y detallada sobre protección de datos en nuestra página de política de privacidad.

Salir de la versión móvil