La Realidad Aumentada y la Realidad Mixta son el futuro de la interacción humana con el mundo real. La Realidad Aumentada es una tecnología que le permite proyectar imágenes, videos o medios en vivo en el entorno del mundo real junto con objetos reales visibles a través de una cámara o un dispositivo holográfico portátil. La tecnología le permite interactuar con el entorno del mundo real mientras lo manipula a través de gráficos generados por computadora e interfaces virtuales. Es una forma de modificar la visión que tiene una computadora del entorno del mundo real.
En este proyecto, se utiliza Realidad Aumentada para monitorear los datos de los sensores proporcionados a través de una placa de IoT. La placa IoT utilizada en el proyecto es Particle Photon. El Photon se instala en una ubicación remota con múltiples sensores (sensor de temperatura y humedad DHT 11, sensor LDR, sensor de proximidad IR y sensor IR) conectados. La placa está conectada al servidor en la nube y envía datos del sensor por aire a una aplicación de realidad aumentada. La aplicación proyecta datos del sensor mientras la cámara del teléfono Android enfoca una imagen objetivo.

Fig. 1: Imagen que muestra una aplicación de realidad aumentada que muestra datos del sensor
Particle Photon es una placa IoT compatible con Arduino. Para escribir código de programa para cualquier Photon, el desarrollador debe crear una cuenta en el sitio web de Particle y registrar la placa Photon con su cuenta de usuario. Luego, el código del programa se puede escribir en el IDE web del sitio web de Particle y transferirse a una placa IOT registrada a través de Internet. Si el Clúster seleccionado, aquí Photon, está encendido y conectado al servicio de nube de partículas, el código se escribe en la tarjeta seleccionada por aire a través de una conexión a Internet y la tarjeta comienza a funcionar de acuerdo con el código transferido.
La aplicación de realidad aumentada utilizada en el proyecto se construye utilizando el kit de desarrollo de software de realidad aumentada de Vuforia y Unity Editor. La plataforma de desarrollo le permite compilar una base de datos disponible, cargar imágenes de destino y crear elementos de interfaz de usuario en Unity Editor. La interfaz de usuario se puede vincular fácilmente a la base de datos descargada arrastrando y soltando elementos de la interfaz de usuario. Luego, la aplicación puede vincularse a la URL de registro de datos de la tarjeta Photon para capturar datos en tiempo real. La plataforma le permite compilar el proyecto en una aplicación móvil multiplataforma para usar en cualquier teléfono inteligente.
Componentes necesarios –
Circuito de placa de IoT:
1. Partícula de fotones.
2. Sensor DHT11.
3. Sensor LDR.
4. Cualquier conexión Wi-Fi.
5. Sensor de infrarrojos
6. Transistores BC547
7. Resistencia de 1K ohmios
LED de 8, 5mm
9. Sensor de proximidad.
Lado móvil:
1. Cualquier teléfono Android
Diagrama de bloques -

