Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Manufacturing Technology >> Processus de fabrication

Echo Amazon basé sur Arduino utilisant 1Sheeld

Composants et fournitures

Arduino 101
× 1
1Sheeld
× 1
1Sheeld
× 1
Bâton lumineux
× 1
Ruban LED RVB
× 1
Carte relais
× 1
Apple iPhone
× 1
Planche à pain (générique)
× 1
Câble USB-A vers B
× 1
Câbles de raccordement (générique)
× 30
Transistor à usage général NPN
× 3

Outils et machines nécessaires

Foreur
Tuyau PVC

Applications et services en ligne

Arduino IDE

À propos de ce projet

Il y a quelques mois, j'ai rendu visite à un de mes amis et j'ai été étonné par l'Amazon Echo qu'il possédait.

Il peut jouer de la musique, contrôler les lumières de la maison, m'informer de l'actualité et de la météo, et même de la date et de l'heure, tout cela avec de simples commandes vocales.

À ce moment-là, le créateur en moi a crié "pourquoi ne le fais-je pas moi-même !".

Et depuis ce jour, j'ai commencé à rechercher des composants qui pourraient m'aider à créer un Amazon Echo basé sur Arduino, jusqu'à ce que je trouve l'incroyable 1Sheeld.

1Sheeld est une plate-forme pour Arduino qui vous permet d'exploiter les capteurs et les capacités de votre smartphone et de les utiliser dans vos projets Arduino.

Fondamentalement, il s'agit d'un bouclier matériel qui se trouve au-dessus de votre carte Arduino et communique via Bluetooth avec cette application Android, pour transférer des données entre celle-ci et votre smartphone.

Vous pouvez consulter le didacticiel de démarrage sur le site Web 1Sheeld qui vous guidera étape par étape jusqu'à ce que vous puissiez utiliser le 1Sheeld très facilement et c'est une référence impressionnante pour les grands projets Arduino.

J'ai utilisé dans ce projet cinq boucliers parmi les 40+ boucliers du 1Sheeld.

Le premier est le Bouclier de reconnaissance vocale que j'ai utilisé pour contrôler l'ensemble du système avec des commandes vocales, c'est un bouclier très simple que je peux activer avec seulement 1 ligne de code :VoiceRecognition.start();

Ensuite, j'ai utilisé le Music Player Shield ce qui me permet de puiser dans le lecteur de musique du smartphone et de choisir les pistes que je veux jouer de manière très fluide, en fait c'est très simple que je n'ai utilisé cette ligne que pour jouer le bouclier du lecteur de musique :MusicPlayer.play();

Le troisième bouclier que j'ai utilisé est l'un des boucliers les plus importants du projet, c'est le Text to Speech Shield qui ajoutent au projet une interaction humanoïde selon laquelle quelqu'un répond à ce que vous dites, il était si facile de rendre le système réactif :TextToSpeech.say("time in cairo is");

Après avoir activé le bouclier Text to Speech, j'ai activé le Clock Shield qui renvoient l'horloge en temps réel, puis le système peut répondre avec l'heure une fois que je l'ai demandé, incroyable ! n'est-ce pas :), et je peux facilement obtenir l'heure actuelle sur mon téléphone en utilisant cette fonction :Clock.queryDateAndTime();

Le dernier bouclier que j'ai utilisé est le Internet Shield qui, à mon avis, est le bouclier le plus puissant du 1Sheeld, j'ai utilisé ce bouclier pour obtenir l'état actuel de la météo dans ma ville natale à l'aide d'une API du site Web "openweathermap" où je peux appeler l'API avec cette ligne : HttpRequest request1("/*l'adresse API */");

Étape 1 :Rassemblez les composants

  • Arduino 101 30,99 $
  • Planche 1Sheeld+ 54,94 $
  • iPhone 155,5 $
  • Tuyau PVC $2
  • Bande LED 5 $
  • Alimentation 12 V 7 $
  • Carte relais 3 $
  • Cavaliers et fils 3 $
  • 3 transistors NPN 1 $

Étape 2 :

Faire des trous dans le tuyau pour permettre au son de sortir

Étape 3 :

Peignez le tuyau en PVC avec un spray noir

