Aprende a programar un NodeMCU (ESP8266) con Arduino IDE

Aprende a programar un NodeMCU (ESP8266) con Arduino IDE

Un quick-start a toda leche

¿Tienes prisa por aprender a programar una aplicación de IoT con tu ESP8266? Nosotros también; por eso en este artículo iremos directos al grano, compilando en pocos enunciados la siguiente información:

  • ESP8266: una descripción del corazón de NodeMCU
  • NodeMCU v3: qué es, características principales y dónde comprarlo.
  • Cómo configurar un entorno de desarrollo para ESP8266/NodeMCU con Arduino IDE.

Este artículo será utilizado de base para compartir otros proyectos más interesantes que están por venir: cómo comunicar NodeMCU con un Arduino, cómo desplegar un servicio web que permita controlar desde el smartphone las luces de nuestra casa, o cómo conectar nuestros sensores a la famosa plataforma de analíticas IoT de Thingspeak.

¿Qué es el módulo WiFi ESP8266?

El chip ESP8266 es el corazón de NodeMCU y merece la pena describirlo un poco: su bajo coste, su código abierto y su fuerte comunidad, han puesto el desarrollo de aplicaciones Wi-Fi e IoT al alcance de cualquiera.

Este chip permite conectarse a una red Wi-Fi y realizar conexiones TCP/IP. Consta de un procesador de 32 bits de 80MHz, 16 interfaces entrada-salida de propósito general y se alimenta con 3.3V. Soporta los estándares 802.11 b/g/n y Wi-Fi Direct (P2P) con un alcance de hasta 30 metros. Consume menos de 10mW en reposo, soporta bus SPI y…

¿Problema?

Necesita un “montaje” que facilite el acceso a sus pines y puertos, como por ejemplo el ESP-12 que véis en la fotografía de abajo. Y aunque este módulo es todavía muy popular, el reducido tamaño de sus pines hace difícil cualquier trabajo de soldadura doméstico.

NodeMCU: la estrella open source para IoT

Este módulo acabé comprándolo por casualidad; lo que yo andaba buscando era el ESP-12, pero cuando encontré las especificaciones de lo que en realidad había comprado, me llevé una gran sorpresa: el ESP-12 estaba montado sobre una plaquita más extensa, que no sólo se trataba de una extensión mejorada para el ESP8266, sino que en sí mismo constituía un DEVKIT o kit de desarrollo IoT con muchas funciones telemáticas embebidas. Podemos conectarle actuadores y sensores, y programarlo a través de miniUSB como si fuera un dispositivo independiente, como un Arduino o una Raspberry. Lo cierto es que los 80MHz del ESP8266 y sus 128 kB de memoria no permiten hacer muchas virguerías, pero sin duda ha sido un gran paso para el mundillo hágalo-usted-mismo.

Características de NodeMCU

Aunque tiene muchas más, vamos a centrarnos en las que más interesan para el desarrollo de proyectos:

  • Conectividad WiFi 2.4GHz 802.11b/g/n
  • Soporta seguridad WPA y WPA2
  • Modos inalámbricos soportados: STA/AP/STA+AP
  • Protocolo TCP/IP integrado
  • Pueda programarse de forma remota vía OTA
  • 16 puertos GPIO (3,3V 15mA max.)
  • 1 entrada ADC de 10bits (1,8V máx. pero solo mide hasta 1V)
  • CPU 80MHz overclockeable a 160MHz
  • ROM 128Bytes
  • RAM 4MBytes
  • PWM/I2C/IIC/1-Wire/SPI/SDIO
  • Alimentado con 5V
  • Firmware programable con Lua (también con Processing en Arduino IDE, ver más abajo)

En cuanto a sus puertos se nos ofrecen los siguientes:

 

Dónde comprar NodeMCU v3

Hay muchas páginas donde comprarlo online, pero Aliexpress es una de las más baratas que he encontrado hasta ahora, por unos 2,40€ la unidad. En TiendaTec podéis comprarlo por 4,95 €, y en Amazon o Ebay difícilmente lo veréis por menos de 6€. Los precios suelen ir variando mucho; si conocéis alguna página donde distribuyan más barato compartidlo en los comentarios.

Importante: aseguraros de que pedís la versión 3, que es la más reciente hasta la fecha y presenta mejores características (aunque tiene un tamaño mayor que las versiones anteriores).

¿Cómo configurar Arduino IDE para desarrollar un proyecto NodeMCU?

Aunque el firmware de NodeMCU utiliza el lenguaje de programación Lua, a los arduineros les alegrará saber que es posible programar en Processing (una versión de Java para Arduino) usando directamente el entorno de desarrollo oficial de Arduino. Si no conoces Arduino, te recomiendo su IDE de todos modos por lo intuitivo que es su manejo, la extensa documentación existente, y en general por lo fácil que es aprender Processing. Existen IDEs específicos para Lua, aunque hasta ahora no he utilizado ninguno.

