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

Amazon Echo baseado em Arduino usando 1Sheeld

Componentes e suprimentos

Arduino 101
× 1
1Sheeld
× 1
1Sheeld
× 1
Lâmpada stick
× 1
Faixa de LED RGB
× 1
Placa de retransmissão
× 1
Apple iPhone
× 1
Breadboard (genérico)
× 1
Cabo USB-A para B
× 1
Fios de jumpers (genérico)
× 30
Transistor de uso geral NPN
× 3

Ferramentas e máquinas necessárias

Sondador
Tubo de PVC

Aplicativos e serviços online

Arduino IDE

Sobre este projeto




Há alguns meses visitei um amigo meu e fiquei maravilhado com o Amazon Echo que ele possuía.

Ele pode tocar música, controlar as luzes da casa, me contar notícias e o status do tempo e até mesmo a data e hora, tudo isso com apenas comandos de voz.

Naquele momento, o criador dentro de mim gritou "por que não faço eu mesmo!".

E desde aquele dia comecei a pesquisar por componentes que pudessem me ajudar a fazer um Amazon Echo baseado em arduino, até que encontrei o incrível 1Sheeld.

1Sheeld é uma plataforma para Arduino que permite acessar os sensores e recursos do seu smartphone e usá-los em seus projetos do Arduino.

Basicamente, é um escudo de hardware que fica em cima de sua placa Arduino e se comunica por Bluetooth com este aplicativo Android, para transferir dados entre ele e seu smartphone.

Você pode verificar o tutorial de introdução no site 1Sheeld, que o levará passo a passo até que você possa operar o 1Sheeld sem problemas e é uma referência incrível para grandes projetos Arduino.

Usei neste projeto cinco escudos dos mais de 40 escudos no 1Sheeld.

O primeiro é o Escudo de Reconhecimento de Voz que usei para controlar todo o sistema com comandos de voz, é um escudo muito simples que posso ativá-lo com apenas 1 linha de código: VoiceRecognition.start ();

Então usei o Music Player Shield o que me permite acessar o reprodutor de música do smartphone e escolher as faixas que quero tocar sem problemas. Na verdade, é muito simples eu usar esta linha apenas para tocar o escudo do reprodutor de música: MusicPlayer.play ();

O terceiro escudo que usei é um dos mais importantes do projeto, é o Escudo Text to Speech que adicionam ao projeto uma interação humanóide de que alguém está respondendo pelo que você está dizendo, foi tão fácil fazer o sistema responsivo: TextToSpeech.say ("time in cairo is");

Depois de ativar o escudo Text to Speech, ativei o escudo do relógio que retornam o relógio em tempo real e então o sistema pode responder com a hora uma vez que eu solicitei, incrível! não é :), e posso facilmente obter a hora atual no meu telefone usando esta função: Clock.queryDateAndTime ();

O último escudo que usei é o Internet Shield que, na minha opinião, é o escudo mais poderoso do 1Sheeld, usei esse escudo para obter o status atual do clima em minha cidade natal usando uma API do site "openweathermap", onde posso chamar a API com essa linha: HttpRequest request1 ("/ * o endereço da API * /");





Etapa 1:reúna os componentes

  • Arduino 101 $ 30,99
  • 1Sheeld + board $ 54,94
  • iPhone $ 155,5
  • tubo de PVC $ 2
  • faixa de LED $ 5
  • Fonte de alimentação 12V $ 7
  • Placa de retransmissão $ 3
  • Jumpers e fios $ 3
  • 3 transistores NPN $ 1





Etapa 2:


Faça orifícios no cano para permitir que o som saia





Etapa 3:


Pinte o tubo de PVC com spray preto





Etapa 4:faça a fiação

  • Conecte as tiras de LED aos transistores e à fonte de alimentação
  • Conecte a lâmpada à placa de relé e aos terminais CA
  • Conecte a placa de relé e as tiras de LED à placa Arduino 101 conforme mencionado no código abaixo
  • Monte tudo isso com o iPhone dentro do tubo de PVC





Etapa 5:configurar a biblioteca 1Sheeld


