1970-talet raspberry Pi Amazon AlexaPhone (2 / 7 steg)
Steg 2: Få Pi Alexa-redo
Jag tänker inte gå in på alla detaljer i koden här som det är väl dokumenterat på GitHub och verkar (från alla titta på anmälningar jag får) är under aktiv utveckling så ändras ofta. Med det fungerar på min Pi 3 fick jag idén att bygga AlexaPhone parallellt med min ursprungliga projektet och får börja om från början med min Pi 2 (Tyvärr betyder ingen RetroPie tillfälligt). Att ställa upp när redan jag lyckades slutföra Pi & kod konfigurationen i en enda kväll - är detta den process som jag följde:
Först jag ställa in en ny enhet som kallas AlexaPhone på webbplatsen för Amazon efter processen i avsnitt 3.4 i ReadMe. Den enda förändring som behövs för att stödja AlexaPi koden var att ersätta Amazons föreslagna https://localhost:3000 med https://localhost:5000 i avsnittet "Webbinställningar" i den säkerhetsprofil. Vi ska återkomma till webbinställningar lite senare på. Med enheten ställa in jag skickade själv alla koder via e-post och vände min uppmärksamhet till Pi.
Jag började med att ladda ner & skriva en ny installation av Raspbian till ett 8 gb SD-kort - du kan också använda NOOBS, detta fungerade för mig på Pi 3. Med en bildskärm & nätverk kabel ansluten gjorde jag följande efter den första starten:
- Expandera filesystem (öppna en terminal session, skriv raspi-config, Välj alternativ 1)
- Fortfarande i raspi-config ställa in ljudet att tvinga 3,5 mm utgång i stället för HDMI (avancerade alternativ - ljud)
- Fortfarande i raspi-config ändra värdnamn till AlexaPhone - om du har flera Pis på det trådlösa nätverket detta gör det lättare att berätta för dem isär
- Fortfarande i den terminaltyp lsusb - upptäcktes notering av USB-enheter för att se till att USB-telefonen
- Från skrivbordet Ställ in mikrofonnivå till maximum (Inställningar > Audio Device Settings)
- Från skrivbordet ställa in WiFi genom att klicka på nätverksikonen i Aktivitetsfältet
Här jag rebooted Pi och sedan bytte tillbaka till den bärbara datorn tillfälligt till...
- Logga in på WiFi-router och ställa in Pi att ha en "reserverade IP-adressen" - MAC-adressen för den Pi WiFi adapter bör vara uppenbart i routerns lista över anslutna enheter, särskilt om du har ändrat hostname.
- Anteckna Pi: s IP-adress, logga tillbaka in på webbplatsen för Amazon och lägga till två nya linjer till webbinställningar i nätverkssäkerhet profil, så att i tillåtna ursprung det är en linje som säger https://localhost:5000 och under det en ny som säger https://YourPiIpAddress:5000. Samma för tillåts återvända webbadresser så finns det https://localhost:5000/authresponse och https://YourPiIpAddress:5000/authresponse visar.
Nu att ställa in AlexaPi koden! Jag följde instruktionerna från GitHub som var välskriven, jag ska bara tillägga min personliga erfarenheter:
- Se till att du är inloggad som root (sudo su i terminal) innan du gör den Git Clone lite
- Kontrollera att du är i rotmappen innan du gör den Git Clone lite (cd /rot/ i terminal)
- Efter den Git Clone lite är gjort måste du redigera filen setup.sh om vill använda wi-fi - gå till katalogen AlexaPi (cd AlexaPi) sedan manuellt redigera (sudo nano setup.sh) filen - ersätta ip = ifconfig eth0 med ip = ifconfig wlan0
- Nu kan du köra setup.sh, där du uppmanas ange alla långa koder som genererades på Amazon webbplats under installationen av enhetsprofilen. Jag fann det enklaste att kopiera och klistra in dessa från Claws Mail.
- För mig gav setup.sh skriptet ett felmeddelande i slutet, men det kan mycket väl fungera bra för dig - allt jag behövde göra var manuellt redigera filen creds.py i mappen AlexaPi, klistra in säkerhets-ID igen.
- Här jag manuellt sprang auth_web.py (sudo python auth_web.py), då öppnas ett webbläsarfönster och skrivit https://localhost:5000 - detta fört en Amazon login sida att slutföra processen
Jag är inte säker på att alla 100% av de ovanstående processerna var nödvändiga, men det var vad arbetat för jag. Efter en pånyttfödd AlexaPi tjänsten startas automatiskt när Pi startat upp, gör mig hoppa när det gav dess "Hej"-hälsning.
Den huvudsakliga delen av koden är korrekt kallas main.py, och detta innehåller instruktioner för att fånga ljud frågan, ladda upp den till Alexa och hämtning/spela tillbaka svaret, samt definiera GPIO stiften för växeln och indikator lysdioder. Koden är utformad för en trebent Tri Colour LED, som var perfekt för mig som jag ville hålla telefonen exteriör som stilren som möjligt. Det enda jag ändrat för detta projekt var filnamnet på .mp3 filen spelas vid start, ersätts med namnet på den trimphone ringsignalen. Med koden tack och lov fungerar perfekt jag lämnade den väl ensam, frånkopplad kabel monitor och nätverk och flyttade till byggandet.