P 01 Instalacion Salida DIGITAL

Descargar como doc, pdf o txt
Descargar como doc, pdf o txt
Está en la página 1de 16

Programación NodeMCU

Hoja 1 de .......

ESP8266 Práctica Nº:34

INTRODUCCIÓN NODEMCU Tiempo


invertido
Alumno: Fecha:

1. Objetivos:
Los objetivos que se pretenden alcanzar en esta unidad didáctica, se enumeran
a continuación:
 Fomentar la autonomía del alumno, para buscar información sobre otras
tecnologías.
 Aprender con conceptos básico de programación estructurada en C.
 Ampliar conceptos sobre comunicaciones industriales.
 Trabajar la lectura de documentación técnica y manuales, relacionados
con la elaboración de prototipos para IoT.
 Presentar los módulos wifi ESP8266.
 Presentar un montaje y programa que permita comunicar con el
NodeMCU y un equipo electrónico por wifi.
2. Material Requrido

1 Node MCU

Algunos cables de protoboard, preferiblemente


Dupont macho/hembra.

Una Protoboard.

3. Teoría
3.1. NodeMCU – Board de desarrollo con módulo
ESP8266 WiFi
El NodeMcu es un kit de desarrollo de código abierto basado en el popular
chip ESP8266 (ESP-12E), que utiliza el lenguaje de programación Lua para
crear un ambiente de desarrollo propicio para aplicaciones que requiera
conectividad Wifi de manera rápida.

1
El ESP8266 es un chip altamente integrado diseñado para las necesidades
de un nuevo mundo conectado. Ofrece una solución completa y autónoma de
redes Wi-Fi, lo que le permite alojar la aplicación o servir como puente entre
Internet y un microcontrolador.

El ESP8266 tiene potentes capacidades de procesamiento y


almacenamiento que le permiten integrarse con sensores y dispositivos
específicos de aplicación a través de sus GPIOs con un desarrollo mínimo y
carga mínima durante el tiempo de ejecución. Su alto grado de integración en
el chip permite una circuitería externa mínima, y la totalidad de la solución,
incluyendo el módulo está diseñado para ocupar el área mínima en un PCB.
Principalmente son tres los fabricantes de NODEMCU: Amica,
Doit/Smartduino y Lolin/WeMos.
Primera Generación, V1 (versión V0.9)

La primera generación de placas NodeMCU, que lleva la numeración v0.9,


tiene la peculiaridad de que el color de la placa suele ser amarillo y que el
formato es más ancho que el de sus sucesoras, 47 mm x 31 mm. El inconveniente de
este tipo de placas es que, debido a su tamaño, cubre los diez pines de una protoboard
normal haciendo que sea engorroso utilizarla para nuestros proyectos porque no deja
pines libres.

Arduino-WIFI-ESP8266 Pá gina 2
Descripción de los pines del NodeMCU v0.9Segunda Generación, V2 (versión V1.0)

Segunda Generación, V2 (versión V1.0)

En la segunda generación de placas ya han solucionado el problema del


tamaño y podemos usar las nuevas NodeMCU v1.0 en nuestras protoboards
sin incomodidades, ya que nos deja una fila de pines disponibles a cada lado.
Además, llevan los nuevos chips mejorados ESP12E.

Arduino-WIFI-ESP8266 Pá gina 3
Tercera generación, V3 (versión V1.0)

En este caso no se trata de una auténtica nueva versión ya que NodeMCU


no ha sacado ninguna nueva especificación, sino una versión que LoLin se ha
sacado de la manga y que presenta una serie de innovaciones menores con
respecto a la versión V1.0.
En teoría el puerto USB es más robusto y LoLin ha usado uno de los pines
reservados para la alimentación USB de salida y otro de los pines reservados
para una conexión GND adicional.
Otra peculiaridad de esta versión es que el tamaño es más grande que el de
las placas Amica y Doit. En las siguientes imágenes se puede apreciar la
diferencia de tamaño entre las versiones V2 y V3.

Arduino-WIFI-ESP8266 Pá gina 4
Ambas variantes son equivalentes en cuanto a prestaciones, pero el menor
tamaño de la versión Amica puede ser una ventaja.
Para poder utilizar nuestro NodeMCU, lo primero tenemos que instalarlo en
nuestro equipo y para ello conviene que sigas los pasos que describimos en
esta sesión, en el caso de que aún no lo tengas instalado.
4.1 Instalación del driver del puerto serie
Como viene indicado en la parte posterior de la placa NodeMCU. Debemos:
1. Instalar driver CP2102 para poder acceder por un puerto serie.
2. Usar la velocidad de 9600 baudios para la comunicación.
3. Tensión de alimentación recomendada +5V, valor máximo 10V.

Puede también, esta versión de NodeMCU incorpora el chip CH340 para