Você pode gerenciar qualquer biblioteca do IDE do Arduino. Basta clicar em Sketch>> Incluir biblioteca>> Gerenciar bibliotecas>> digite OneSheeld>> e clique em instalar e pronto. Ou você pode baixar a biblioteca aqui:http://1sheeld.com/downloads/ Em seguida, abra seu Arduino IDE e escolha esboço na barra de menu>> Incluir biblioteca>> adicionar arquivo .zip> > e escolha o arquivo zip yo acabou de baixar.





Etapa 6:Instale o aplicativo 1Sheeld


Baixe o aplicativo móvel 1Sheeld do site ou visite a Apple play store ou Google play store para obter o aplicativo.





Etapa 7:acesse os escudos


Siga o tutorial de introdução 1Sheeld e, no final dele, escolha os seguintes escudos
  • Reconhecimento de voz
  • Texto para fala
  • Relógio
  • Internet
  • Music Player

Em seguida, pressione o botão de proteção múltipla.


Código

  • Amazon echo code
Amazon echo code Arduino
 / * OPCIONAL:Para reduzir o tamanho da biblioteca compilada e limitar seu uso de memória, você pode especificar quais escudos deseja incluir em seu esboço definindo CUSTOM_SETTINGS e os escudos respectivos INCLUDE_definir. * / # define CUSTOM_SETTINGS # define INCLUDE_INTERNET_SHIELD # define INCLUDE_VOICE_RECOGNIZER_SHIELD # define INCLUDE_TEXT_TO_SPEECH_SHIELD # define INCLUDE_MUSIC_PLAYER_SHIELD # define INCLUDE_TEXT_TO_SPEECH_SHIELD # define INCLUDE_MUSIC_PLAYER_SHIELD # define INCLUDE_CLOCK / Incluir biblioteca *_SHIELD. * / # include  / * cria um valor inicial para o contador de milis. * / unsigned long previousMillis =0; / * criar um estado inicial para chamar alexa. * / bool state =0; / * Chame uma api que retornará o status do tempo em cairo, egito. * / HttpRequest request1 ("http://api.openweathermap.org/data/2.5/weather?q=Cairo,EG&appid=43d95b4cf5d0573e2dfe5186c160017a"); / * define os 3 transistores nos pinos 3,5 e 6. * / # define strip1 3 # define strip2 6 # define strip3 5 / * define a lâmpada no pino 13. * / int lamp =13; / * define a variável que manterá as horas e miniuts. * / int hora, minuto; / * Crie 2 arranjos de caracteres para capturar a string desejada na frase. * / char b [4]; char c [4]; / ​​* define variáveis ​​para manter a hora e miniuts na string. * / String strh, strm; / * define a variável para manter o status do dia am ou pm. * / String noon; / * Comandos de voz definidos pelo usuário. * / const char mainCommand [] ="alexa"; const char weatherCommand [] ="como está o tempo hoje"; const char playCommand [] ="tocar música"; const char clockCommand [] ="que horas são"; const char stopCommand [] ="parar"; const char lightonCommand [] ="acender as luzes"; const char lightoffCommand [] ="desligar as luzes"; void setup () {/ * Iniciar a comunicação. * / OneSheeld.begin (); / * definir as faixas de LED e a lâmpada para a saída. * / pinMode (strip1, OUTPUT); pinMode (strip2, OUTPUT); pinMode (strip3, OUTPUT); pinMode (lâmpada, SAÍDA); / * Assine o retorno de chamada de sucesso para a solicitação. * / request1.setOnSuccess (&onSuccess1); / * Assine as respostas de valor json. * / request1.getResponse (). setOnJsonResponse (&onJsonReply1); / * em uma voz reconhecida, chame a função "minha função". * / VoiceRecognition.setOnNewCommand (&myFunction);} void loop () {/ * atrasar 5 segundos usando o contador de milis para manter a detecção de voz ativa. * / Unsigned long currentMillis =millis (); if (currentMillis - previousMillis> =5000) {previousMillis =currentMillis; / * obtém a hora atual em seu telefone. * / Clock.queryDateAndTime (); / * inicia o reconhecimento de voz. * / VoiceRecognition.start (); } / * salvar a hora e os minutos do smartphone em variáveis. * / hora =Clock.getHours (); minuto =Clock.getMinutes (); / * detecta o status da hora se for am ou pm. * / if (hora> 12) {hora - =12; meio-dia ="P M"; } outra coisa {meio-dia ="A M"; } / * salvar a hora e os minutos como string. * / strh =String (hora); strm =String (minuto); / * salvar a string em uma matriz de charchter. * / strh.toCharArray (b, 4); strm.toCharArray (c, 4);} / * Esta função será chamada cada vez que um novo comando for dado. * / void myFunction (char * commandSpoken) {/ * verifique se alguém chama o alexa ou não. * / if (! strcmp (mainCommand, VoiceRecognition.getLastCommand ())) {alexon (); MusicPlayer.setVolume (5); / * em caso afirmativo, faça com que o estado =1. * / estado =1; } / * verifique se você pediu para tocar música depois de ligar para alexa. * / if (! strcmp (playCommand, VoiceRecognition.getLastCommand ()) &&state ==1) {alexoff (); MusicPlayer.play (); atraso (10000); MusicPlayer.stop (); estado =0; } / * verifique se você pediu para obter o status do tempo após ligar para o alexa. * / else if (! strcmp (weatherCommand, VoiceRecognition.getLastCommand ()) &&state ==1) {alexoff (); Internet.performGet (solicitação1); / * Aguarde 5 segundos. * / OneSheeld.delay (5000); estado =0; } / * verifique se você pediu o tempo depois de ligar para alexa. * / if (! strcmp (clockCommand, VoiceRecognition.getLastCommand ()) &&state ==1) {alexoff (); / * 1Sheeld responde usando conversão de texto em voz. * / TextToSpeech.say ("o tempo no cairo é"); atraso (1300); TextToSpeech.say (b); atraso (600); TextToSpeech.say (c); atraso (800); TextToSpeech.say (meio-dia); atraso (500); estado =0; } / * verifique se você pediu para ligar a lâmpada depois de ligar para alexa. * / if (! strcmp (lightonCommand, VoiceRecognition.getLastCommand ()) &&state ==1) {alexoff (); digitalWrite (lâmpada, ALTO); TextToSpeech.say ("as luzes acesas"); atraso (6000); estado =0; } / * verifique se você pediu para desligar a lâmpada depois de ligar para alexa. * / else if (! strcmp (lightoffCommand, VoiceRecognition.getLastCommand ()) &&state ==1) {alexoff (); digitalWrite (lâmpada, BAIXO); TextToSpeech.say ("as luzes apagadas"); atraso (3000); estado =0; }} void onSuccess1 (HttpResponse &response1) {/ * Usando a resposta para consultar a cadeia Json até o valor necessário. * / / * ou seja, obtenha o valor de 'principal' no primeiro objeto da matriz 'clima' na resposta. * / / * Desde que a resposta esteja no formato JSON. * / response1 ["clima"] [0] ["principal"]. consulta (); atraso (200); } void onJsonReply1 (JsonKeyChain &hell, char * output) {if (hell ==request1.getResponse () ["weather"] [0] ["main"]) {TextToSpeech.say ("the weather today in Cairo is" ); atraso (2000); / * 1Sheeld responde usando proteção de texto para voz. * / TextToSpeech.say (saída); }} void alexon () {/ * Ative as tiras na ordem como no Amazon echo. * / digitalWrite (strip1, HIGH); atraso (200); digitalWrite (strip2, HIGH); atraso (200); digitalWrite (strip3, HIGH); } void alexoff () {/ * Desative as tiras. * / digitalWrite (strip1, LOW); digitalWrite (strip2, LOW); digitalWrite (strip3, LOW); } 

Esquemas


Processo de manufatura

  1. Envie dados do sensor de um Arduino para outro usando Firebase
  2. Dados digitais Arduino
  3. Controle remoto universal usando Arduino, 1Sheeld e Android
  4. Controlador de jogo Arduino
  5. Sonar usando arduino e exibição no IDE de processamento
  6. Jogo Pixel Chaser
  7. Controle de brilho do LED usando Bolt e Arduino
  8. Braço robótico simples e inteligente usando Arduino
  9. Tanque WalaBeer
  10. Rádio FM usando Arduino e RDA8057M