- Perquisite Material:
- Del 1: Ställa in Raspberry Pi med SSH och VNC
- Del 2: Ställ in ditt Amazon-utvecklarkonto och konfigurera Alexa Voice Services på Raspberry Pi:
- Del 3: Ställa in PubNub och IFTTT för Alexa Pi Home Automation :
- Del 3-2: Konfigurera IFTTT för Amazon Alexa Service:
- Del 4: Hårdvaruanslutningar och kretsschema:
- Del 5: Pythonkod för styrning av lysdioden:
Har du någonsin tänkt på en högtalare som kan styras av din röst !!! Vad händer om vi kan styra våra hushållsapparater på detta sätt och göra dessa apparater smartare? Röstassistenter blir mer populära när vi är på väg mot en era av AI- och IoT-baserade system. Du har hört talas om Google Assistant, Apple Siri och Amazon Alexa . Dessa är alla röstbaserade AI-system, det som gör att dessa skiljer sig från varandra är deras ekosystem, och det är här Amazon Alexa sticker ut mest. Google, Apple och Amazon, alla dessa företag lanserade redan sina smarta högtalare men Amazon var först med att introducera smarta högtalare. Amazon echo, Echo Dot Spot, etc. är de smarta högtalarna som finns på marknaden.
Amazon tillhandahåller API för att använda sin mycket populära rösttjänst, Alexa. Den är öppen källkod och tillgänglig på Github. Dessutom kan du installera eller integrera Alexa på anpassade enheter som Raspberry Pi och få full Amazon Echo-funktionalitet i den enheten.
Med hjälp av Alexa rösttjänst kan vi spela musik, få information om väder, boka biljetter och många fler. Allt du behöver göra är att "fråga". I den här handledningen kommer vi att se hur vi kan styra Raspberry Pi GPIO med hjälp av Alexa Voice-tjänster för att lysa en LED.
Perquisite Material:
Hårdvarukrav:
- Raspberry Pi 3 eller Raspberry Pi 2 modell B och SD-kort (8 GB eller mer)
- Extern högtalare med 3,5 mm AUX-kabel
- Alla webbkameror eller USB 2.0-mikrofoner
- Relämodul
- LED
Obs! Webbkameran har inbyggd mikrofon, så vi använder den istället för USB 2.0-mikrofon.
Programappar och webbkrav:
- Registrera ett konto hos Alexa Voice Services
- Registrera ett konto hos PubNub
- Registrera ett konto hos IFTTT
Vi antar också att din Raspberry pi redan är konfigurerad med ett Raspbian OS och är ansluten till internet. Med dessa på plats, låt oss fortsätta med handledningen. Om du är ny på Raspberry Pi, gå igenom Komma igång med Raspberry pi först.
Hela handledningen är huvudsakligen uppdelad i 5 delar, som är följande:
- Om du inte har bildskärm måste vi ställa in Raspberry Pi med SSH och VNC, kontrollera även USB-mikrofonanslutningen.
- Ställ in din Amazon-utvecklare och installera Alexa på Raspberry Pi
- Konfigurera PubNub och IFTTT för Alexa Home Automation
- Hårdvaruanslutning
- Pythonkod för Alexa Pi GPIO Control
Om du bara vill styra en LED med din röst, kolla också vårt Bluetooth-baserade röststyrda LED-projekt.
Del 1: Ställa in Raspberry Pi med SSH och VNC
Först ansluter vi Raspberry Pi med SSH och VNC. För detta följer du självstudier på den officiella Raspberry Pi-webbplatsen, länkar ges nedan.
För SSH: SSh-länk
För VNC: VNC-länk
Om du har Monitor kan du lämna det här steget och gå direkt till steg 2 som är att ställa in Alexa Voice Service (Avs). Innan det måste vi kontrollera mikrofonanslutning.
Kontrollera webbkameramikrofon med Raspberry Pi:
1. Öppna Raspberry Pi-terminalen och skriv arecord -l- kommandot. Detta visar hårdvaruenheterna som är anslutna till Raspberry Pi enligt nedan:
Kort 1 är din webbkameras mikrofon som vi ska använda. Om den inte visas kan din webbkamera vara defekt.
2. Kontrollera nu om mikrofonen fungerar genom att köra inspelningsljudkommandot som:
arecord /home/pi/Desktop/test.wav -D sysdefault: CARD = 1
3. För att spela det inspelade ljudet, skriv detta kommando:
omxplayer -p -o local /home/pi/Desktop/test.wav
Om du har anslutit Raspberry Pi med bildskärm med hjälp av HDMI-kabel kommer ljudutgången som standard via skärmens högtalare (om det finns en inbyggd högtalare i den). Så för att ändra den till 3,5 mm måste du skriva följande kommando:
sudo raspi-config och gå till alternativet Advance.
Välj ljud från listan -> välj Force 3.5mm -> välj Ok och starta om Raspberry Pi.
Nu borde du höra ljudet från 3,5 mm-uttaget.
OBS: Om du vill öka eller minska den ingående röststyrkan för mikrofon, skriv in typen som mixer i terminalen. Välj ljudkort från terminalen genom att trycka på F6.
Tryck på F4 för att ändra Mic dB-förstärkningen och ställ in den som du vill.
Om du har en USB 2.0-mikrofon är stegen som följs samma för att kontrollera mikrofonen. Här har vi använt webbkamera för USB-mikrofon.
Del 2: Ställ in ditt Amazon-utvecklarkonto och konfigurera Alexa Voice Services på Raspberry Pi:
Vi har redan förklarat detta i detalj i vår tidigare handledning där vi har byggt en Amazon Echo smart högtalare. Här fokuserar vi på att styra Raspberry Pi GPIO med Alexa så vi förklarar inte hela processen igen, så läs föregående artikel och gör din högtalare redo med Alexa rösttjänster installerade på din Raspberry pi.
För att testa Alexa, vakna bara upp henne genom att säga hennes namn! Kontrollera demonstrationsvideon i slutet av handledningen.
Du kan be henne om temperaturen i din stad för att kontrollera att den fungerar eller inte.
Del 3: Ställa in PubNub och IFTTT för Alexa Pi Home Automation :
För att kontrollera Raspberry Pi GPIO med hjälp av denna Alexa Pi behöver vi hjälp av PubNub python SDK och IFTTT. Vi kommer att ge kommandon till IFTTT via Alexa, och PubNub ger signal till RPi att sätta på / stänga av lysdioden. Så vi installerar först PubNub på Raspberry Pi.
Del 3-1: Installera PubNub Python SDK:
PubNub tillhandahåller ett API för meddelanden för att publicera / prenumerera på alla meddelanden i deras globala nätverk. Här använder vi IFTTT och Alexa för att publicera meddelandet på PubNub för att göra Raspberry Pi GPIO låg / hög. Detta meddelande tas emot av Raspberry Pi och Pi tänder eller stänger av LED-lampan i enlighet därmed. Följ stegen nedan för att ställa in PubNub på Raspberry Pi:
Steg 1: Öppna terminalen på din RPi och kör följande kommando för att installera SDK:
sudo pip installera pubnub == 3.9.0
Installera endast version 3.9.0, den andra versionen fungerar inte med python-skriptet som vi kommer att köra i det sista.
Steg 2: Gå nu till PubNub och logga in med dina referenser.
Steg 3:. Skaffa publicerings- och prenumerationsnycklarna vi kommer att använda senare.
Del 3-2: Konfigurera IFTTT för Amazon Alexa Service:
IFTTT är en gratis webbaserad tjänst som gör det möjligt för användare att skapa kedjor med enkla villkorliga uttalanden, så kallade "recept", som utlöses baserat på ändringar av andra webbtjänster som Gmail, Facebook, Instagram och. IFTTT är en förkortning av "If This Then That".
För detta projekt används IFTTT för att göra Raspberry Pi GPIO LOW / HIGH baserat på talkommandot som tas emot av Alexa-tjänsten som körs på RPi.
Följ dessa steg för att skapa en applet:
Steg 1: - Logga in till IFTTT med dina referenser eller Registrera dig om du inte har ett konto på det.
Steg 2: - Klicka på Ny applet på mina miniprogram
Steg 3: - Klicka på + detta
Steg 4: - Sök på Amazon Alexa och klicka på den, logga in med dina Amazon-utvecklare kontoinformation.
Steg 5: - Välj avtryckaren, säg en specifik fras
Steg 6: - Ange " tänd lampan" som frasen, klicka på Skapa utlösare.
Steg 7: - Klicka på + det
Steg 8: - Sök efter Webhooks, klicka på den och välj Gör en webbförfrågan
Steg 9: - Webhooks tillhandahåller REST WEB-begäran, använd nycklarna Publicera och prenumeration som erhållits från PubNub och ändra följande URL.
http://pubsub.pubnub.com//publish/pub_key/sub_key/0/alexaTrigger/0/{"requester":"Alexa","trigger":"light","status":1}
Steg 10: - Klistra in den modifierade URL: en i URL-rutan.
Steg 11: - Ställ in metoden som GET, innehåll som applikation / json och klicka på spara.
Steg 12: - Följ samma steg för att skapa utlösaren för " stäng av lampan " och ändra webbadressen till följande.
pubsub.pubnub.com//publish/pub_key/sub_key/0/alexaTrigger/0/{"requester":"Alexa","trigger":"light","status":0
Steg 13: - Vi är nu redo med alla webbkomponenter för demo.
Del 4: Hårdvaruanslutningar och kretsschema:
För detta projekt behöver vi en enkel lysdiod för teständamål. Nedan är kretsschemat och maskinvaruanslutningar för att styra Raspberry Pi GPIO med Amazon Alexa.
Vi använder GPIO18 i vårt python-skript, så anslut relä din LED 18. Du kan ändra detta i python-skript.
Del 5: Pythonkod för styrning av lysdioden:
Hitta hela Python-skriptet i slutet av denna handledning.
Du måste redigera Pub- och Sub-tangenten med dina pubnub-nycklar i pythonkoden.
# Initiera Pubnub Keys pub_key = "***************************" undernyckel = "*********** ************* "
Kör nu skriptet
python alexaRpi.py
Nu är vi redo för demo, se till att du kör alla de tre tjänsterna från del 1 (de tre terminalerna) innan du fortsätter.
För att ge något kommando måste du väcka Alexa-tjänsten genom att ringa "Alexa" varje gång du vill skicka ett kommando. Du hör ett pip. När du hör pipet, säg “ Alexa Trigger Slå på ljuset. ”Du kan se att ljuset tänds inom ett ögonblick. Och om du säger " Alexa Trigger Stäng av ljuset ", bör ljuset stängas AV.
Det är allt…. Du kan ytterligare lägga till ett relä för att styra växelströmsapparaten, även om du kan styra många apparater genom att använda fler reläer och fler GPIO-stift på Raspberry pi.
Kontrollera hela koden och demonstrationsvideo nedan. Kolla också in alla våra hemautomationsprojekt här.