conversión USB – serial. Los drivers a descargar serán los de CH340.

Arduino-WIFI-ESP8266 Pá gina 5
4.2 Instalando Plugin del ESP8266 para Arduino.
Este paso es necesario para que nuestro IDE de arduino reconozca a
nuestro ESP8266 como una tarjeta.
Debemos tener ya instalado nuestro Arduino IDE con versión 1.6.4 o
superior.

Seguidamente vamos a Archivo>Preferencias y en la casilla “Gestor de


URLs Adicionales de Tarjetas” agregamos:
http://arduino.esp8266.com/stable/package_esp8266com_index.json

Arduino-WIFI-ESP8266 Pá gina 6
Seguidamente vamos a Herramientas>placa: … >Gestor de Tarjetas
Y buscamos en la lista “esp8266 by ESP8266 Community“, lo
seleccionamos e instalamos:

La instalación va a demorar un poco, al finalizar, el ítem del ESP8266 les


debe marcar como instalado.
Ahora en herramientas>placas, deben de estar las nuevas placas
instaladas.
En cualquiera de los casos hay que verificar que en el IDE se
haya seleccionado la placa y el puerto correspondiente. (En el caso del ESP-01
debe estar seleccionado la placa: Generic ESP8266 Module). En el caso del
NodeMCU, se selecciona la tarjeta NodeMCU 1.0 (ESP-12E Module).

Arduino-WIFI-ESP8266 Pá gina 7
Selección tarjeta NodeMCU 1.0 (ESP-12E Module)
En el IDE Arduino, si volvéis ahora a seleccionar las placas con \
Herramientas\Placa, veréis que ya podéis seleccionar las correspondientes al
NodeMCU 1.0 (ESP-12E Module).
Estos chips funcionan bien con velocidades de hasta 921kbps sin
problema. Éste es el máximo bitrate que soporta el IDE de Arduino. Te interesa
utilizar esta velocidad para reducir el tiempo de carga del programa en la
memoria flash del ESP8266, pero es necesario utilizar un buen cable USB.
Si ves que no funciona a esa velocidad, prueba a 115200 y haz
diferentes pruebas hasta que encuentres el límite de tu sistema.
Ahora para programar el NodeMCU, cuando conectéis el USB a vuestro PC
os levantara una puerta serie. Necesitamos saber cuál es para indicárselo al
programa de volcado. Para ello si estáis en Windows podéis hacer: INICIO\
Equipo\Botón derecho\Administrar.

Arduino-WIFI-ESP8266 Pá gina 8
Y podréis ver en administrador de dispositivos / Puertos (COM y LPT) el
número de puerto asignado, en mi caso COM15:

Nos falta seleccionar el puerto en el que está instalado NodeMCU en


nuestro equipo, así que navegamos a \Herramientas\Puerto y seleccionamos
el que haya elegido para ello nuestro sistema operativo.

Arduino-WIFI-ESP8266 Pá gina 9
Selección del puerto COM
Ya tenemos el NodeMCU instalado en el equipo, hemos descargado el
plugin del ESP8266 para el IDE de Arduino, hemos seleccionado la tarjeta y el
puerto en el que lo hemos instalado, así que ya sólo nos queda comprobar que
funciona correctamente.
Una forma de aprender a manejar un dispositivo hardware o una librería es
leer los ejemplos y ponerlos en práctica mientras se revisa la documentación
en lugar de leer toda la documentación antes de empezar a practicar. Para
empezar con los módulos ESP8266 una vez instalado el soporte para las
placas, lo más sencillo es ejecutar los ejemplos que vienen con el soporte
instalado para los módulos ESP8266.
Para ver los ejemplos debemos primero seleccionar la placa que vamos a
usar, en nuestro caso la Wemos D1 mini o la nodeMCU.

Arduino-WIFI-ESP8266 Pá gina 10
Todos los ejemplos disponibles en el IDE de Arduino los puedes encontrar
en los ejemplos de las librerías que vienen con el soporte del ESP8266 para
Arduino que hemos instalado anteriormente en:

https://github.com/esp8266/Arduino/tree/master/libraries

4.3 NodeMCU: Ejemplos para empezar


Ahora vamos a ponernos manos a la obra. Para empezar de la manera más
sencilla vamos a aprender cómo utilizar el botón y el led que incluye la
NodeMCU. El LED está conectado, internamente, al GPIO2 y el botón al
GPIO0.

Arduino-WIFI-ESP8266 Pá gina 11
Ej.1 Blinking LED con ESP8266
En este caso solo necesitan conectar su cable USB y conectar un led en
el pin D4, esto para el primer ejemplo que veremos más adelante.

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.

En este ejemplo haremos el hola mundo de microcontroladores que es


hacer parpadear un led. El código es el siguiente:
void setup() {
pinMode(2, OUTPUT);
}

