Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

Arduino-gebaseerde Amazon Echo met 1Sheeld

Componenten en benodigdheden

Arduino 101
× 1
1Sheeld
× 1
1Sheeld
× 1
Stick lamp
× 1
RGB ledstrip
× 1
Relaisbord
× 1
Apple iPhone
× 1
Broodplank (algemeen)
× 1
USB-A naar B-kabel
× 1
Jumperdraden (algemeen)
× 30
Transistor-NPN voor algemeen gebruik
× 3

Benodigde gereedschappen en machines

Driller
PVC-buis

Apps en online services

Arduino IDE

Over dit project

Een paar maanden geleden bezocht ik een vriend van mij en ik stond versteld van de Amazon Echo die hij bezat.

Hij kan muziek afspelen, de verlichting in huis bedienen, me nieuws en de weersstatus vertellen, en zelfs de datum en tijd, en dat allemaal met alleen spraakopdrachten.

Op dat moment riep de maker in mij "waarom maak ik het niet zelf!".

En sinds die dag begon ik te zoeken naar componenten die me konden helpen om een ​​op arduino gebaseerde Amazon Echo te maken, totdat ik de geweldige 1Sheeld vond.

1Sheeld is een platform voor Arduino waarmee u gebruik kunt maken van de sensoren en mogelijkheden van uw smartphone en deze kunt gebruiken in uw Arduino-projecten.

Kortom, het is een hardwareschild dat bovenop je Arduino-bord zit en via Bluetooth communiceert met deze Android-app, om gegevens tussen het en je smartphone over te dragen.

Je kunt de aan de slag-tutorial bekijken op de 1Sheeld-website, die je stap voor stap zal begeleiden totdat je de 1Sheeld heel soepel kunt bedienen en het is een geweldige referentie voor geweldige Arduino-projecten.

Ik heb in dit project vijf schilden gebruikt van de 40+ schilden in de 1Sheeld.

De eerste is het Spraakherkenningsschild waarmee ik het hele systeem bestuurde met spraakopdrachten, het is een heel eenvoudig schild dat ik het kan activeren met slechts 1 regel code:VoiceRecognition.start();

Daarna gebruikte ik het Music Player Shield waarmee ik de muziekspeler van de smartphone kan gebruiken en de nummers kan kiezen die ik heel soepel wil afspelen, eigenlijk is het heel eenvoudig dat ik deze regel alleen heb gebruikt om het schild van de muziekspeler af te spelen:MusicPlayer.play();

Het derde schild dat ik heb gebruikt, is een van de belangrijkste schilden in het project, het is het Text to Speech Shield die aan het project een humanoïde interactie toevoegen waarbij iemand reageert op wat je zegt, het was zo gemakkelijk om het systeem responsief te maken:TextToSpeech.say("time in cairo is");

Na het activeren van het Tekst-naar-spraak-schild heb ik het Klokschild . geactiveerd die de klok in realtime terugstuurt en dan kan het systeem reageren met de tijd zodra ik erom vroeg, geweldig! is het niet :), en ik kan gemakkelijk de huidige tijd in mijn telefoon krijgen met deze functie:Clock.queryDateAndTime();

Het laatste schild dat ik heb gebruikt is het Internet Shield wat naar mijn mening het krachtigste schild in de 1Sheeld is, ik gebruikte dat schild om de huidige status van het weer in mijn woonplaats te krijgen met behulp van een API van de "openweathermap" -website waar ik de API met die regel kan aanroepen: HttpRequest request1("/*het API-adres */");

Stap 1:Verzamel de componenten

  • Arduino 101 $30,99
  • 1Sheeld+ bord $ 54,94
  • iPhone $ 155,5
  • PVC-buis $2
  • LED-strip $ 5
  • 12V voeding $7
  • Relaisbord $3
  • Truien en draden $3
  • 3 NPN-transistors $1

Stap 2:

Maak gaten in de pijp om het geluid uit te laten gaan

Stap 3:

Verf de PVC-buis met zwarte spray

Stap 4:Maak de bedrading

  • Sluit de LED-strips aan op de transistors en de voeding
  • Sluit de lamp aan op de relaiskaart en AC-aansluitingen
  • Sluit het relaisbord en de LED-strips aan op het Arduino 101-bord zoals vermeld in de onderstaande code
  • Monteer dat allemaal met de iPhone in de PVC-buis

