Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Manufacturing Technology >> Processo de manufatura

J.A.R.V.I.S. :Um assistente de casa virtual

Componentes e suprimentos

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

Ferramentas e máquinas necessárias

Ferro de soldar (genérico)
Pistola de cola quente (genérica)

Aplicativos e serviços online

Unity
Android Studio
Vuforia
Adobe Illustrator
Arduino IDE

Sobre este projeto





Por que resolver o problema da casa inteligente?





O que há de novo?





Por que decidimos fazer isso?













Trabalhando


O medidor digital de energia



O AI Virtual Assistant

O fluxo de sinais é o seguinte:
  • 1. Entrada de voz para aplicativo Android
  • 2. Processando no aplicativo Android
  • 3. Envio de dados criptografados para Arduino via Bluetooth.
  • 4. Processando no Arduino 101
  • 5. Sinais digitais para retransmissão

Conexões de pinos:
  • Pino 8 -> PulseIn [entrada digital]
  • Pino 6 -> IN1 -> Saída do ventilador
  • Pino 4 -> IN2 -> Saída de luz
  • Pin 5 -> IN3 -> Cafeteira



Conexões do medidor de energia:
  • Conecte o medidor ao suprimento.
  • Cubra o medidor de energia com uma fita preta, evitando o LDR dentro do medidor de energia da luz externa.
  • Conecte o fio neutro diretamente às cargas e o fio de fase ao relé.
  • Leve os fios do LDR fora do medidor para o circuito do contador.
  • Agora leve a saída do circuito do contador para o pino 8 de pulso atribuído como no código.
  • Conecte o pino TX, RX do Arduino 101 ao pino RX, TX do módulo GSM.
  • Agora ligue as placas após gravar o código.





Diagrama de circuito





Hardware e equipamentos usados:

  • Medidor de energia interna:resistor dependente de luz LDR
  • Módulo GSM
  • Circuito do contador:potenciômetro, IC LM358N
  • Arduino 101
  • Módulo BlueTooth-HC05
  • Módulo de placa de controle de relé de 4 canais 12V 10A com optoacoplador para PIC AVR ARM

Plataformas de programação
  • · Para programar o Arduino 101, usamos o Arduino IDE padrão.
  • · Desenvolvemos nosso aplicativo Android usando o Android Studio (JAVA e XML).
  • · A conectividade do banco de dados é feita usando o Firebase do Google.
  • · Para realidade aumentada, usamos o Unity junto com o SDK Vuforia.





