Tutorial
de uso del kit IoT
1. Componentes
El kit consta de dos componentes fundamentales, la placa de desarrollo
y un sensor de humedad y temperatura.
Además disponemos de los cables necesarios para la programación y para
conectar el sensor.
1.1 Placa de desarrollo NodeMCU v2 basada en ESP8266
- Conectividad WiFi IEEE 802.11 b/g/n
- Múltiples pines de E/S: GPIOs, ADC, UART, I2C, SPI. PWM,
1-wire
- Programable con IDE Arduino (interfaz USB)
- CPU: 32-bit RISC Tensilica Xtensa LX106 (80 MHz)
- SRAM: 64KB
Memoria
- FLASH: 4MB
- Muy usado comercialmente (domótica WiFi) y gran soporte
comunidad Maker

Figura 1. Pinout del módulo NodeMCU
1.2 Sensor DHT11
- Sensor digital de humedad relativa (HR) y temperatura
- Incorpora microcontrolador de 8 bits
- Resolución 1ºC / 1% HR. Precisión 2ºC / 5% HR
- Comunicación con línea serie (protocolo propio)
- Librería arduino específica para ESP (DHTesp)

Figura 2. Detalle del módulo con DHT11
2. Conexionado
La conexión del sensor es sencilla, pero debemos ser cuidadosos para no provocar que se chamusque algún componente.
El sensor tiene tres terminales que conectar (figura 2), desde arriba: VCC (3.3V), DATA (bus de datos) y GND (0 V).
Conectaremos
VCC a cualquier pin del módulo marcado con la serigrafía 3V3 y GND a un
pin del módulo marcado con GND. El bus de datos (DATA) tenemos que
conectarlo a un GPIO de nuestro módulo.
En esta línea DATA es donde se produce la comunicación digital serie entre nuestro módulo WiFi y el sensor.
En nuestro caso vamos a usar el GPIO 2, correspondiente con el pin marcado como D4 en el módulo.
En
la figura 3 vemos la conexión realizada donde el cable naranja es el de
datos (GPIO2/D4<=> DATA), el cable rojo es el de alimentación
positivo (3V3<=>VCC) y el cable marrón es el de alimentación
negativo (GND<=>GND).
Cuando conectemos nuestro módulo por USB
al ordenador veremos como el led rojo del sensor se enciende para
indicar que está alimentado.
Al realizar una lectura del sensor se
iluminará brevemente un led azul en nuestro módulo, eso se debe a que
estamos usando el GPIO2 que está conectado en la placa del módulo a un
led que está situado al lado del pin D0.

Figura 3. Ejemplo de conexión.
3. Programación
Para empezar a programar con el IDE de Arduino hay que descargarlo e instalarlo (https://www.arduino.cc/en/Main/Software).
Antes
de empezar a trabajar con los módulos de la familia ESP8266 por primera
vez hay que seguir las instrucciones disponibles en el Apendice A.
Para trabajar con el sensor DHT11 debemos instalar la librería en Arduino siguiendo las instrucciones del Apendice B.
El
programa de Arduino siguiente es una simplificación del ejemplo
disponible en la librería. Un programa en Arduino necesita dos
funciones obligatorias:
- setup() , donde se inicializan los
objetos y variables necesarias. En este caso se inicializa el interfaz
serie para depurar a la velocidad de 115200 baudios y se
inicializa el objeto dht indicando que el sensor se ha conectado al
GPIO 2 y que se trata de un sesnor del tipo DHT11. Esta función se
ejecuta una sola vez al arrancar el módulo y a continuación se ejecuta
la función loop.
- loop() , donde se ejecuta el bucle de control
principal. En este ejemplo el bucle principal lee cada cierto tiempo la
humedad y temperatura haciendo uso del objeto dht y lo muestra los
valores por el interfaz serie. Esta función se repite indefinidamente.
Para probarlo abrir un nuevo proyecto/sketch en Arduino (Archivo->nuevo) y sustituir el código por el siguiente (figura 4):
#include "DHTesp.h"
DHTesp dht;
void setup()
{
Serial.begin(115200);
Serial.println();
String placa= ARDUINO_BOARD;
Serial.println(placa);
Serial.println("Estado\tHumedad (%)\tTemperatura (C)");
dht.setup(2, DHTesp::DHT11); // Conecta el sensor DHT11 al GPIO 2 (pin D4)
}
void loop()
{
delay(dht.getMinimumSamplingPeriod());
float humedad = dht.getHumidity();
float temperatura = dht.getTemperature();
Serial.print(dht.getStatusString());
Serial.print("\t");
Serial.print(humedad);
Serial.print("\t\t");
Serial.println(temperatura);
delay(2000);
}
Figura 4. Programa de pruebas
Para compilarlo y mandarlo a la
placa es necesario tener la placa conectada por USB (compronar
que en Herramientas->Puerto, se ha seleccionado el COM adecuado) y
pulsar el botón con la flecha en la barra de herramientas superior o en
el menú "Programa" seleccionar "Subir".
Después de unos instantes,
si todo va bien, el programa comenzará a ejecutarse en la placa. Para
comprobar como funciona hay que abrir el monitor serie (ver figura 5).
Una vez abierto deberíamos ver la salida que estamos mandando desde
nuestro programa con los valores de humedad y temperatura (figura 6).
Si en el monitor serie no vemos la saldia esperada:
- comprobar que el programa ha compilado correctamente
- comprobar que se ha subido a la placa correctamente (sino, compronar que en Herramientas->Puerto, se ha seleccionado el COM adecuado).
- comprobar que la velocidad de transmisión está sincronizada con la establecida en el programa (ver figura 6 )

Figura 5. Cómo abrir el monitor serie para depurar. Las dos alternativas están marcadas (1) y (2).

Figura 6. Monitor serie. Si no se obtiene salida comprobar la velocidad (1)
4. Referencias
El hardware está disponible para su adquisición por ejemplo en: KIT
IOT BÁSICO HUMEDAD Y TEMPERATURA (ESP8266+DHT11)
Apendice
A: Instalar
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

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.
La
que tenemos en el laboratorio es "NodeMCU 1.0 (ESP-12E Module)".
Es
la que tenemos que seleccionar y asegurarnos que tenemos seleccionado en herramientas->puerto el
puerto serie donde está la placa conectada.
Con
eso ya podemos compilar y descargar nuestro programa a la tarjeta
ESP8266.

Apendice
B: Instalar librería DHTesp
Para instalar en Arduino la libraría necesaria para usar el sensor
DHT11 sigue los siguientes pasos...
En el IDE de Arduino accede al menú de herramientas (1) y abre el
gestor de librerías (2):

En el gestor de librerías busca (1) el nombre DHTesp, cuando encuentre
la librería adecuada (2), pulsa en el botón instalar (3) y espera unos
momentos.
Cuando termine el proceso pulsa el botón "Cerrar" del gestor
de librerías.