Stap 5:1Sheeld-bibliotheek instellen

U kunt alle bibliotheken beheren vanuit Arduino's IDE. Klik gewoon op Schets>> Bibliotheek opnemen>> Bibliotheken beheren>> typ OneSheeld>> klik vervolgens op installeren en u bent klaar om te gaan. Of u kunt de bibliotheek hier downloaden:http://1sheeld.com/downloads/ Open vervolgens uw Arduino IDE en kies vervolgens schets in de menubalk>> Voeg bibliotheek toe>> voeg .zip-bestand toe>> kies vervolgens het zip-bestand yo zojuist gedownload.

Stap 6:Installeer de 1Sheeld-app

Download de mobiele 1Sheeld-app van de website of ga naar de Apple Play Store of Google Play Store om de app te downloaden.

Stap 7:Toegang tot de schilden

Volg de 1Sheeld-handleiding om aan de slag te gaan en kies aan het einde de volgende schilden

  • Spraakherkenning
  • Tekst naar spraak
  • Klok
  • Internet
  • Muziekspeler

Druk vervolgens op de knop met meerdere schilden.

Code

  • Amazon echocode
Amazon echo codeArduino
/* OPTIONEEL:om de gecompileerde grootte van de bibliotheek te verkleinen en het geheugengebruik te beperken, kunt u specificeren welke schilden u in uw schets wilt opnemen door CUSTOM_SETTINGS en de respectievelijke schilden INCLUDE_definiëren te definiëren. */#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_1SHIELD/*. */#include /* maak een beginwaarde voor de millis-teller. */unsigned long previousMillis =0;/* creëer een beginstatus voor het aanroepen van alexa. */bool state =0;/* Roep een api aan die de weerstatus in cairo,egypte zal retourneren. */HttpRequest request1("http://api.openweathermap.org/data/2.5/weather?q=Cairo,EG&appid=43d95b4cf5d0573e2dfe5186c160017a");/* definieer de 3 transistors op pinnen 3,5 en 6. */#define strip1 3#define strip2 6#define strip3 5/* definieer de lamp op pin 13. */int lamp =13;/* definieer de variabele die de uren en miniuts zal bevatten. */int hour, minute;/* Maak 2 karakters om de gewenste string uit de zin te halen. */char b[4];char c[4];/* definieer variabelen om het uur en de miniuts in een string te houden. */String strh, strm;/* definieer variabele om de dagstatus am of pm vast te houden. */String middag;/* Spraakcommando's ingesteld door de gebruiker. */const char mainCommand[] ="alexa";const char weatherCommand[] ="hoe is het weer vandaag";const char playCommand[] ="speel muziek";const char clockCommand[] ="hoe laat is het"; const char stopCommand[] ="stop";const char lightonCommand[] ="zet de lichten aan";const char lightoffCommand[] ="doe de lichten";void setup() { /* Start communicatie. */ OneSheeld.begin();/* zet de ledstrips en de lamp op output. */ pinMode (strip1, UITGANG); pinMode (strip2, UITGANG); pinMode (strip3, UITGANG); pinMode (lamp, UITGANG); /* Abonneer u op een succesvolle callback voor het verzoek. */ request1.setOnSuccess(&onSuccess1); /* Abonneer je op json value-antwoorden. */ request1.getResponse().setOnJsonResponse(&onJsonReply1);/* op een door een stem herkende oproep de functie "mijnfunctie". */ VoiceRecognition.setOnNewCommand(&myFunction);}void loop (){ /* maak een vertraging van 5 seconden met millis-teller om de spraakdetectie actief te houden. */ unsigned long currentMillis =millis(); if (currentMillis - previousMillis>=5000) { previousMillis =currentMillis; /* haal de huidige tijd in uw telefoon. */ Clock.queryDateAndTime(); /* stemherkenning starten. */ Spraakherkenning.start(); }/* sla de uren en minuten van de smartphone op in variabelen. */ uur =Clock.getHours(); minuut =Klok.getMinutes(); /* detecteer de tijdstatus als het am of pm is. */ if (uur> 12) { uur -=12; middag ="PM"; } else { middag ="AM"; }/* sla het uur en de minuten op als string. */ strh =String (uur); strm =String (minuut);/* sla de string op in een charchter-array. */ strh.naarCharArray(b, 4); strm.toCharArray(c, 4);}/* Deze functie wordt aangeroepen telkens wanneer een nieuwe opdracht wordt gegeven. */void myFunction (char *commandSpoken){/* controleer of iemand Alexa aanroept of niet. */ if (!strcmp(mainCommand, VoiceRecognition.getLastCommand())) { alexon(); Muziekspeler.setVolume(5); /* indien ja, maak de status =1 . */ staat =1; } /* controleer of je hebt gevraagd om muziek af te spelen nadat je Alexa hebt gebeld. */ if (!strcmp(playCommand, VoiceRecognition.getLastCommand()) &&state ==1) { alexoff(); Muziekspeler.play(); vertraging (10000); Muziekspeler.stop(); staat =0; }/* controleer of je hebt gevraagd om de weerstatus te krijgen nadat je Alexa hebt gebeld. */ else if(!strcmp(weatherCommand,VoiceRecognition.getLastCommand())&&state ==1) { alexoff(); Internet.performGet(request1); /* Wacht 5 seconden. */ OneSheeld.delay (5000); staat =0; }/* controleer of je om de tijd hebt gevraagd nadat je Alexa hebt gebeld. */ if(!strcmp(clockCommand,VoiceRecognition.getLastCommand()) &&state ==1) { alexoff(); /* 1Sheeld reageert met tekst-naar-spraak. */ TextToSpeech.say("tijd in Caïro is"); vertraging (1300); TextToSpeech.say(b); vertraging (600); TextToSpeech.say(c); vertraging (800); TextToSpeech.say (middag); vertraging (500); staat =0; }/* controleer of je hebt gevraagd om de lamp aan te doen nadat je Alexa hebt gebeld. */ if (!strcmp(lightonCommand, VoiceRecognition.getLastCommand()) &&state ==1) { alexoff(); digitalWrite (lamp, HOOG); TextToSpeech.say("de lichten gingen aan"); vertraging (6000); staat =0; }/* controleer of je hebt gevraagd om de lamp uit te doen nadat je Alexa hebt gebeld. */ else if (!strcmp(lightoffCommand, VoiceRecognition.getLastCommand()) &&state ==1) { alexoff(); digitalWrite (lamp, LAAG); TextToSpeech.say("de lichten zijn uit"); vertraging (3000); staat =0; }}void onSuccess1(HttpResponse &response1){ /* Het antwoord gebruiken om de Json-keten te doorzoeken tot de vereiste waarde. */ /* d.w.z. Verkrijg de waarde van 'main' in het eerste object van de array 'weather' in het antwoord. */ /* Op voorwaarde dat het antwoord in JSON-formaat is. */ response1["weather"][0]["main"].query();delay(200); }void onJsonReply1(JsonKeyChain &hell,char * output){ if(hell ==request1.getResponse()["weather"][0]["main"]) { TextToSpeech.say("het weer vandaag in Caïro is" ); vertraging (2000); /* 1Sheeld reageert met tekst-naar-spraak-schild. */ TextToSpeech.say (uitvoer); } }void alexon(){ /* Zet de strips aan in dezelfde volgorde als amazon echo. */ digitalWrite(strip1,HOOG); vertraging (200); digitalWrite(strip2,HOOG); vertraging (200); digitalWrite(strip3,HOOG); } void alexoff(){ /* Schakel de strips uit. */digitalWrite(strip1,LAAG); digitalWrite(strip2,LAAG); digitalWrite(strip3,LAAG); }

Schema's


Productieproces

  1. Stuur sensorgegevens van de ene Arduino naar de andere met Firebase
  2. Arduino digitale dobbelstenen
  3. Universele afstandsbediening met Arduino, 1Sheeld en Android
  4. Arduino-gamecontroller
  5. Sonar met arduino en weergave op verwerkings-IDE
  6. Pixel Chaser-game
  7. LED-helderheid regelen met Bolt en Arduino
  8. Eenvoudige en slimme robotarm met Arduino
  9. WalaBeer Tank
  10. FM-radio met Arduino en RDA8057M
  11. NeoMatrix Arduino Pong