void loop() {
digitalWrite(2, HIGH); // Led ON
delay(1000); // pausa 1 seg
digitalWrite(2, LOW); // Led OFF
delay(1000); // pausa 1seg
}

Como se observa el código es igual como si se estuviera programando un


arduino.

En el caso del ESP01 (módulo wifi) es necesario que al momento de cargar


el ESP esté en modo de programación (debe haber iniciado con el GPIO2 en

Arduino-WIFI-ESP8266 Pá gina 12
Low) y en el caso del NodeMCU o el WeMos tan solo hay que cargar desde el
IDE como si fuera una arduino.
Como siempre cargaremos el programa en nuestra placa haciendo click en
la flecha horizontal y veremos que el LED azul de la placa ESP8266, que se
encuentra en la zona de la antena, comienza a parpadear indicando que se
está realizando la transferencia de datos.
A diferencia de un arduino durante el proceso de carga, en la parte inferior
del IDE nos muestra el porcentaje de la carga que se está realizando:

Si han realizado bien todos los pasos anteriores, debe parpadear el LED, en
el caso del NodeMCU y WeMos notaran que también parpadea el Led del ESP-
12E, esto porque el GPIO2 generalmente se usa como TX1 para hacer
debugging y el Led muestra el estado del pin GPIO2 pero negado.
Si su led Parpadea entonces significa que tienen todo configurado
correctamente y están listos para realizar los siguientes ejemplos:

Como ya te he comentado, hay pocas diferencias entre programar un


Arduino y un NodeMCU o cualquier otra placa basada en el ESP8266.

Arduino-WIFI-ESP8266 Pá gina 13
NOTA: El led de la placa ESP8266 está conectado al pin D4 o GPIO02. El
led del NodeMCU está conectado al pin D0 o GPIO2. La versión 3 de
NodeMNC no tiene led de NodeMCU.
El botón FLASH de NodeMCU es el GPIO0 o D3.

Ambas funciones son requeridas para que el programa funcione.


4. Programación
Estructura
La estructura básica del lenguaje de programación NodeMCU es bastante
simple y se organiza en al menos dos partes o funciones que encierran bloques
de declaraciones.
void setup()
{
statements;
}

void loop()
{
statements;
}
Ambas funciones son requeridas para que el programa funcione.
setup()
La función setup debería contener la declaración de cualquier variable al
comienzo del programa. Es la primera función a ejecutar en el programa, es
ejecutada una vez y es usada para asignar pinMode o inicializar las
comunicaciones serie.
void setup()
{
pinMode(pin, OUTPUT); //ajusta 'pin' como salida
}
loop()
La función loop se ejecuta a continuación e incluye el código que se ejecuta
contínuamente - leyendo entradas, activando salidas, etc. Esta función es el
núcleo de todos los programas NodeMCU y hace la mayor parte del trabajo.
void loop()
{
digitalWrite(pin, HIGH); //Activa 'pin'
delay(1000); //espera un segundo
digitalWrite(pin, LOW); //Desactiva 'pin'
delay(1000); //espera un segundo
}

Arduino-WIFI-ESP8266 Pá gina 14
Salida digital
pinMode(pin, mode)
Se usa en void setup() para configurar un pin específico para que se
comporte o como INPUT o como OUTPUT.
pintMode(pin, OUTPUT); //ajusta 'pin' como salida

Los pines digitales de Arduino estan ajustados a INPUT por defecto, por
lo que no necesitan ser declarados explícitamente como entradas con
pinMode(). Los pines configurados como INPUT se dice que están en un
estado de alta impedancia.
digitalWrite(pin, value)
Pone a nivel lógico HIGH o LOW a (activa o desactiva) un pin digital
especificado. El pin puede ser especificado como una variable o constante (0 -
13).
digitalWrite(pin, HIGH); //ajusta 'pin' a HIGH

5. Práctica
Modifica el programa de ejemplo para que el led realice la siguiente secuencia:
Encendido 3seg
Apagado 6seg
Encendido 2seg
Apagado 1seg.

Modifica el programa y prográmalo. Un vez que veas que funciona, copia


le código en el apartado “Solución” y súbelo al Classroom.
Retos: Realiza el juego de luces con dos led.

Arduino-WIFI-ESP8266 Pá gina 15
1. Solución
void setup() {
pinMode(2, OUTPUT);
}

void loop() {
digitalWrite(2, HIGH); // Led ON
delay(3000); // pausa 3 seg
digitalWrite(2, LOW); // Led OFF
delay(6000); // pausa 6seg
digitalWrite(2, HIGH); // Led ON
delay(2000); // pausa 2 seg
digitalWrite(2, LOW); // Led OFF
delay(1000); // pausa 1seg

Arduino-WIFI-ESP8266 Pá gina 16

También podría gustarte