Practica 1 ESP8266
Practica 1 ESP8266
Practica 1 ESP8266
OBJETIVOS
o Conectar un módulo ESP8266 a una red WiFi.
o Conectarle un sensor DHT11 y leer los datos de temperatura y humedad.
o Aprender a subir los datos a un servidor.
MATERIAL REQUERIDO.
TIENDA ESPAÑA
Nodemcu V2
Sensor DHT11
CONSIDERACIONES PREVIAS
Antes de comenzar esta práctica, vamos a repasar algunas cuestiones que vamos a necesitar
tener preparadas, y otras que tenemos que considerar ante de ponernos a realizarla.
Lo primero es bastante evidente, si vamos a querer subir valores a una base de datos que
tengamos en un servidor, necesitamos un servidor preparado para ello. Podéis haceros uno
propio, o utilizar alguna página que lo permite, como https://thingspeak.com/.
Revisen los enlaces de un servidor previo realizado para un proyecto con Raspberry Pi, aquí
están los enlaces:
Por otra parte, si están familiarizados con los esp8266, sabrán que hay bastantes modelos
diferentes con ese mismo chip. Aquí hace tiempo que nos decidimos por los NodeMCU (a
partir del modelo 1.0), que son a nuestro parecer los más sencillos y completos, así que este
tutorial vamos a hacerlo utilizando uno de ellos. Si no habéis trabajado nunca con este tipo de
módulos, tenemos algunas sesiones en las que hablamos de todo esto más en profundidad:
El DHT11 es un sensor que nos permite leer la temperatura y la humedad relativa. No es muy
preciso, pero es muy barato y fácil de utilizar, y nos va a servir de sobra para lo que queremos
hacer. Estos sensores se presentan de muy diversas formas, con 3 o 4 pines en función de si
tienen la resistencia pull-up incluida o no, y el orden de los pines puede variar de un modelo a
otro, así que es importante que observen los detalles. Los más normales son estos dos:
Una vez tengamos claro cuál es el nuestro sólo tenemos que conectarlo. En este caso el
nuestro tiene la resistencia pull-up incorporada y 3 pines, así que la conexión la haríamos de
esta forma (si tienes el de 4 pines busca la conexión correcta en internet).
Ahora ya podemos empezar con el programa, pero antes tendremos que descargar el pluggin
para el esp8266 si no lo han usado nunca anteriormente.
Una vez instalado el pluggin lo primero que deben hacer es descargar la librería que vamos a
utilizar DHT11.zip si no la han usado nunca antes. Comenzamos el programa incluyendo la
librería y definimos una instancia del sensor donde declaramos el pin al que está conectado.
#include <DHT11.h>
DHT11 dht11(D4);
Si se fijan, hemos nombrado el pin como D4, y no como 4 como haríamos con cualquier
Arduino normal. Y es que los nombres de los pines no corresponden con los GPIOS en el
NodeMCU. De hecho si prueban a poner 4, no funcionará, ya que el pin que identifica como 4
es el rotulado como D2. En esta imagen lo podrán ver de forma más clara:
Así que para evitar confusiones pueden poner la ‘D’ por delante y él pluggin se encargará hará
de hacer la relación.
Por lo demás el programa es sencillo. Utilizaremos la función dht11.read pasándole como
parámetros las variables donde queremos guardar los valores, comprobando que no haya un
error. El programa quedaría así:
#include <DHT11.h>
int pin=2;
DHT11 dht11(pin);
void setup()
{
Serial.begin(9600);
}
void loop()
{
int err;
float temp, hum;
if((err = dht11.read(hum, temp)) == 0) // Si devuelve 0 es que ha leid
o bien
{
Serial.print("Temperatura: ");
Serial.print(temp);
Serial.print(" Humedad: ");
Serial.print(hum);
Serial.println();
}
else
{
Serial.println();
Serial.print("Error Num :");
Serial.print(err);
Serial.println();
}
delay(1000); //Recordad que solo lee una vez por segundo
}
Ahora prueba a subir el programa, asegurándote de que has seleccionado como placa el
NodeMCU. Una vez cargado, si abrimos el puerto serie veremos los valores de temperatura y
humedad.
Pueden hacer que suban tanto la temperatura como la humedad echando un poco de aliento
en el sensor, y verán cómo varían los valores.
SUBIR LOS VALORES A UNA BASE DE DATOS EN UN SERVIDOR
Ya sólo nos queda subir los valores al servidor. Básicamente lo que hemos hecho ha sido
adaptar uno de los programas que vienen de ejemplo con la librería llamado «WiFiClient». Lo
primero que hacemos es incluir la librería (no tenéis que descargarla porque se instala con el
pluggin que ya hemos descargado), y además vamos a declarar algunas variables que
usaremos para conectarnos a la red WiFi, nombre de la red y password, y la dirección
del servidor al que subiremos los datos.
Ahora no tienen más que subir el programa y si abren el puerto serie verán como establece la
conexión a la red WiFi y envía una petición cada minuto.
Y si ahora acceden al servidor al que lo han subido y miran en la base de datos deberían estar
esos mismos valores en la tabla a la que los hayan subido.
Con esto creemos ya estarán en posición de adaptar este programa para sus propios
montajes y propósitos.
RESUMEN
o Hemos usado un DHT11 para leer los datos de temperatura humedad usando un NodeMcu.
o Nos hemos conectado a una red WiFi.
o A establecer una conexión TCP con un servidor.
o Hemos subido los datos de temperatua y humedad a un servidor.