Étape 4 :Réalisez le câblage

  • Connectez les bandes LED aux transistors et à l'alimentation
  • Connectez la lampe à la carte relais et aux bornes AC
  • Connectez la carte relais et les bandes LED à la carte Arduino 101 comme mentionné dans le code ci-dessous
  • Montez tout ça avec l'iPhone à l'intérieur du tuyau PVC

Étape 5 :Configurer la bibliothèque 1Sheeld

Vous pouvez gérer toutes les bibliothèques de l'IDE d'Arduino. Cliquez simplement sur Sketch>> Inclure la bibliothèque>> Gérer les bibliothèques>> tapez OneSheeld>> puis cliquez sur Installer et vous êtes prêt à partir. Ou vous pouvez télécharger la bibliothèque à partir d'ici :http://1sheeld.com/downloads/ Ensuite, ouvrez votre IDE Arduino puis choisissez sketch dans la barre de menus>> Inclure la bibliothèque>> ajouter un fichier .zip> > puis choisissez le fichier zip yo vient de télécharger.

Étape 6 :Installez l'application 1Sheeld

Téléchargez l'application mobile 1Sheeld sur le site Web ou visitez Apple Play Store ou Google Play Store pour obtenir l'application.

Étape 7 :Accédez aux boucliers

Suivez le didacticiel de démarrage 1Sheeld et à la fin, choisissez les boucliers suivants

  • Reconnaissance vocale
  • Synthèse vocale
  • Horloge
  • Internet
  • Lecteur de musique

Appuyez ensuite sur le bouton de bouclier multiple.

Code

  • Echo code Amazon
