
Monitorizar la temperatura y la humedad desde el móvil con Arduino y Blynk
En este tutorial vamos a aprender cómo podemos ver la temperatura y la humedad desde el móvil usando Arduino y Blynk. Esto nos puede ser muy útil para ver la temperatura que tiene la habitación en la que estamos o la humedad de las plantas.
Esto se puede hacer posible gracias al sensor DHT, a continuación vamos a explicar los recursos que vamos a usar para conocerlos mejor.
¿Qué es el sensor DHT?
Los sensores DHT están hechos de dos partes, un sensor de humedad capacitivo y un termisor (básicamente es una resistencia que cambia su valor según la temperatura). También cuanta con un chip que hace una conversión analógica a digital y emite esta señal con la temperatura y la humedad. Gracias a esta conversión, la señal digital es fácil de leer por cualquier microcontrolador.
¿Qué es Blynk?
Blynk es una plataforma para crear aplicaciones IoT disponible para Android y iOS. Con los diferentes controladores Arduino, Raspberry pi, ESP8266, Intel Galileo, Particle, Serial, Wifi… podemos crear una aplicación para nuestros móviles para controlar o monitorizar estos controladores a través de Internet, Blink tiene muchas funciones, entre ellas podemos destacar envíos de e-mails, hacer publicaciones de Twitter, GPS, VideoStream y muchas más.
Un ejemplo de funcionalidad puede ser que tenemos un contador de personas automático con Arduino conectado con Blynk y lo programamos que al llegar a un cierto numero de personas publique un Tweet con el número de personas que han pasado por el sensor.
Página de Blink: https://blynk.io/
Tutorial oficial de Blynk sobre la instalación y prueba en Arduino: http://help.blynk.cc/getting-started-library-auth-token-code-examples/how-to-install-blynk-library-for-arduino
Componentes necesarios para la lectura de la temperatura y la humedad con Arduino
Todos los componentes están disponibles en nuestra tienda online.
- Placa Arduino (Para este tutorial usaremos Arduino Uno) – Ver en la tienda
- Sensor DHT11 – Ver en la tienda
- Cables de macho a hembra – Ver en tienda
También puedes adquirir el kit Geek maker donde estarán todos estos componentes y más.
Esquema del sensor DHT11
Dependiendo del sensor tenemos 3 o 4 pines y en algunos vienen marcados cual es cada pin y otro no, para los que no vienen marcados así es su esquema:
Conectaremos los pines a la placa de Arduino de la siguiente manera:
- VCC + -> 5v
- Señal/out -> D4
- GND – -> GND
Creación de la aplicación de Blynk
Ahora en la aplicación de Blynk crearemos un nuevo proyecto y obtendremos el token, en la aplicación añadiremos un Gauge.
Si le damos en la “i” del al lado en el componente vemos una parte que es lo que tendremos que poner el código para enviarle información al Gauge. Nos indican que para mandar info desde Arduino a Blynk, podemos usar “Blynk.virtualWrite(V5, val)”.
Para este caso, añadiremos 2, uno para la temperatura y otro para la humedad. Una vez añadidos, pulsaremos encima de uno de ellos y estableceremos la configuración para que el componente luego nos muestre los datos, luego lo haremos con el otro Gadge.
Hora de programar
A continuación mostramos el código que hay que reproducir para que nuestro sensor y la conexión con Blynk funcione.
Antes de ponerse a programar hay que instalar la librería para controlar el DHT.
Libreria DHT11 – Descargar
Puedes descargar el archivo del código dando click aquí
// Incluimos las librerias de Blynk
#define BLYNK_PRINT SwSerial
#include <SoftwareSerial.h>
SoftwareSerial SwSerial(10, 11); // RX, TX - Dependiendo de la placa pueden variar
#include <BlynkSimpleStream.h>
// Deberías obtener el token de autenticación en la aplicación Blynk.
// Ir a la configuración del proyecto (icono de tuerca).
char auth[] = "Tu Token de autenticación";
BlynkTimer timer;// Timer para leer los datos cuando queramos
// Librerias del sensor DHT11
#include <Wire.h>
#include <DHT.h>
// Definimos el pin digital donde se conecta el sensor
#define DHTPIN 4
// Definimos del tipo de sensor
#define DHTTYPE DHT11
// Definimos el DHT para poder obtener sus valores
DHT dht(DHTPIN, DHTTYPE);
void lecturaDatos(){
Blynk.virtualWrite(V5, dht.readTemperature()); // Escribimos en el pin Virtual 5 la temperatura
Blynk.virtualWrite(V6, dht.readHumidity()); // Escribimos en el pin Virtual 6 la humedad
}
void setup() {
dht.begin();
SwSerial.begin(9600);
Serial.begin(9600);
Blynk.begin(Serial, auth);
//Establecemos cada cuanto tiempo se van a leer y enviar los datos (1s) y que funcion tiene que ejecutar
timer.setInterval(1000L, lecturaDatos);
}
void loop() {
// Ponemos en marcha Blynk y el timer.
Blynk.run();
timer.run();
}

¡¡Sigue las novedades de Flexbot en Facebook y Twitter!!!
Anónimo
Me funcionó excepto por una cosa y es que me muestra una temperatura muy alta, como puedo arreglar eso?
humedad por capilaridad
A mi me ocurre lo contrario, me saca la temperatura más baja
¿a que es debido eso?
Ariel
No entiendo cómo se conecta a internet el Arduino Uno para pasar los datos al móvil