Tutorial de uso del kit IoT

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

ESP pinout

Figura 1. Pinout del módulo NodeMCU

1.2 Sensor DHT11

dht11
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.
conexion
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:
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:
  1. comprobar que el programa ha compilado correctamente
  2. comprobar que se ha subido a la placa correctamente (sino, compronar que en Herramientas->Puerto, se ha seleccionado el COM adecuado).
  3. comprobar que la velocidad de transmisión está sincronizada con la establecida en el programa (ver figura 6 )

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

salida monitor
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


Preferencias IDE Arduino, ESP8266

Seguidamente vamos a Herramientas->placa: ... ->Gestor de Tarjetas

Y buscamos en la lista  "esp8266 by ESP8266 Community", lo seleccionamos  e instalamos

 Gestor de tarjetas- esp8266

 



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.


targetas 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):

menu herramientas

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.

busca