Para poder programar en el entorno de Arduino, es necesario instalar una librería para el desarrollo con módulos ESP8266. Sólo hay que seguir los siguientes pasos:

Paso 1) Ve a Archivo > Preferencias y copia la siguiente dirección en el Gestor de URLs Adicionales de Tarjetas:

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

Paso 2) Ve a Herramientas > Placa > Gestor de tarjetas y filtra por ESP8266 para instalar la última versión de la comunidad ESP8266.

Paso 3) Configura la placa en Herramientas > Placa > NodeMCU 1.0 (bajo la nueva sección ESP8266) y selecciona el puerto COM donde conectes tu NodeMCU.

¡Ya está todo listo para empezar a cacharrear! Este artículo nos servirá de base para los próximos tutoriales sobre IoT. Si tenéis algún problema o alguna sugerencia, simplemente escribid un comentario.

Un ejemplo de test: parpadear el LED on-board

void setup() {
 pinMode(LED_BUILTIN, OUTPUT); 
}

void loop() {
 digitalWrite(LED_BUILTIN, LOW); 
 delay(1000); 
 digitalWrite(LED_BUILTIN, HIGH); 
 delay(1000); 
}
Previous Noise Floor: ¿qué es y cómo afecta a los receptores de RF?
Next NodeMCU y Arduino: ¿Cómo interconectarlos? UART, i2C y SPI

About author

Angel
Angel 168 posts

Desde que era niño siempre quise ser Inventor. Pensé que convertirme en Ingeniero sería el camino más fácil para lograrlo... No lo es. Pero sin duda es uno de los más interesantes. Actualmente trabajo en Alemania como Ingeniero de Radiofrecuencia/Telecomunicaciones, y de vez en cuando escribo aquí sobre ingeniería. Me gustan los robots y los libros analógicos.

You might also like

Social Networks 3 Comments

Fruit Attraction mucha tecnología y pocos bits.

Ayer pude asistir a la feria Fruit Attraction, en Ifema. Punto de encuentro del sector hortofrutícola español, uno de los más punteros e innovadores que hay en el mundo. Innovación

Tecnologia & Ciencia 1Comments

Protege tu conexión por SSH

Para conectaros a vuestro servidor virtual o a cualquiera que sea vuestro sistema Linux, es muy probable que utilicéis algún protocolo seguro como es SSH. Si lo hacéis a través

Tecnologia & Ciencia 1Comments

Solución: ¡Problemas con USB C200-1C26 en Windows 8!

¡AHHHH! ¡¿Que le pasa a este ordenador que no me funcionan los cascos ni el ratón de repente?! ¡Te juro que lo lanzo por la ventana! ¡Lo juro! ¿Nunca os

Tecnologia & Ciencia 1Comments

[WordPress] Fatal error: Allowed memory size of 73400320 bytes exhausted

A.K.A. White Screen of Death. Si ya has trabajado con WordPress estoy seguro de que lo anterior te resultará familiar. Horriblemente familiar. Si no has trabajado aún con WordPress pero

Tecnologia & Ciencia 9 Comments

DreamSpark: Software de Microsoft gratuito para estudiantes.

Estudiar tiene muchos beneficios, desde aumentar nuestros conocimientos hasta conseguir un premio académico. Pero el hecho de tener software de primera gama, como Windows 8 ©, totalmente gratuito suena bastante

Tecnologia & Ciencia 2 Comments

Spotbros, mucho más que Whatsapp

Al menos esa es la sensación que me dio desde el primer día que decidí probarlo. Como usuario habitual de Whatsapp, no me costó apenas esfuerzo familiarizarme con el uso

Generales 1Comments

¿Se queda Tumblr con tus derechos de autor?

Hace meses que utilizo Tumblr como herramienta de microblogging para publicar algunos textos – ejercicios literarios, poemas y reflexiones personales sin importancia –  y el otro día me asaltó una duda:

The App Fake

Hace unos días, un viejo amigo, @jaboban me invitó a ir a un evento: The App Date. Una reunión de desarrolladores o aficcionados está patrocinada por Telefónica (me niego a

Generales 2 Comments

¿Por qué Ethernet está reemplazando a SONET/SDH?

Muy pronto, todo el tráfico de voz de nuestras llamadas telefónicas viajarán exclusivamente por Ethernet a través de la red móvil. Ethernet es un estándar de la capa de enlace con el cual

0 Comments

No Comments Yet!

You can be first to comment this post!

Leave a Reply