Echo code AmazonArduino
/* FACULTATIF :pour réduire la taille de la bibliothèque compilée et limiter son utilisation de la mémoire, vous pouvez spécifier les boucliers que vous souhaitez inclure dans votre esquisse en définissant CUSTOM_SETTINGS et les boucliers respectifs INCLUDE_ Define. */#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_CLOCK_SHIELD/* */#include /* crée une valeur initiale pour le compteur millis. */unsigned long previousMillis =0;/* crée un état initial pour appeler Alexa. */bool state =0;/* Appelez une API qui renverra le statut météo au Caire, en Egypte. */HttpRequest request1("http://api.openweathermap.org/data/2.5/weather?q=Cairo,EG&appid=43d95b4cf5d0573e2dfe5186c160017a");/* définir les 3 transistors sur les broches 3,5 et 6. */#define strip1 3#define strip2 6#define strip3 5/* définit la lampe sur la broche 13. */int lamp =13;/* définit la variable qui contiendra les heures et les miniuts . */int heure, minute;/* Créez 2 caractères arry pour attraper la chaîne que vous voulez de la phrase. */char b[4];char c[4];/* définit des variables pour contenir l'heure et les miniuts dans la chaîne. */String strh, strm;/* définit la variable pour contenir l'état du jour am ou pm. */String midi;/* Commandes vocales définies par l'utilisateur. */const char mainCommand[] ="alexa";const char weatherCommand[] ="quel temps fait-il aujourd'hui";const char playCommand[] ="jouer de la musique";const char clockCommand[] ="quelle heure est-il"; const char stopCommand[] ="stop";const char lightonCommand[] ="allumer les lumières";const char lightoffCommand[] ="éteindre les lumières";void setup() { /* Démarrer la communication. */ OneSheeld.begin();/* définit les bandes LED et la lampe à émettre. */ pinMode(strip1,OUTPUT); pinMode(strip2,OUTPUT); pinMode(strip3,OUTPUT); pinMode (lampe, SORTIE); /* Abonnez-vous au rappel de réussite pour la demande. */ request1.setOnSuccess(&onSuccess1) ; /* Abonnez-vous aux réponses de valeur json. */ request1.getResponse().setOnJsonResponse(&onJsonReply1);/* sur une reconnaissance vocale, appelez la fonction "myfunction". */ VoiceRecognition.setOnNewCommand(&myFunction);}void loop (){ /* faire un délai de 5 secondes en utilisant le compteur millis pour maintenir la détection vocale en vie. */ non signé long currentMillis =millis(); if (currentMillis - previousMillis>=5000) { previousMillis =currentMillis; /* obtenir l'heure actuelle dans votre téléphone. */ Clock.queryDateAndTime(); /* démarrer la reconnaissance vocale. */VoiceRecognition.start(); }/* enregistre l'heure et les minutes du smartphone dans des variables. */ heure =Clock.getHours(); minute =Clock.getMinutes(); /* détecte l'état de l'heure si c'est le matin ou l'après-midi. */ if (heure> 12) { heure -=12; midi ="P M" ; } else { midi ="A M"; }/* enregistre l'heure et les minutes sous forme de chaîne. */ strh =String(heure); strm =String(minute);/* enregistre la chaîne dans un tableau charchter. */ strh.toCharArray(b, 4); strm.toCharArray(c, 4);}/* Cette fonction sera invoquée à chaque fois qu'une nouvelle commande est donnée. */void myFunction (char *commandSpoken){/* vérifier si quelqu'un appelle Alexa ou non. */ if (!strcmp(mainCommand, VoiceRecognition.getLastCommand())) { alexon(); MusicPlayer.setVolume(5); /* si oui rend l'état =1 . */ état =1 ; } /* vérifie si vous avez demandé de jouer de la musique après avoir appelé Alexa. */ if (!strcmp(playCommand, VoiceRecognition.getLastCommand()) &&state ==1) { alexoff(); MusicPlayer.play(); retard (10000); MusicPlayer.stop(); état =0 ; }/* vérifiez si vous avez demandé la météo après avoir appelé Alexa. */ else if(!strcmp(weatherCommand,VoiceRecognition.getLastCommand())&&state ==1) { alexoff(); Internet.performGet(request1) ; /* Attendre 5 secondes. */ OneSheeld.delay (5000); état =0 ; }/* vérifiez si vous avez demandé l'heure après avoir appelé Alexa. */ if(!strcmp(clockCommand,VoiceRecognition.getLastCommand()) &&state ==1) { alexoff(); /* 1Sheeld répond en utilisant la synthèse vocale. */ TextToSpeech.say("l'heure au Caire est"); retard (1300); TextToSpeech.say(b); retard (600); TextToSpeech.say(c); retard (800); TextToSpeech.say(midi); retard (500); état =0 ; }/* vérifiez si vous avez demandé d'allumer la lampe après avoir appelé Alexa. */ if (!strcmp(lightonCommand, VoiceRecognition.getLastCommand()) &&state ==1) { alexoff(); digitalWrite (lampe, HAUT); TextToSpeech.say("les lumières allumées"); retard (6000); état =0 ; }/* vérifiez si vous avez demandé d'éteindre la lampe après avoir appelé Alexa. */ else if (!strcmp(lightoffCommand, VoiceRecognition.getLastCommand()) &&state ==1) { alexoff(); digitalWrite (lampe, LOW); TextToSpeech.say("les lumières s'éteignent"); retard (3000); état =0 ; }}void onSuccess1(HttpResponse &response1){ /* Utilisation de la réponse pour interroger la chaîne Json jusqu'à la valeur requise. */ /* c'est-à-dire obtenir la valeur de 'main' dans le premier objet du tableau 'weather' dans la réponse. */ /* A condition que la réponse soit au format JSON. */ response1["weather"][0]["main"].query();delay(200); }void onJsonReply1(JsonKeyChain &hell,char * output){ if(hell ==request1.getResponse()["weather"][0]["main"]) { TextToSpeech.say("la météo aujourd'hui au caire est" ); retard (2000); /* 1Sheeld répond en utilisant le bouclier de synthèse vocale. */ TextToSpeech.say(sortie); } }void alexon(){ /* Activer les bandes dans l'ordre comme le même oder d'Amazon echo. */ digitalWrite(strip1,HIGH); retard (200); digitalWrite (bande2, HAUT); retard (200); digitalWrite(strip3,HIGH); } void alexoff(){ /* Désactiver les bandes. */ digitalWrite(strip1,LOW); digitalWrite(strip2,LOW); digitalWrite(strip3,LOW); }

Schémas


Processus de fabrication

  1. Envoyer des données de capteur d'un Arduino à un autre à l'aide de Firebase
  2. Dés numériques Arduino
  3. Télécommande universelle utilisant Arduino, 1Sheeld et Android
  4. Contrôleur de jeu Arduino
  5. Sonar utilisant arduino et affichage lors du traitement de l'IDE
  6. Jeu Pixel Chaser
  7. Contrôle de la luminosité des LED à l'aide de Bolt et Arduino
  8. Bras robotique simple et intelligent utilisant Arduino
  9. Réservoir de WalaBeer