Implementação:

  • Todos os componentes estão dando leituras para o Arduino, onde estamos convertendo essas leituras em código de caracteres para enviar os bytes de forma eficiente e rápida para o computador. Dentro de um loop sem fim, cada leitura corresponde a um caractere.
  • Um código deve ser executado no computador para receber os dados que estão sendo enviados pelo arduino via portas seriais.
  • Para desenvolver o aplicativo Android, usamos o Android Studio e, para converter voz em texto, usamos a API padrão do Google.
  • Para reconhecimento de fala, estamos usando parâmetros de fala acústico-fonética para reconhecimento de fala independente do alto-falante no aplicativo Android.
  • Temos o assistente virtual AI (inteligência artificial) que utiliza técnicas de deep learning como CNN (Convolutional Neural Network) usando python para implementar o processamento de linguagem natural.
  • Para o aplicativo de realidade aumentada, estamos usando Unity IDE e VuforiaSDK (é um kit de desenvolvimento de software de realidade aumentada (SDK) para dispositivos móveis que permite a criação de aplicativos de realidade aumentada.





Vídeos











Código

  • Código Arduino para leitura digital de energia e cálculo de custo
  • Arduino implementando conexão JARVIS para retransmissão usando Arduino
Código Arduino para leitura digital de energia e cálculo de custo Arduino
Este código implementa as unidades de energia consumidas por um dispositivo conectado ao Arduino.
Instruções:
1. Faça as conexões e insira um número de celular no código do Arduino
2. Faça upload do código para um Arduino 101
3. Execute o código
4. Envie um SMS de qualquer celular para o número de celular especificado no código no formato # anytext *
5. Uma resposta contendo as unidades consumidas e o custo seria recebida
 #include  LiquidCrystal lcd (7,6,5,4,3,2); int led =13; // declínio do LED no 13º pino # define pulsein 8 // definindo o pino de entrada de pulso 8unsigned int pusle_count =0; // Declarando o tipo de contagem de pulso como unidades integerfloat =0; // Declarando unidades como Floatunsigned int rupees =0; // declarando tipos de rúpias como inteiros não assinados int temp =0, i =0; // declarando temp &i como integerchar sem sinal str [70], flag1 =0, flag2 =0; // comprimento do caractere como string e declaração de flagsvoid setup () {lcd.begin (16,2); // inicializando o tipo de LCD como 16x2 Serial.begin (9600); // inicializando a taxa de transmissão serial como 9600 pinMode (led, OUTPUT); pinMode (pulsein, INPUT); digitalWrite (pulsein, HIGH); lcd.setCursor (0,0); lcd.print ("Energia sem fio"); lcd.setCursor (0,1); lcd.print ("Medidor"); atraso (2000); lcd.clear (); lcd.print ("Por"); atraso (2000); lcd.clear (); lcd.print ("GSM iniciando ..."); gsm_init (); lcd.clear (); lcd.print ("Sistema pronto"); Serial.println ("AT + CNMI =2,2,0,0,0"); init_sms (); send_data ("Sistema pronto"); Enviar SMS(); atraso (1000); digitalWrite (led, BAIXO); lcd.clear ();} void loop () {serialEvent (); // verificação de unidades de evento serial =rupees / 5.0; // cálculo da unidade lcd.setCursor (0,0); lcd.print ("Unidades:"); lcd.print (unidades); lcd.print (""); lcd.setCursor (0,1); lcd.print ("Rúpias:"); lcd.print (rúpias); lcd.print (""); read_pulse (); if (temp ==1) {check (); }} void serialEvent () // evento serial para receber e verificar o sms de entrada {while (Serial.available ()) {if (Serial.find ("#")) {digitalWrite (led, HIGH); atraso (1000); digitalWrite (led, BAIXO); while (Serial.available ()) {char inChar =Serial.read (); str [i ++] =inChar; if (inChar =='*') {temp =1; Retorna; }}}}} void init_sms () // inicialização e configuração de envio de mensagem {Serial.println ("AT + CMGF =1"); atraso (200); Serial.println ("AT + CMGS =\" INSERIR NÚMERO DE CELULAR AQUI \ ""); atraso (200);} void send_data (String mensagem) {Serial.println (mensagem); delay (200);} void send_sms () {Serial.write (26);} // Lendo Pulso do Metervóide de Energia read_pulse () {if (! digitalRead (pulsein)) {digitalWrite (led, HIGH); unidades ++; rúpias =unidades * 5; enquanto (! digitalRead (pulsein)); digitalWrite (led, BAIXO); }} // Verificando o status da mensagem void check () {if (! (Strncmp (str, "unidades", 5))) {Serial.println ("AT + CMGF =1"); atraso (200); Serial.println ("AT + CMGS =\" INSERIR NÚMERO DE CELULAR AQUI \ ""); atraso (200); lcd.setCursor (0,1); send_data ("Unidade do medidor de energia:"); Serial.println (unidades); send_data ("\ nRupees:"); Serial.println (rúpias); atraso (200); Serial.write (26); flag1 =1; flag2 =1; temp =0; }} void message_sent () {lcd.clear (); lcd.print ("Mensagem enviada."); atraso (1000);} void gsm_init () {lcd.clear (); lcd.print ("Módulo de localização .."); booleano at_flag =1; while (at_flag) {Serial.println ("AT"); while (Serial.available ()> 0) {if (Serial.find ("OK")) at_flag =0; } atraso (1000); } lcd.clear (); lcd.print ("Módulo conectado .."); atraso (1000); lcd.clear (); lcd.print ("Desativando ECHO"); boolean echo_flag =1; while (echo_flag) {Serial.println ("ATE0"); while (Serial.available ()> 0) {if (Serial.find ("OK")) echo_flag =0; } atraso (1000); } lcd.clear (); lcd.print ("Eco DESLIGADO"); atraso (1000); lcd.clear (); lcd.print ("Localizando Rede .."); boolean net_flag =1; while (net_flag) {Serial.println ("AT + CPIN?"); while (Serial.available ()> 0) {if (Serial.find ("+ CPIN:READY")) net_flag =0; } atraso (1000); } lcd.clear (); lcd.print ("Rede encontrada .."); atraso (1000); lcd.clear ();} 
Arduino implementando conexão JARVIS para retransmissão usando Arduino Arduino
Este é um código que implementa a transferência serial do Bluetooth de caracteres entre o aplicativo Android e o Arduino.
 # define CH3 7 # define CH4 4 # define CH5 5 # define CH6 6 void setup () {Serial.begin (9600); pinMode (CH3, OUTPUT); pinMode (CH4, OUTPUT); pinMode (CH5, OUTPUT); pinMode (CH6, OUTPUT); // Fornece energia para ambos os LEDs // DESLIGA qualquer energia para os canais de relé digitalWrite (CH3, HIGH); digitalWrite (CH4, HIGH); digitalWrite (CH5, HIGH); digitalWrite (CH6, ALTO); atraso (2000); // Espere 2 segundos antes de iniciar a sequência} void loop () {delay (100); if (Serial.available ()) {//Serial.println(sum1); char c =Serial.read (); Serial.print (c); if (c =='b') {// café desligado} else if (c =='c') // acende {digitalWrite (CH4, LOW); delay (100);} else if (c =='d') // ventilador em {digitalWrite (CH6, LOW); delay (100);} else if (c =='k') // café em {digitalWrite (CH5, LOW); atraso (100);} else if (c =='g') // café desligado {digitalWrite (CH5, HIGH); delay (100);} else if (c =='e') // luz apagada {digitalWrite (CH4, HIGH); delay (100);} else if (c =='f') // ventilador desligado {digitalWrite (CH6, HIGH); delay (100);} else if (c =='z') // adeus {digitalWrite (CH6, HIGH); digitalWrite (CH4, HIGH); digitalWrite (CH3, HIGH); digitalWrite (CH5, HIGH); atraso (500); digitalWrite (CH5, BAIXO); atraso (500); digitalWrite (CH5, HIGH); atraso (500); digitalWrite (CH5, BAIXO); atraso (500); digitalWrite (CH5, HIGH); atraso (10000); }}} 

Peças personalizadas e gabinetes

Instruções:

1. Baixe e instale o aplicativo
2. Certifique-se de que o telefone está conectado à internet
3. Inicie o aplicativo e aponte-o para um aparelho que foi configurado com Vuforia (o marcador Vuforia padrão é usado aqui)
4. O aparelho deve iniciar
5. Para desligar o aparelho, clique no botão virtual que aparece na tela sempre que o telefone é apontado para o dispositivo jarvisaugmented_I2zWAu2jGG.apk

Esquemas

Observação:conexão ativa com a Internet no telefone é sempre necessária
Instruções:
1. Instale o aplicativo em um telefone Android
2. Depois de configurar o hardware e executá-lo com sucesso, inicie o aplicativo
3. Para usar o Virtual Assistant (Voice), diga a palavra-chave, 'Listen Up JARVIS'. Isso deve ativar o agente
3.1 Fale seu comando claramente
3.2 O agente deve fornecer uma resposta
4. Para iniciar o aplicativo de realidade aumentada, clique no botão Aumentar; uma tela em branco deve aparecer
4.1 Abra o aplicativo Jarvis Augmented em um telefone diferente (NOTA:O aplicativo para Android J.A.R.V.I.S. deve estar em um telefone diferente)
4.2 Prossiga com as instruções fornecidas no JarvisAugmented para a implementação de realidade aumentada

NOTA:1. Se o aplicativo estiver travado em qualquer ponto, tente reiniciá-lo
2. Se uma mensagem semelhante a 'Não foi possível abrir o microfone' aparecer na tela, reinicie o aplicativo
3. Este aplicativo é implementado usando o módulo HC05 Bluetooth para aumentar o escopo do projeto. Portanto, o Módulo Bluetooth HC05 é recomendado app-release_eo3LK2AsLV.apk

Processo de manufatura

  1. Construindo uma rede de sensores sem fio em sua casa
  2. Faça uma máquina de escrever trabalhos de casa DIY em casa
  3. Controlador DMX operado pela web
  4. Arduino Spybot
  5. Faça você mesmo skate de realidade virtual
  6. Robô assistente autônomo da casa
  7. Arduino Home Controller ativado por Alexa
  8. BLUE_P:Wireless Arduino Programming Shield
  9. TFT Shield para Arduino Nano - Iniciar
  10. Arduino Shield NCS314 NIXIE Tubes Clock IN-14