Select Page

NodeMCU ESP8266 es la placa de desarrollo basada en el ESP8266 que nos hace la vida más fácil a la hora de desarrollar dispositivos conectados a internet. En este tutorial vas a saber cómo programar el nodeMCU con el IDE de Arduino.

Internet de las cosas (IoT) ha sido un campo de tendencia en el mundo de la tecnología. Ha cambiado la forma en que trabajamos. Los objetos físicos y el mundo digital están conectados ahora más que nunca. Teniendo esto en cuenta, Espressif Systems (una compañía de semiconductores con sede en Shanghái) ha lanzado un adorable microcontrolador habilitado para WiFi, ESP8266, ¡a un precio increíble! Con estos chips, puede monitorear y controlar cosas desde cualquier parte del mundo, perfecto para casi cualquier proyecto de IoT.

NodeMCU fue una de las primeras placas de desarrollo con el microcontrolador ESP8266. Hasta entonces este chip solamente estaba disponible como placas ESP-xx como ESP01 o ESP12.

Qué es NodeMCU ESP8266

La placa de desarrollo NodeMCU usa el módulo ESP-12E que contiene el chip ESP8266 que tiene un microprocesador LX106 RISC de 32 bits Tensilica Xtensa® que funciona a una frecuencia de reloj ajustable de 80 a 160 MHz y admite RTOS (Real Time Operating Sistem) o sistema operativo de tiempo real. Los RTOS son un mundo aparte, son la ostia y merecen un apartado especial.

Cómo Empezar con NodeMCU ESP8266 2

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

Para obtener más detalles sobre el chip ESP8266, consulte la hoja de datos a continuación.

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, permitiendo que otros dispositivos se conecten directamente a esta red. Esto hace que el ESP8266 NodeMCU sea aún más versátil.

Para obtener más detalles sobre el módulo ESP-12E, consulte la hoja de datos a continuación.

Cuando ESPXXX fue lanzado al mercado, no existía la integración de ESP8266 con el entorno de Arduino. No utilizaba un lenguaje compilado sino uno interpretado llamado LUA. Ya hemos enseñado que la magia de Arduino fue la facilidad de programación y sus librerías open source, con la aparición de la integración de los ESP con el IDE de Arduino, este firmware ha caído poco a poco en desuso y ganó popularidad en el mundo maker hasta lo que es hoy. Aunque aún tiene sus incondicionales, ya no es una de las opciones más utilizadas para programar NodeMCU.

Alimentación NodeMCU

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

Cómo Empezar con NodeMCU ESP8266 3

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

El ESP8266 requiere una fuente de alimentación de 3.3V y niveles lógicos de 3.3V para la comunicación. ¡Los pines GPIO no son tolerantes a 5V! Si desea interconectar la placa con componentes de 5V (o superiores), deberá realizar algunos cambios de nivel de voltaje entre las placas.

Este regulador tiene un consumo residual de 8mA, lo que hace que esta placa no sea adecuada como módulo definitivo en un proyecto que se requiera un bajo consumo. Aunque esto sea así, NodeMCU sí se puede utilizar como plataforma de prototipado para aplicaciones de baja energía que luego pasaremos a otras placas con menos componentes y, por tanto, con un consumo de corriente más optimizado.

NoceMCU Pines y Periféricos

El ESP8266 NodeMCU tiene un total de 17 pines GPIO repartidos en los encabezados de pines a 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 usa 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.
Cómo Empezar con NodeMCU ESP8266 4

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

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

Cómo Empezar con NodeMCU ESP8266 5

La placa también tiene un indicador LED que es programable por el usuario y está conectado al pin D0 de la placa.

Comunicación Serie

La placa incluye el controlador de puente USB a UART CP2102 de Silicon Labs, que convierte la señal USB en serie y permite que tu computadora programe y se comunique con el chip ESP8266. Cabe destacar que el CP2102 es uno de los mejores chips USB serie que existen, otros podrían ser el PL2303 de prolific y el CH340

Cómo Empezar con NodeMCU ESP8266 6

Si tiene una versión anterior del controlador CP2102 instalada en su PC, le recomendamos actualizar ahora.

ESP8266 NodeMCU Pinout

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

Cómo Empezar con NodeMCU ESP8266 7

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

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 el 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 incorporado. Estos pines se pueden usar para suministrar energía a componentes externos.

GND es un pin de tierra de la placa de desarrollo ESP8266 NodeMCU.

Los pines I2C se utilizan para conectar todo tipo de sensores y periféricos I2C en su proyecto. Tanto I2C Master como I2C Slave son compatibles. 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 mayor que la frecuencia de reloj más lenta del dispositivo esclavo.

