Los teléfonos móviles son muy comunes hoy en día y cada nueva tecnología se conecta y se superpone con el dominio móvil en estos días. Incluso se están desarrollando muchos proyectos de sistemas integrados que implican el uso de teléfonos inteligentes . Este proyecto trata sobre el monitoreo de datos de sensores en un teléfono Android. Los sensores utilizados en el proyecto son LDR y DHT 11, que permiten monitorear la intensidad de la luz, la temperatura y la humedad. Los sensores están conectados a un Arduino Pro Mini que transmite los datos a un teléfono Android con la ayuda de un módulo Bluetooth HC-05.
El proyecto también implica el desarrollo de una aplicación móvil basada en MIT App Inventor. El software le permite desarrollar una aplicación móvil simplemente creando la interfaz e integrando bloques de código. La aplicación desarrollada para el proyecto se puede descargar desde Garagem dos Engenheiros.
El código Arduino del proyecto lee los datos del sensor y los transmite al teléfono Android a través del módulo Bluetooth. HC-05 es un módulo serial Bluetooth que transmite o recibe datos en serie. Los datos se muestran en una única aplicación de actividad bajo los encabezados de temperatura, humedad e intensidad de luz. Los mismos datos también se muestran en una pantalla LCD.
Componentes necesarios –
•Arduino PRO MINI
•LCD 16×2
• Módulo Bluetooth HC-05
• Sensor DTH 11
• Sensor LDR
• Reguladores de voltaje 7805
• LED de 5 mm
• Resistencia de 1K ohmios
Diagrama de bloques -
Fig. 1: Diagrama de bloques del monitor de datos del sensor controlado por Bluetooth basado en Arduino
Conexiones de circuito –

Fig. 2: Prototipo de monitor de datos de sensor controlado por Bluetooth basado en Arduino
El proyecto involucra un circuito basado en Arduino y un teléfono Android. El circuito basado en Arduino se ensambla de la siguiente manera:
Fuente de alimentación: la energía es suministrada por una batería de 18 V. El suministro de la batería se regula a 5 V CC mediante el regulador de voltaje IC 7805. El IC tiene tres pines: el pin 1 debe conectarse al ánodo de la batería, los pines 2 y 3 al cátodo (tierra común). Los 5V DC deben tomarse del pin 3 del IC. También se puede conectar un LED junto con una resistencia pull-up de 10 K Ω entre la tierra común y el pin de salida para obtener una señal visual de la continuidad de la energía.
LCD 16X2: La pantalla LCD 16X2 se utiliza para mostrar los datos del sensor. Se conecta a la placa Arduino conectando sus pines de datos a los pines 2 a 5 de la placa Arduino. Los pines RS y E de la pantalla LCD están conectados a los pines 13 y 12 del Arduino UNO respectivamente. El pin LCD RW está conectado a tierra.
Fig. 3: Tabla que enumera las conexiones del circuito entre Arduino Uno y el LCD de caracteres
En el proyecto se utiliza la biblioteca estándar de código abierto para interconectar la pantalla LCD con la placa Arduino. La biblioteca funciona como se esperaba y no necesita cambios ni modificaciones.
Sensor de temperatura y humedad DHT-11: el sensor DHT-11 lee la temperatura y humedad ambiente y transmite los datos al microcontrolador como datos digitales. El pin de datos del sensor de temperatura y humedad DHT11 está conectado al pin A0 del Arduino Pro Mini, y el VCC y tierra están conectados al VCC y tierra común.
Sensor LDR: el LDR se utiliza para detectar la intensidad de la luz. El sensor está conectado al pin A1 de la placa Arduino. El sensor está conectado a un circuito divisor de potencial. El LDR proporciona un voltaje analógico que el ADC incorporado convierte en una lectura digital.
Módulo Bluetooth HC-05: el módulo Bluetooth HC-05 es un módulo de protocolo de puerto serie. Opera en la banda ISM de 2,4 GHz con V2.0 + EDR (Enhanced Data Rate). Puede funcionar en modo Maestro y Esclavo. El módulo Bluetooth tiene seis pines: Habilitar, VCC, Tierra, Transmitir datos (TxD), Recibir datos (RxD) y Estado. Los pines Enable y State no se utilizan y, por lo tanto, no están conectados al circuito. Los pines VCC y Tierra están conectados a VCC y Tierra comunes. Los pines TxD y RxD del módulo están conectados a los pines 8 y 9 del Arduino Pro Mini respectivamente.
Cómo funciona el circuito –

