Ver humedad y temperatura desde celular con Bluetooth

Smelpro > Sin categoría  > Ver humedad y temperatura desde celular con Bluetooth

Ver humedad y temperatura desde celular con Bluetooth

Continuando con los tutoriales orientados a usar el sensor HC-05 en esta ocasión lo usaremos mostrar en una aplicación la temperatura y humedad del ambiente; para recopilar esa información usaremos el sensor DHT11, del cual ya tenemos un tutorial.

Recordemos que en el tutorial anterior el flujo de comunicación era desde tu teléfono hasta el Arduino, en esta ocasión tendremos que enviar los datos desde Arduino hasta tu teléfono; teniendo otra vez al módulo HC-05 como intermediario en su comunicación.

Te recomendamos ver estos dos tutoriales pasados, ya que en estos explicamos unos procesos que necesitarás:

 

Conexión

Combinaremos esquemas antes usados.

En el caso del HC-05 no usaremos los pines 1 y 0. Hemos configurado al pin al pin 4 como RX y al pin 2 como TX. Como es costumbre, se cruzan: el RXD con el TX y el TXD con el RX.

Y conectaremos el pin de datos del DHT11 al pin 6.

  

Programación

 

Arduino

Empezaremos incluyendo las librerías necesarias y configurándolas.

Posterior a eso abriremos los puertos serie creados.

Después empezaremos con el tratamiento de la información que enviaremos.

Aquí te dejamos el código que deberás subir a tu tarjeta Arduino:

#include <SoftwareSerial.h> //Incluimos una librería para usar
                            //otros pines como puerto serie
SoftwareSerial BT1(4,2);  //Nombramos el puerto, y asignamos los pines que
                          //usaremos. Harán de RX Y TX, respectivamente.

byte serialA; //Declaramos una variable tipo Byte

#include <DHT.h> //Librería para usar el DHT11
#define DHTPIN 6 //Indicamos el pin que usaremos
#define DHTTYPE DHT11
//#define DHTTYPE DHT22 //Solo escribe este si usa el DHT22
DHT dht(DHTPIN, DHTTYPE);

void setup() {     //Todo lo que se programe aquí se repetirá
  
  BT1.begin(9600); //Ajustamos la velocidad de nuestro puerto serie
  dht.begin();     //Comunicación con DHT
}

void loop() {
  delay(2000); //Espera 2 segundos
  float h = dht.readHumidity();       //Se lee la humedad
  float t = dht.readTemperature();    //Se lee la temperatura en Celsius
  float f = dht.readTemperature(true);//Se lee la temperatura en Fahrenheit


  // Bluetooth
  // Enviaremos 3 datos. El 0, el 1, el 2 y el 3.
    byte Datos[3]; //Declaramos una variable que puede almacenar varios datos (array)
    serialA=BT1.read(); //Indicamos que lea lo de BT1
    Datos[0]='a';  //El primer dato será un caracter para indicar a la app donde comenzar
    Datos[1]=t;    //El segundo 
    Datos[2]=f;     
    Datos[3]=h;    //Se envía el dato de la humedad

// Envío de datos.
     if (serialA == 49){   //Una condición para ejecutra lo siguiente:
      BT1.write(Datos[0]); //Escribir los datos enviados
      BT1.write(Datos[1]);
      BT1.write(Datos[2]);
      BT1.write(Datos[3]);
      serialA=0;           //Y hacer que A valga cero para que al evitar que
      }                    //se acumulen los datos
  delay(100);              //Esperar 1 segundo y continuar
}

 

Nota: la razón para comparar con 49 es que cada caracter equivale a un byte (8 Bits). Los datos 1, 2 y 3 envian cada uno dos números, con eso tenemos 48 bits, sumando la letra «a» enviada al inicio tenemos la cantidad que debemos indicar al programa para que envíe la información completa.

 

Descargar el archivo del código aquí. Recuerda colocarlo en una carpeta con el mismo nombre del archivo.

 

App Inventor

Iniciamos con unos ciclos para mantener informada a la aplicación de los botones que hayamos presionado.

Hemos dispuesto un botón para conectarse al módulo HC-05, el cual debe ser vinculado previamente (ingresa al tutorial aquí).

En los siguientes bloques declaramos cuatro variables globlales, en las cuales se almacenarán los datos enviados.

Después de eso está el proceso por el cual se trata la información en donde debe ser mostrada. Por ejemplo, cuando reciba la letra «a» empezará a pedir al módulo los demás bytes de información. Luego ordena colocar cada byte en su espacio correspondiente.

Dejamos aquí el proyecto (.aia) para importar en App Inventor.

Descargar aquí.

Después de vincular el proyecto desde la aplicación de App Inventor y haber subido el programa a tu Arduino deberíaspodrás visualizar los datos de temperatura y humedad.

Gracias por leer este nuevo tutorial, esperamos haberte ayudado.

Coméntanos que otras ideas tienes para estos componentes.

Contáctanos para brindarte asesoría en tus proyectos.

Blog
No Comments

Post a Comment

Comment
Name
Email
Website