Pines GPIO ESP8266 NodeMCU tiene 17 pines GPIO que se pueden asignar a diversas funciones como I2C, I2S, UART, PWM, control remoto IR, luz LED y botón mediante programación. Cada GPIO digital habilitado se puede configurar en pull-up o pull-down interno, o en alta impedancia. Cuando se configura como una entrada, también se puede establecer en edge-trigger o level-trigger para generar interrupciones de CPU.

 Canal ADC El NodeMCU está integrado con un ADC SAR de precisión de 10 bits. Las dos funciones se pueden implementar usando ADC viz. Prueba del voltaje de la fuente de alimentación del pin VDD3P3 y prueba del voltaje de entrada del pin TOUT. Sin embargo, no pueden implementarse al mismo tiempo.

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

Pines SPI ESP8266 presenta 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 temporización de la transferencia de formato SPI
  • Hasta 80 MHz y los relojes divididos de 80 MHz.
  • FIFO de hasta 64 bytes

Los pines SDIO ESP8266 presentan una interfaz de entrada / salida digital segura (SDIO) que se usa para conectar directamente las tarjetas SD. Se admiten SDIO v1.1 de 4 bits y 25 MHz y SDIO v2.0 de 4 bits y 50 MHz.

Pines PWM: La placa tiene 4 canales de modulación de ancho de pulso (PWM). La salida PWM puede implementarse mediante programación y utilizarse para controlar motores digitales y LED. El rango de frecuencia PWM es ajustable de 1000 μs a 10000 μs, es decir, entre 100 Hz y 1 kHz.

Los pines de control se utilizan para controlar ESP8266. Estos pines incluyen el pin de habilitación de chip (EN), el pin de reinicio (RST) y el pin WAKE.

  • Pin EN: el chip ESP8266 se habilita cuando el pin EN se coloca en ALTO. Cuando se baja, el chip funciona a la potencia mínima.
  • Pin RST: el pin RST se usa para restablecer el chip ESP8266.
  • PIN WAKE: el pin Wake se usa para despertar el chip del sueño profundo.

El nombre de los pines de NodeMCU tiene una nomenclatura diferente de la que utiliza el ESP8266. Por ejemplo los pines D0, D1, y D2 en la NodeMCU correponden con GPIO16, 5 y 4 en el ESP8266. El framework para Arduino permite utilizar ambas para referirse a los pines de entrada salida.

Estas dos sentencias son equivalentes.

pinMode(D2, OUTPUT);
digitalWrite(D2,HIGH);
pinMode(4, OUTPUT);
digitalWrite(4,HIGH);

ESP8266  Plataforma de Desarrollo

¡Ahora, pasemos a las cosas interesantes!

Hay una variedad de plataformas de desarrollo que pueden equiparse para programar el ESP8266. Puede usar Espruino – JavaScript SDK y firmware que emulan estrechamente 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) provisto por Espressif o una de las plataformas listadas en WiKiPedia.

Afortunadamente, la increíble comunidad ESP8266 llevó la selección IDE un paso más allá al crear un complemento Arduino. Si recién comienza 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.

Instalando el ESP8266 Core en Windows OS

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

Lo primero es tener instalado el último Arduino IDE (Arduino 1.6.4 o superior) en su PC. Si no lo tiene, le recomendamos actualizarlo ahora.

Para comenzar, necesitaremos actualizar el administrador de placas con una URL personalizada. Abre Arduino IDE y ve a Archivo> Preferencias. Luego, copie la URL a continuación en el cuadro de texto URL de Board Manager adicional ubicado en la parte inferior de la ventana:

http://arduino.esp8266.com/stable/package_esp8266com_index.json
Cómo Empezar con NodeMCU ESP8266 8

Presiona OK. Luego navegue al Board Manager yendo a Herramientas> placas> Administrador de placas. 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.

Cómo Empezar con NodeMCU ESP8266 9

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

Ejemplo Blink NodeMCU

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

Utilizaremos el LED en la placa 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 sketch 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.

Cómo Empezar con NodeMCU ESP8266 10

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

Se debe prestar más atención a seleccionar la placa, elegir el puerto COM y seleccionar la velocidad de carga. Es posible que reciba un error de espcomm_upload_mem al cargar nuevos bocetos, si no puede hacerlo.

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.

Cómo Empezar con NodeMCU ESP8266 11

Proyectos y Tutoriales NodeMCU ESP8266

Ahora que ya conoces la placa y todo lo que le podes conectar, es hora de jugar con el Wifi. Lo que sigue es cómo hacer un web server con NodeMCU ESP8266.

Donde comprar NodeMCU ESP8266

PatagoniaTec

Amazon.es

Alibaba

A %d blogueros les gusta esto: