Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Manufacturing Technology >> Proceso de manufactura

J.A.R.V.I.S. :Un asistente virtual para el hogar

Componentes y suministros

Arduino 101
× 1
Arduino 4 Relys Shield
× 1
Arduino GSM shield V2
× 1

Herramientas y máquinas necesarias

Soldador (genérico)
Pistola de pegamento caliente (genérica)

Aplicaciones y servicios en línea

Unidad
Android Studio
Vuforia
Adobe Illustrator
Arduino IDE

Acerca de este proyecto

¿Por qué abordar el problema del hogar inteligente?

¿Qué hay de nuevo?

¿Por qué decidimos hacerlo?

Trabajando

El medidor de energía digital

El asistente virtual de IA

El flujo de señales es el siguiente:

  • 1. Entrada de voz a la aplicación de Android
  • 2. Procesando en la aplicación de Android
  • 3. Envío de datos cifrados a Arduino a través de Bluetooth.
  • 4. Procesando en Arduino 101
  • 5. Señales digitales para retransmitir

Conexiones de pines:

  • Pin 8 -> PulseIn [Entrada digital]
  • Pin 6 -> IN1 -> Salida de ventilador
  • Pin 4 -> IN2 -> Salida de luz
  • Pin 5 -> IN3 -> Cafetera

Conexiones del medidor de energía:

  • Conecte el medidor al suministro.
  • Cubra el medidor de energía con una cinta negra, evitando que el LDR dentro del medidor de energía entre la luz exterior.
  • Conecte el cable neutro directamente a las cargas y el cable de fase al relé.
  • Lleve los cables del LDR fuera del medidor al circuito del contador.
  • Ahora lleve la salida del circuito contador al pin 8 asignado como en el código.
  • Conecte el pin TX, RX del Arduino 101 al pin RX, TX del módulo GSM.
  • Ahora encienda las placas después de grabar el código.

Diagrama de circuito

Hardware y equipo utilizado:

  • Medidor de energía interior:resistencia dependiente de la luz LDR
  • módulo GSM
  • Circuito contador:potenciómetro, IC LM358N
  • Arduino 101
  • Módulo BlueTooth-HC05
  • Módulo de placa de control de relé de 4 canales 12V 10A con optoacoplador para PIC AVR ARM

Plataformas de programación

  • · Para programar el Arduino 101, hemos utilizado el IDE de Arduino predeterminado.
  • · Hemos desarrollado nuestra aplicación para Android utilizando Android Studio (JAVA y XML).
  • · La conectividad de la base de datos se realiza mediante Firebase de Google.
  • · Para la realidad aumentada, hemos utilizado Unity junto con Vuforia SDK.

Implementación:

  • Todos los componentes están dando lecturas al Arduino, donde estamos convirtiendo estas lecturas en código de caracteres para enviar los bytes de manera eficiente y rápida a la computadora. Dentro de un bucle sin fin, cada lectura corresponde a un carácter.
  • Se debe ejecutar un código en la computadora para recibir los datos que envía arduino a través de los puertos serie.
  • Para desarrollar la aplicación de Android, usamos Android Studio y para convertir la voz en texto, usamos la API estándar de Google.
  • Para el reconocimiento de voz, estamos usando parámetros de voz acústico-fonéticos para el reconocimiento de voz independiente del hablante en la aplicación de Android.
  • Contamos con el asistente virtual AI (inteligencia artificial) que utiliza técnicas de aprendizaje profundo como CNN (Convolutional Neural Network) usando Python para implementar el procesamiento del lenguaje natural.
  • Para la aplicación de realidad aumentada usamos Unity IDE y VuforiaSDK (es un kit de desarrollo de software (SDK) de realidad aumentada para dispositivos móviles que permite la creación de aplicaciones de realidad aumentada).

Vídeos

Código

  • Código Arduino para lectura de energía digital y cálculo de costos
  • Arduino implementando la conexión JARVIS para retransmitir usando Arduino
Código Arduino para lectura de energía digital y cálculo de costos Arduino
Este código implementa las unidades de energía consumidas por un dispositivo conectado al Arduino.
Instrucciones:
1.Realice las conexiones e inserte un número de móvil en el código Arduino
2. Sube el código a un Arduino 101
3. Ejecute el código
4. Envíe un SMS desde cualquier móvil al número de móvil especificado en el código en el formato # cualquier texto *
5. Se recibiría una respuesta con las unidades consumidas y el costo
 #include  LiquidCrystal lcd (7,6,5,4,3,2); int led =13; // declering LED en el pin 13 # define pulsein 8 // definiendo el pin de entrada de pulsos 8unsigned int pusle_count =0; // Declarando el tipo de conteo de pulsos como unidades de flotación entera =0; // Declarando unidades como Floatunsigned int rupees =0; // declarando tipos de rupias como enteros sin signounsigned int temp =0, i =0; // declarando temp &i como entero sin signochar str [70], flag1 =0, flag2 =0; // longitud de carácter como cadena y declarando flagsvoid setup () {lcd.begin (16,2); // inicializando el tipo de LCD como 16x2 Serial.begin (9600); // inicializando la velocidad en baudios en serie como 9600 pinMode (led, OUTPUT); pinMode (entrada de pulso, ENTRADA); digitalWrite (entrada de pulsos, ALTA); lcd.setCursor (0,0); lcd.print ("Energía inalámbrica"); lcd.setCursor (0,1); lcd.print ("Medidor"); retraso (2000); lcd.clear (); lcd.print ("Por"); retraso (2000); lcd.clear (); lcd.print ("Inicialización GSM ..."); gsm_init (); lcd.clear (); lcd.print ("Sistema listo"); Serial.println ("AT + CNMI =2,2,0,0,0"); init_sms (); send_data ("Sistema listo"); enviar SMS(); retraso (1000); digitalWrite (led, BAJO); lcd.clear ();} bucle vacío () {serialEvent (); // verificando unidades de eventos en serie =rupias / 5.0; // cálculo de la unidad lcd.setCursor (0,0); lcd.print ("Unidades:"); lcd.print (unidades); lcd.print (""); lcd.setCursor (0,1); lcd.print ("Rupias:"); lcd.print (rupias); lcd.print (""); read_pulse (); if (temp ==1) {check (); }} void serialEvent () // evento serial para recibir y verificar los sms entrantes {while (Serial.available ()) {if (Serial.find ("#")) {digitalWrite (led, HIGH); retraso (1000); digitalWrite (led, BAJO); while (Serial.available ()) {char inChar =Serial.read (); str [i ++] =inChar; if (inChar =='*') {temp =1; regreso; }}}}} void init_sms () // inicialización y configuración del mensaje de envío {Serial.println ("AT + CMGF =1"); retraso (200); Serial.println ("AT + CMGS =\" INSERTAR NÚMERO MÓVIL AQUÍ \ ""); delay (200);} void send_data (mensaje de cadena) {Serial.println (mensaje); delay (200);} void send_sms () {Serial.write (26);} // Lectura del pulso del medidor de energíavoid read_pulse () {if (! digitalRead (pulsein)) {digitalWrite (led, HIGH); unidades ++; rupias =unidades * 5; while (! digitalRead (pulsein)); digitalWrite (led, BAJO); }} // Comprobando el estado del mensaje void check () {if (! (Strncmp (str, "unidades", 5))) {Serial.println ("AT + CMGF =1"); retraso (200); Serial.println ("AT + CMGS =\" INSERTAR NÚMERO MÓVIL AQUÍ \ ""); retraso (200); lcd.setCursor (0,1); send_data ("Unidad de medidor de energía:"); Serial.println (unidades); send_data ("\ nRupees:"); Serial.println (rupias); retraso (200); Serial.write (26); flag1 =1; flag2 =1; temp =0; }} void message_sent () {lcd.clear (); lcd.print ("Mensaje enviado"); retraso (1000);} void gsm_init () {lcd.clear (); lcd.print ("Módulo de búsqueda ..."); booleano at_flag =1; while (at_flag) {Serial.println ("AT"); while (Serial.available ()> 0) {if (Serial.find ("OK")) at_flag =0; } retraso (1000); } lcd.clear (); lcd.print ("Módulo conectado ..."); retraso (1000); lcd.clear (); lcd.print ("Desactivación de ECHO"); booleano echo_flag =1; while (echo_flag) {Serial.println ("ATE0"); while (Serial.available ()> 0) {if (Serial.find ("OK")) echo_flag =0; } retraso (1000); } lcd.clear (); lcd.print ("Eco desactivado"); retraso (1000); lcd.clear (); lcd.print ("Buscando una red ..."); booleano net_flag =1; while (net_flag) {Serial.println ("AT + CPIN?"); while (Serial.available ()> 0) {if (Serial.find ("+ CPIN:LISTO")) net_flag =0; } retraso (1000); } lcd.clear (); lcd.print ("Red encontrada ..."); retraso (1000); lcd.clear ();} 
Arduino implementando la conexión JARVIS para retransmitir usando Arduino Arduino
Este es un código que implementa la transferencia serial de caracteres por Bluetooth entre la aplicación de Android y Arduino.
 # define CH3 7 # define CH4 4 # define CH5 5 # define CH6 6 void setup () {Serial.begin (9600); pinMode (CH3, SALIDA); pinMode (CH4, SALIDA); pinMode (CH5, SALIDA); pinMode (CH6, SALIDA); // Proporcione energía a ambos LED // Apague cualquier energía a los canales de relé digitalWrite (CH3, HIGH); escritura digital (CH4, ALTA); escritura digital (CH5, ALTA); escritura digital (CH6, ALTA); retraso (2000); // Espere 2 segundos antes de iniciar la secuencia} void loop () {delay (100); if (Serial.available ()) {//Serial.println(sum1); char c =Serial.read (); Serial.print (c); if (c =='b') {// café apagado} else if (c =='c') // encendido {digitalWrite (CH4, LOW); delay (100);} else if (c =='d') // ventilador en {digitalWrite (CH6, LOW); delay (100);} else if (c =='k') // café en {digitalWrite (CH5, LOW); delay (100);} else if (c =='g') // café apagado {digitalWrite (CH5, HIGH); delay (100);} else if (c =='e') // luz apagada {digitalWrite (CH4, HIGH); delay (100);} else if (c =='f') // ventilador apagado {digitalWrite (CH6, HIGH); delay (100);} else if (c =='z') // adiós {digitalWrite (CH6, HIGH); escritura digital (CH4, ALTA); escritura digital (CH3, ALTA); escritura digital (CH5, ALTA); retraso (500); digitalWrite (CH5, BAJO); retraso (500); escritura digital (CH5, ALTA); retraso (500); digitalWrite (CH5, BAJO); retraso (500); escritura digital (CH5, ALTA); retraso (10000); }}} 

Piezas y carcasas personalizadas

Instrucciones:

1. Descargue e instale la aplicación
2.Asegúrate de que el teléfono esté conectado a Internet.
3. Inicie la aplicación y apúntela a un dispositivo que se haya configurado con Vuforia (aquí se usa el marcador Vuforia predeterminado)
4. El aparato debería comenzar
5. Para apagar el dispositivo, haga clic en el botón virtual que aparece en la pantalla cada vez que el teléfono apunta hacia el dispositivo jarvisaugmented_I2zWAu2jGG.apk

Esquemas

Nota:Se requiere una conexión activa a Internet en el teléfono en todo momento.
Instrucciones:
1. Instale la aplicación en un teléfono Android
2. Después de configurar el hardware y ejecutarlo correctamente, inicie la aplicación
3. Para usar el Asistente virtual (voz), diga la palabra clave "Escuchar JARVIS". Esto debería activar al agente
3.1 Habla tu comando con claridad
3.2 El agente debe dar una respuesta
4. Para iniciar la aplicación de realidad aumentada, haga clic en el botón de aumento; debería aparecer una pantalla en blanco
4.1 Abra la aplicación aumentada Jarvis en un teléfono diferente (NOTA:la aplicación de Android J.A.R.V.I.S. debe estar en un teléfono diferente)
4.2 Continúe con las instrucciones dadas en JarvisAugmented para implementar la realidad aumentada

NOTA:1. Si la aplicación se bloquea en algún momento, intente reiniciarla.
2. Si aparece un mensaje similar a "No se pudo abrir el micrófono" en la pantalla, reinicie la aplicación.
3. Esta aplicación se implementa mediante el módulo Bluetooth HC05 para aumentar el alcance del proyecto. Por lo tanto, se recomienda el módulo Bluetooth HC05 app-release_eo3LK2AsLV.apk

Proceso de manufactura

  1. Creación de una red de sensores inalámbricos en su hogar
  2. Haga una máquina de escribir para hacer tareas caseras en casa
  3. Controlador DMX operado por la web
  4. Arduino Spybot
  5. Patineta de realidad virtual DIY
  6. Robot asistente doméstico autónomo
  7. Controlador Arduino Home activado por Alexa
  8. BLUE_P:Escudo de programación inalámbrico Arduino
  9. TFT Shield para Arduino Nano - Iniciar
  10. Arduino Shield NCS314 Reloj de tubos NIXIE IN-14
  11. Monitor de casa