Stap 2: Krijgen de Pi Alexa-klaar
Ik zal niet ingaan op alle details van de code hier zoals het goed gedocumenteerd op GitHub en (uit alle de Watch kennisgevingen krijg ik lijkt) worden in actieve ontwikkeling zo vaak kunnen veranderen. Met het werken op mijn Pi 3 had ik het idee om te bouwen van de AlexaPhone parallel met mijn oorspronkelijke project, vanaf nul met mijn Pi 2 (helaas wat betekent geen RetroPie tijdelijk). Die troep op opwaarts zodra al ik in geslaagd om het voltooien van de configuratie van het Pi & code in één avond - is dit het proces dat ik gevolgd:
Eerst ik het opzetten van een nieuw apparaat genaamd AlexaPhone op de website van Amazon, na het proces in sectie 3.4 van de ReadMe. De enige verandering die nodig zijn ter ondersteuning van de AlexaPi code moest Amazons voorgestelde https://localhost:3000 vervangen door https://localhost:5000 in de sectie "Web Settings" van het profiel van de veiligheid. Wij kom terug naar de webinstellingen een beetje later op. Met het apparaat instellen ik mezelf alle codes per e-mail verzonden en mijn aandacht op de Pi.
Ik begon door downloaden & het schrijven van een verse installatie van Raspbian op een 8 gb SD card - u kan ook gebruik maken van NOOBS, dit werkte voor mij op de Pi-3. Met een monitor & netwerk kabel deed ik het volgende na de eerste boot:
- Vouw het bestandssysteem (open een terminal sessie, typt u raspi-config, selecteer optie 1)
- Stel de Audio te dwingen 3,5 mm uitgang in plaats van HDMI (geavanceerde opties - Audio) nog steeds in raspi-config
- Nog steeds in de raspi-config omzetten in de hostnaam AlexaPhone - hebt u meerdere Pis op het draadloze netwerk, dat dit maakt het gemakkelijker om hen te vertellen uit elkaar
- Nog steeds in het type terminal lsusb - werd aanbieding van de USB-apparaten om ervoor te zorgen dat de USB-telefoon ontdekt
- Vanaf het bureaublad instellen van het microfoonniveau maximaal (Voorkeuren > Audio Device Settings)
- Vanaf het bureaublad WiFi instellen door te klikken op het netwerkpictogram op de taakbalk
Vanaf hier ik de Pi opgestart en vervolgens overgeschakeld terug naar de laptop tijdelijk te...
- Log in op de WiFi-router en stel de Pi een "gereserveerde IP-adres" - het MAC-adres van de Pi's WiFi adapter moet duidelijk in uw router's lijst van aangesloten apparaten, met name als u de hostnaam gewijzigd.
- Maak een notitie van de Pi's IP-adres, weer inlogt op de website van Amazon en twee nieuwe regels toevoegen aan de Web-instellingen van het profiel van de veiligheid, zodat die in toegelaten oorsprong er is een lijn die https://localhost:5000 zegt en eronder een nieuwe die https://YourPiIpAddress:5000 zegt. Dus er is hetzelfde voor toegestaan Return URL's https://localhost:5000/authresponse en https://YourPiIpAddress:5000/authresponse tonen.
Nu voor het instellen van de AlexaPi code! Ik volgde de instructies van GitHub die waren goed geschreven, ik zal gewoon toevoegen mijn persoonlijke ervaringen:
- Zorg ervoor dat u bent ingelogd als root (sudo su in terminal) voordat u het steentje Git Clone
- Zorg ervoor dat je in de Root-map voordat jij de Git Clone bit (cd/root / in terminal)
- Nadat de Git Clone bit wordt gedaan hoeft u voor het bewerken van het bestand setup.sh als wilt gebruikmaken van draadloos internet - wissel naar de AlexaPi directory (cd AlexaPi) vervolgens handmatig bewerken (sudo nano setup.sh) het bestand - vervangen van ip = ifconfig eth0 met ip = ifconfig wlan0
- Nu kunt u setup.sh, die u om alle lange codes die zijn gegenereerd op de Amazon-website vraagt tijdens het opzetten van het apparaatprofiel. Ik vond het makkelijkst te kopiëren en plakken deze uit Claws Mail.
- Voor mij gaf het script setup.sh een fout aan het eind, hoewel het goed schoon werken kan voor u - alles wat ik moest doen was handmatig bewerken het bestand creds.py in de map AlexaPi plakken in de beveiligings-id's weer.
- Vanaf hier ik handmatig liep auth_web.py (sudo python auth_web.py), dan een webbrowservenster geopend en getypt https://localhost:5000 - dit opgevoed een Amazon loginpagina om het proces te voltooien
Ik ben niet zeker van zijn dat alle 100% van de bovenstaande processen nodig waren, maar dat was welke gehanteerd voor mij. Na een herstart die de AlexaPi-service automatisch gestart wanneer de Pi opgestart, maakt me springen wanneer het gaf de begroeting 'Hello'.
Het grootste deel van de code op de juiste wijze main.py wordt genoemd, en dit bevat de instructies voor het vastleggen van de audio query, uploaden naar Alexa ophalen/afspelen het antwoord, alsmede vaststelling van de GPIO pinnen voor de schakeloptie en indicator LED's. De code is ontworpen voor een drie-legged Tri Colour LED, die perfect voor me was als ik wilde exterieur als overzichtelijk houden van de telefoon mogelijk. Het enige wat dat ik gewijzigd voor dit project was de bestandsnaam van het bestand van de .mp3 gespeeld bij het opstarten, vervangen door de naam van de ringtone te trimphone. Met de code gelukkig werken perfect ik liet het goed alleen losgekoppeld van de monitor en netwerk kabel en verhuisde naar de bouw.