Fig. 2: Diagrama de bloques del monitor de datos del sensor de realidad aumentada basado en fotones de partículas
Conexiones de circuito –
En el proyecto, el circuito se construye conectando varios sensores al Particle Photon. El circuito tiene los siguientes componentes conectados al fotón de la manera que se menciona a continuación:
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 Particle Photon, y el VCC y la tierra están conectados al VCC y la tierra comunes.
Sensor LDR: el LDR se utiliza para detectar la intensidad de la luz. El sensor está conectado al pin A1 del fotón de partículas. 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.
Sensor IR: el sensor IR se utiliza para detectar cualquier obstáculo. El sensor está conectado al pin A2 del fotón de partículas. El sensor está conectado a un circuito divisor de potencial. El sensor de infrarrojos proporciona un voltaje analógico, que el ADC incorporado convierte en una lectura digital.
Sensor de proximidad IR: el sensor de proximidad IR detecta la distancia a un obstáculo. El módulo del sensor tiene tres pines: VCC, Tierra y Salida. VCC y tierra están conectados al VCC y a tierra comunes. El pin de salida del módulo sensor está conectado al pin D0 del Particle Photon. La salida del sensor es un voltaje analógico, que varía de 3,1 V a 10 cm a 0,4 V a 80 cm de distancia.
Fuente de alimentación: en el circuito, Photon y otros circuitos integrados necesitan una CC regulada de 5 V para su funcionamiento. Se utiliza una batería de 18 V como fuente de energía principal. La energía de la batería se regula a 5 V y 12 V mediante circuitos integrados 7805 y 7812. El pin 1 de ambos circuitos integrados reguladores de voltaje está conectado al ánodo de la batería y el pin 2 de ambos circuitos integrados está conectado a tierra. Las respectivas salidas de voltaje se toman del pin 3 de los respectivos circuitos integrados reguladores de voltaje. También se conecta 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.
Cómo funciona el circuito –
Una vez que el código del programa se transfiere a Particle Photon, comienza a funcionar en consecuencia. El Particle Photon debe estar conectado a cualquier punto de acceso a Internet a través de Wi-Fi. El código compatible con Arduino en el Photon lee los datos de los sensores. Cuatro sensores conectados a la placa: sensor de temperatura y humedad DHT 11, sensor LDR, sensor IR y sensor de proximidad IR.
El sensor de temperatura y humedad DHT11 es un sensor digital con un sensor de humedad capacitivo integrado y un termistor. Transmite lecturas 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 DHT 11 envía datos en formato digital a un pin del controlador en un protocolo de un solo cable, que debe implementarse en el lado del 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 comprenden la lectura de temperatura y humedad. Los primeros dos bytes de los datos de 5 bytes son una parte entera y una parte decimal de la lectura de humedad relativa, respectivamente. El tercer y cuarto bytes son una parte entera y decimal de la lectura de temperatura, y el último es un byte de suma de verificación. El protocolo de un solo cable se implementa en el firmware utilizando una biblioteca de código abierto disponible para Photon.
Los otros sensores emiten un voltaje analógico en sus respectivos pines del controlador. El voltaje analógico se lee y digitaliza mediante un canal ADC integrado. La función analogRead se utiliza para leer el voltaje analógico en el pin del controlador.
Los valores de los sensores se leen y almacenan en diferentes variables. Luego, las cadenas formateadas se pasan a la URL de registro de datos de Photon utilizando el método de publicación de la biblioteca de partículas. La biblioteca se importa y compila automáticamente mediante Particle Web IDE y no es necesario importarla explícitamente.
La aplicación de realidad aumentada está vinculada a la URL de registro de datos. Obtiene los datos de la URL y los muestra en los botones de la interfaz de usuario de la aplicación. Los botones se proyectan cuando la cámara enfoca la imagen de destino.
Consulte el código Photon para saber cómo el código compatible con Arduino lee los datos de los sensores y los publica en la URL de registro de datos vinculada. Además, consulte cómo se crea la aplicación AR utilizando el SDK de Vuforia y cómo se vincula al tablero Photon registrado.
Guía de programación –
La aplicación AR se creó utilizando el SDK de Vuforia e implica el uso de Unity Editor. El desarrollo de aplicaciones de Realidad Aumentada utilizando Vuforia SDK implica los siguientes pasos:
– Abra el Portal de desarrolladores de Vuforia y registre una cuenta.
– Verifique el ID de correo electrónico e inicie sesión en la cuenta de usuario registrada.
– Toque "Desarrollar" en la barra de navegación y haga clic en "Administrador de destino".
– Haga clic en “Agregar base de datos” e ingrese un nombre de base de datos único en la ventana emergente. Mantenga seleccionada la opción "dispositivo" y haga clic en "Crear"
botón.
– Haga clic en el nombre de la base de datos en la lista de bases de datos en la página actualizada y haga clic en el botón “Agregar destino”. Seleccione "Imagen única" y busque la imagen de destino en su computadora. Ahora la imagen de destino se cargará y se mostrará en la lista de objetivos.
– Haga clic en el botón “Descargar base de datos” y seleccione “Unity Editor” como plataforma de desarrollo en la ventana emergente. Haga clic en "Descargar"
botón. La base de datos se compilará y descargará en su computadora.
– Haga clic en "Descargas" en la barra de navegación y descargue Vuforia SDK para Unity.
– Haga clic en "Desarrollar" en la barra de navegación y toque "Administrador de licencias". Haga clic en "Agregar clave de licencia". Ingrese el nombre de la aplicación, seleccione el móvil de los dispositivos, seleccione el iniciador de la clave de licencia y haga clic en el botón “Siguiente”. Confirme para crear la clave de licencia. Cuando actualice la página, la clave de licencia recién creada se mostrará en la lista. – Haga clic en el nombre de la clave de licencia y cópiela de la página web.=
– Abra el SDK del editor de Unity. Crea un nuevo proyecto y guárdalo en una carpeta de tu computadora.
– En el SDK de Unity Editor, se debe seleccionar "ARCamera" en "Jerarquía" en la barra lateral izquierda. Haga clic en “Activos” -> “Importar paquete” ->
“Paquete personalizado” y explore el paquete Vuforia. Una vez importado el paquete, siga nuevamente “Activos” -> “Importar paquete” -> “Personalizado
Paquete” y busque la imagen de destino. Del mismo modo, importe la base de datos descargada previamente.
– Copie la clave de licencia y péguela en "Clave de licencia de la aplicación" en "Comportamiento de Vuforia" en la barra lateral. Marque “Cargar base de datos "
y "Habilitar" en "Comportamiento de carga de la base de datos".
– Seleccione “Objetivo de imagen” en “Jerarquía” en la barra lateral izquierda y seleccione el nombre de la base de datos en “Comportamiento de destino de imagen” en la barra lateral derecha. La imagen de destino se mostrará en el avión.
– Haga clic derecho en la ventana “Jerarquía” y seleccione “UI” -> “Pantalla”. Seleccione "Espacio mundial" en "Modo de renderizado" en la opción "Lienzo" en el
barra lateral derecha y haga doble clic en "Pantalla" en Jerarquía" en la barra lateral izquierda.
– En “Rect Transform” en la barra lateral derecha, ingrese una posición, rotación y valores de escala apropiados y haga clic en “Agregar componente”.
Seleccione la imagen”. Haga clic en la imagen de destino de la base de datos y configure "Modo de textura" en "Sprite". Haga clic en "Aplicar" y arrastre la imagen desde
Base de datos en “Proyecto” a “Imagen de origen” en “Canvas Renderer”. Cambia el color y el nivel de transparencia.
– Haga clic en “Pantalla” en la ventana “Jerarquía” y haga clic derecho y seleccione “UI” -> “Botón”. Cambiar la configuración de posición, escala, color y transparencia
. Haga clic derecho en "Botón" y haga clic en "UI" -> "Texto" para agregar texto al botón. Seleccione las propiedades de transformación, fuente y párrafo según desee. Agregue más texto al botón.
– Botón Duplicar haciendo clic derecho sobre él en la ventana “Jerarquía” y seleccionando “Duplicar”. Crea cinco botones más y cambia su texto.
– Haga clic derecho en la ventana “Jerarquía” y haga clic en “Crear vacío”. Cambie el nombre de la carpeta a "Contenedor de código" y agregue scripts de base de datos a
la carpeta.
– Arrastre y suelte botones y textos desde “Objetivo de imagen” en la ventana “Jerarquía” a la base de datos en la barra lateral derecha.
– Inicie sesión en Particle Web IDE, haga clic en el icono del Panel de control y haga clic en "Registros". Haga clic en el icono de URL de registro. Copie y pegue la URL en “Photon
URL de partícula” en “Leer flujo” en la barra lateral derecha de la base de datos seleccionada.
– Compile el proyecto para crear el archivo apk.
El código de Photon es el siguiente:
Primero, se importa la biblioteca del sensor DHT. Particle Web IDE agrega automáticamente la biblioteca. Se define una constante para indicar el pin al que está conectado el sensor DHT 11, y se define una constante para indicar una variante del sensor DHT. Se declara que las variables contienen el valor de temperatura, humedad, intensidad de la luz, movimiento y rango UV. Las variables se declaran para indicar los pines con los que interactúan los sensores y se configuran en digital BAJO de forma predeterminada para convertirlos en pines de entrada. Se declara un objeto de tipo DHT.
La función de configuración se llama cuando el pin conectado al sensor de proximidad infrarrojo se declara como pin de entrada usando la función pinMode. El sensor DHT se inicializa llamando al método Begin en el objeto DHT. La función de configuración se ejecuta solo una vez al comienzo del código.
El bucle se repite infinitamente. En la función de bucle, los datos del sensor DHT se obtienen utilizando los métodos getTempCelcius y getHumidity en el objeto DHT. Los datos del sensor LDR se obtienen llamando al método analogRead y se convierten a intensidad de luz usando fórmulas estándar. El valor del sensor IR se lee y se convierte en una medición de distancia. Se llama a una función pirSensor personalizada para detectar movimiento desde el sensor de proximidad. Los datos de diferentes sensores se almacenan en variables, se agrupan en cadenas adecuadas y se envían a la URL de registro de datos mediante el método de publicación en el objeto Particle.
Nota: El código completo de Photon para la visualización de datos del sensor basado en AR se puede encontrar en la sección de códigos.
Puede encontrar el siguiente enlace para descargar el archivo rar de la aplicación de Android.
https://github.com/EngenheirosGaragem/Software/bruto/master/AR_Data.rar
Código fuente del proyecto
###
//Programa para // Residencia en; // algunas cosas útiles: // Esta declaración #include fue agregada automáticamente por Particle IDE. #incluir "Adafruit_DHT/Adafruit_DHT.h" // Esta declaración #include fue agregada automáticamente por Particle IDE. //parámetros DHT #definir DHTPIN A0 #definir DHTTYPE DHT11 //variables temperatura interna; humedad interna; luz interna; movimiento int; ultravioleta interno; int t = 100; // equipo int luz_sensor_pin = A1; int pir = D0; int pirState = BAJO; int uv = A2; // sensor DHT DHT dht(DHTPIN, DHTTYPE); configuración nula { // Iniciar sensor DHT pinMode(D7,SALIDA); pinMode(pir,ENTRADA); dht.comenzar; } bucle vacío { escritura digital (D7, ALTA); // Medición de humedad temperatura = dht.getTempCelcius; // Medición de humedad humedad = dht.getHumidity; // Medición del nivel de luz float light_measurement = analogRead(light_sensor_pin); luz = (int)(medición_luz/4096*100); int uvValue=analogRead(uv); ultravioleta = (valoruv*100)/1023; // Publicar datos Particle.publish("temperatura", String(temperatura));// + " °C"); demora Particle.publish("humedad", String(humedad));// + "%"); demora Particle.publish("luz", String(luz));// + "%"); demora pirSensor; // información del sensor de movimiento demora Particle.publish("ultravioleta", String(ultravioleta)); demora escritura digital(D7,BAJO); demora } pirSensor vacío { movimiento = digitalRead(pir); // leer el valor de entrada Partícula.publish("movimiento", "1"); // o 1 - Sólo queremos imprimir en el cambio de salida, no en el estado si (movimiento == falso) Partícula.publish("movimiento", "0"); // o 0 - Serial.println("¡El movimiento finalizó!"); }
###
Diagramas de circuito
| Diagrama de circuito Monitor de datos de sensor de realidad aumentada basado en fotones y partículas | ![]() |
