Nota

¡Hola! Bienvenido a la Comunidad de Entusiastas de SunFounder para Raspberry Pi, Arduino y ESP32 en Facebook. Sumérgete en el mundo de Raspberry Pi, Arduino y ESP32 junto a otros entusiastas.

¿Por qué unirse?

  • Soporte Experto: Resuelve problemas postventa y desafíos técnicos con la ayuda de nuestra comunidad y equipo.

  • Aprende y Comparte: Intercambia consejos y tutoriales para mejorar tus habilidades.

  • Avances Exclusivos: Obtén acceso anticipado a anuncios de nuevos productos y adelantos exclusivos.

  • Descuentos Especiales: Disfruta de descuentos exclusivos en nuestros productos más recientes.

  • Promociones Festivas y Sorteos: Participa en sorteos y promociones festivas.

👉 ¿Listo para explorar y crear con nosotros? Haz clic en [Aquí] y únete hoy mismo.

Monitor Ambiental con Bluetooth

Este proyecto utiliza una aplicación de Android creada con MIT App Inventor para recibir y mostrar datos ambientales desde una placa Arduino. La placa Arduino obtiene datos de un sensor DHT11 para medir la temperatura y la humedad. Una vez recopilados los datos, se transmiten por Bluetooth. La aplicación mostrará los datos en la pantalla una vez que los reciba.

La aplicación de Android se construirá utilizando una plataforma web gratuita conocida como MIT App Inventor. El proyecto presenta una excelente oportunidad para familiarizarse con la interfaz entre un Arduino y un smartphone.

Componentes Requeridos

En este proyecto, necesitamos los siguientes componentes.

Es definitivamente conveniente comprar un kit completo, aquí está el enlace:

Nombre

Ítems en este Kit

Enlace

Elite Explorer Kit

300+

Elite Explorer Kit

También puedes comprarlos por separado desde los enlaces a continuación.

Introducción del Componente

Enlace de Compra

Arduino Uno R4 WiFi

-

Protoboard

COMPRAR

Cables de Puente

COMPRAR

Módulo Sensor de Humedad y Temperatura

COMPRAR

1. Construye el Circuito

../_images/08-bluetooth_environmental_monitor_bb.png ../_images/08_ble_home_schematic.png

2. Crea la Aplicación de Android

La aplicación de Android se desarrollará utilizando una aplicación web gratuita conocida como MIT App Inventor. MIT App Inventor es un excelente punto de partida para el desarrollo de Android, gracias a sus características intuitivas de arrastrar y soltar que permiten la creación de aplicaciones simples.

Ahora, vamos a empezar.

  1. Ve a Comenzar con MIT App Inventor y haz clic en «herramienta en línea» para iniciar sesión. Necesitarás una cuenta de Google para registrarte en MIT App Inventor.

    ../_images/08_ai_signup.png
  2. Después de iniciar sesión, navega a Projects -> Import project (.aia) from my computer. Posteriormente, sube el archivo ble_environmental_monitor.aia ubicado en la ruta elite-explorer-kit-main\iot_project\08-bluetooth_environmental_monitor.

    También puedes descargarlo directamente aquí: ble_environmental_monitor.aia

    ../_images/08_ai_import.png
  3. Al subir el archivo .aia, verás la aplicación en el software MIT App Inventor. Esta es una plantilla preconfigurada. Puedes modificar esta plantilla después de haberte familiarizado con MIT App Inventor a través de los siguientes pasos.

  4. En MIT App Inventor, tienes 2 secciones principales: el Designer y los Blocks. Puedes alternar entre estas dos secciones en la esquina superior derecha de la página.

    ../_images/08_ai_intro_1.png
  5. El Designer te permite agregar botones, texto, pantallas y modificar la estética general de tu aplicación.

    ../_images/08_ai_intro_2.png
  6. A continuación, está la sección de Blocks. Esta sección te permite crear funcionalidades personalizadas para tu aplicación, permitiéndote programar cada componente en la GUI de la aplicación para lograr las características deseadas.

    ../_images/08_ai_intro_3.png
  7. Para instalar la aplicación en un smartphone, navega a la pestaña Build.

    ../_images/08_ai_intro_4.png
    • Puedes generar un archivo .apk. Después de seleccionar esta opción, aparecerá una página que te permitirá elegir entre descargar un archivo .apk o escanear un código QR para la instalación. Sigue la guía de instalación para completar la instalación de la aplicación.

      También puedes descargar nuestro APK precompilado aquí: ble_environmental_monitor.apk

    • Si deseas subir esta aplicación a Google Play u otro mercado de aplicaciones, puedes generar un archivo .aab.