Fig. 4: Imagen del monitor de datos del sensor controlado por Bluetooth basado en Arduino
Cuando se enciende el circuito, la placa Arduino carga las bibliotecas necesarias y comienza a recuperar datos del sensor de temperatura y humedad DHT-11 y del sensor LDR. El sensor de temperatura y humedad DHT11 es un sensor digital con un termistor y un sensor de humedad capacitivo incorporados. Transmite una lectura de temperatura y humedad en tiempo real cada 2 segundos. El sensor funciona con una fuente de alimentación de 3,5 a 5,5 V y puede leer temperaturas entre 0° C y 50° C y humedad relativa entre 20% y 95%.
El sensor no se puede conectar directamente a un pin digital de la placa, ya que funciona con el protocolo de 1 cable que solo debe implementarse en el firmware. Primero, el pin de datos se configura para la entrada y se le envía una señal de inicio. La señal de inicio comprende un BAJO durante 18 milisegundos seguido de un ALTO durante 20 a 40 microsegundos seguido de un BAJO nuevamente durante 80 microsegundos y un ALTO durante 80 microsegundos.
Después de enviar la señal de inicio, el pin se configura para salida digital y se bloquean los datos de 40 bits que consisten en la lectura de temperatura y humedad. De los datos de 5 bytes, los primeros dos bytes son la parte entera y decimal de la lectura de humedad relativa respectivamente, el tercer y cuarto bytes son la parte entera y decimal de la lectura de temperatura y el último es el byte de suma de verificación.
Para Arduino, ya está disponible la biblioteca estándar para el sensor DHT-11. Los datos del sensor se pueden preparar fácilmente llamando al método read11 de la clase DHT.
El sensor LDR está conectado a un circuito divisor de potencial e introduce un voltaje en el pin de entrada analógica del controlador. El voltaje se lee y digitaliza utilizando el canal ADC incorporado.
El boceto de Arduino almacena los datos del sensor en un conjunto de variables globales y los transfiere al módulo Bluetooth en una cadena formateada a través de comunicación en serie. Los mismos datos se envían al módulo LCD para su visualización. La aplicación móvil del teléfono Android debe estar emparejada con el módulo Bluetooth. El módulo Bluetooth utilizado en el proyecto tenía una dirección Mac 05 20:15:01:30:17:25 para su identificación única y una contraseña 1234 para el emparejamiento. Otros módulos Bluetooth también tienen direcciones y contraseñas de Mac para identificación y emparejamiento con otros dispositivos, respectivamente. Después de que el teléfono Android se empareje con el módulo Bluetooth en el circuito, los datos transmitidos en serie se mostrarán en la actividad principal de la aplicación personalizada.
La transmisión de datos del sensor se mantiene ininterrumpida en el proyecto y muestra encabezados de temperatura, humedad e intensidad de luz en la actividad principal de la aplicación.
Consulte el código del programa para ver cómo Arduino lee los datos del sensor DHT 11 y LDR y los transmite en serie a través del módulo Bluetooth.
Guía de programación –
El boceto de Arduino importa la biblioteca SoftwareSerial para la comunicación serial virtual con el módulo Bluetooth, la biblioteca LiquidCrystal para la interfaz LCD y DHT.h para manejar sensores de temperatura y humedad. Se declara un pin LED para probar el progreso de la transmisión y se declara un objeto de tipo DHT. Se declara un objeto para la comunicación en serie virtual y se asigna a los pines conectados al módulo Bluetooth. Se crea una instancia de un objeto de tipo LCD y se asigna con los respectivos pines Arduino. Se declaran variables para mantener los valores de temperatura, humedad e intensidad de luz.
Se llama a una función de configuración en la que la velocidad en baudios para la comunicación en serie con el módulo Bluetooth y la pantalla LCD se establece en 9600 bits por segundo y algunas cadenas de texto iniciales se imprimen en el módulo LCD.
Fig. 5: Captura de pantalla de la función de inicialización y configuración en código Arduino para el monitor de datos del sensor controlado por Bluetooth
Se llama a la función de bucle en la que los datos del sensor se leen utilizando funciones de biblioteca estándar y se almacenan en las variables respectivas. Los valores almacenados en variables se muestran en la pantalla LCD y se transmiten en serie al módulo Bluetooth para enviarlos a la aplicación móvil. La aplicación móvil recibe los valores transmitidos vía Bluetooth y los muestra en la actividad principal de la aplicación.
Fig. 6: Captura de pantalla de la función Loop en el monitor de datos del sensor controlado por Bluetooth
Encontrará el código completo para el monitoreo de datos de sensores en el proyecto de Android en la pestaña de código fuente.
Nota: Puede encontrar el archivo rar de la aplicación móvil Sensor Data en el archivo adjunto a continuación.
Código fuente del proyecto
###
//Programa para
#incluir // Biblioteca de software en serie
#incluir
#incluir
constante int ledPin = 13; // LED
dhtDHT;
#definir dht_dpin A0
SoftwareSerial BTserial(8,9); // RX TX
LiquidCrystal lcd(13, 12.5, 4, 3.2);// Pines utilizados para RS,E,D4,D5,D6,D7
int humi,temp,datos;
configuración nula {
Serie.begin(9600);
BTserial.begin(9600);
lcd.comenzar(16,2);
lcd.setCursor(0,0);
lcd.print("Garaje de ingenieros");
lcd.setCursor(0,1);
lcd.print(" CONEXIÓN BT ");
retraso(3000);
lcd.setCursor(0,1);
lcd.imprimir(" ");
}
bucle vacío {
escritura digital (ledPin, ALTA);
DHT.read11(dht_dpin); //leer datos DTH11
datos = lectura analógica (A1);
humi = DHT.humedad; // Datos del sensor de humedad DTH11
temp = DHT.temperatura; // Datos del sensor de temperatura DTH11
lcd.setCursor(0,1);
lcd.print(humi);
lcd.setCursor(7,1);
lcd.print(temp);
lcd.setCursor(13,1);
lcd.print(datos);
BTserial.println(humi);
Serial.println(humi);
BTserial.print(" ");
BTserial.println(temp);
Serial.println(temp);
BTserial.print(" ");
BTserial.println(datos);
Serial.println(datos);
retraso(1000);
escritura digital (ledPin, BAJO);
retraso(50);
}
###
Vídeo del proyecto