3. Sube el Código

  1. Abre el archivo 08-bluetooth_environmental_monitor.ino bajo la ruta elite-explorer-kit-main\iot_project\08-bluetooth_environmental_monitor, o copia este código en Arduino IDE.

    Nota

    Para instalar la biblioteca, usa el Administrador de Bibliotecas de Arduino para buscar e instalar «DHT sensor library» y «ArduinoBLE».

  2. Después de seleccionar la placa y el puerto correctos, haz clic en el botón Upload.

  3. Abre el monitor serial (configurado a una tasa de baudios de 9600) para ver los mensajes de depuración.

4. Conexión de la Aplicación y el Módulo Bluetooth

Asegúrate de que la aplicación creada anteriormente esté instalada en tu smartphone.

  1. Inicialmente, enciende el Bluetooth en tu smartphone.

    ../_images/08_app_1.png
  2. Ahora abre la Environmental Monitor APP recién instalada.

    ../_images/08_app_2.png
  3. Cuando abras esta aplicación por primera vez, aparecerán dos solicitudes de autorización sucesivas. Estos son los permisos necesarios para usar Bluetooth.

    ../_images/08_app_3.png
  4. En la APP, haz clic en el botón Connect para establecer una conexión entre la APP y el módulo Bluetooth.

    ../_images/08_app_4.png
  5. Esta página muestra una lista de todos los dispositivos Bluetooth emparejados. Elige la opción xx.xx.xx.xx.xx.xx UNO R4 Home de la lista. El nombre de cada dispositivo se lista junto a su dirección MAC.

    ../_images/08_app_5.png
  6. Si no ves ningún dispositivo en la página mostrada arriba, puedes intentar activar el interruptor de ubicación del dispositivo (algunas versiones del sistema Android combinan el interruptor de ubicación con la función Bluetooth).

    ../_images/08_app_6.png
  7. Después de una conexión exitosa, serás redirigido a la página principal donde se mostrarán la temperatura y la humedad.

    ../_images/08_app_7.png

5. Explicación del Código

  1. Importar Bibliotecas y Definir Constantes

    • Importa las bibliotecas requeridas y define las constantes para el pin y tipo del sensor DHT.

    Nota

    Para instalar la biblioteca, usa el Administrador de Bibliotecas de Arduino para buscar e instalar «DHT sensor library» y «ArduinoBLE».

    #include <DHT.h>
    #include <ArduinoBLE.h>
    #define DHTPIN 11
    #define DHTTYPE DHT11
    
  2. Inicializar Servicios y Características BLE

    BLEService environmentalSensingService("181A");
    BLEShortCharacteristic temperatureCharacteristic("2A6E", BLERead | BLENotify);
    BLEUnsignedShortCharacteristic humidityCharacteristic("2A6F", BLERead | BLENotify);
    
  3. Función de Configuración

    • Inicializa la comunicación Serial, el sensor DHT y el BLE.

    void setup() {
      Serial.begin(9600);
      dht.begin();
      if (!BLE.begin()) {
        Serial.println("starting Bluetooth® Low Energy module failed!");
        while (1)
          ;
      }
      setupBle();
    }
    
  4. Bucle Principal

    • Busca eventos BLE y actualiza los datos del sensor a intervalos regulares.

    • La línea millis() - lastUpdateTime > updateInterval asegura que los datos del sensor se actualicen cada milisegundos de updateInterval.

    void loop() {
      BLE.poll();
      if (millis() - lastUpdateTime > updateInterval) {
        // Leer datos del sensor y actualizar las características BLE
      }
    }
    
  5. Funciones BLE y de Depuración

    Funciones para configurar BLE, imprimir información de depuración y gestionar eventos BLE.

    void printDHT(float h, float t) { /* ... */ }
    void setupBle() { /* ... */ }
    void blePeripheralConnectHandler(BLEDevice central) { /* ... */ }
    void blePeripheralDisconnectHandler(BLEDevice central) { /* ... */ }
    
    • printDHT(float h, float t): Utilizada para imprimir los datos de temperatura y humedad leídos por el DHT11 en el monitor serial. Esta función es para fines de depuración.

    • setupBle(): Inicializa el Bluetooth, incluyendo el nombre de difusión, las características y los servicios.

    • blePeripheralConnectHandler(BLEDevice central) y blePeripheralDisconnectHandler(BLEDevice central): Estas funciones manejan eventos cuando el Bluetooth se conecta o desconecta. Cuando un dispositivo se conecta exitosamente con el UNO R4 vía Bluetooth, el LED integrado se enciende. Cuando el dispositivo se desconecta, el LED se apaga.