- Perquisite Material:
- Del 1: Sette opp Raspberry Pi med SSH og VNC
- Del 2: Konfigurer Amazon-utviklerkontoen din og konfigurer Alexa Voice Services på Raspberry Pi:
- Del 3: Sette opp PubNub og IFTTT for Alexa Pi Home Automation :
- Del 3-2: Konfigurere IFTTT for Amazon Alexa Service:
- Del 4: Maskinvaretilkoblinger og kretsdiagram:
- Del 5: Python-kode for å kontrollere LED:
Har du noen gang tenkt på en høyttaler som kan styres av stemmen din !!! Hva om vi kan kontrollere husholdningsapparater på denne måten og gjøre disse apparatene smartere? Stemmeassistenter blir mer populære når vi går mot en tid med AI- og IoT-baserte systemer. Du har hørt om Google Assistant, Apple Siri og Amazon Alexa . Alt dette er stemmebaserte AI-systemer. Det som skiller disse fra hverandre er deres økosystemer, og det er her Amazon Alexa skiller seg ut mest. Google, Apple og Amazon, alle disse selskapene lanserte allerede sine smarte høyttalere, men Amazon var først med å introdusere smarte høyttalere. Amazon echo, Echo Dot Spot, etc. er de smarte høyttalerne som er tilgjengelige i markedet.
Amazon tilbyr API for å bruke sin mye populære taletjeneste, Alexa. Den er åpen kildekode og tilgjengelig på Github. Videre kan du installere eller integrere Alexa på egendefinerte enheter som Raspberry Pi og få full Amazon Echo-funksjonalitet i den enheten.
Ved hjelp av Alexa taletjeneste kan vi spille musikk, få informasjon om været, bestille billetter og mange flere. Alt du trenger å gjøre er å 'spørre'. I denne opplæringen vil vi se hvordan vi kan kontrollere Raspberry Pi GPIO ved hjelp av Alexa Voice-tjenester for å lyse en LED.
Perquisite Material:
Maskinvarekrav:
- Raspberry Pi 3 eller Raspberry Pi 2 Model B og SD-kort (8 GB eller mer)
- Ekstern høyttaler med 3,5 mm AUX-kabel
- Ethvert webkamera eller USB 2.0-mikrofon
- Relémodul
- LED
Merk: Webkamera har innebygd mikrofon, så vi bruker dette i stedet for USB 2.0-mikrofon.
Programvareapper og nettkrav:
- Registrer en konto hos Alexa Voice Services
- Registrer en konto hos PubNub
- Registrer en konto hos IFTTT
Vi antar også at Raspberry pi allerede er konfigurert med et Raspbian OS og er koblet til internett. Med disse på plass, la oss fortsette med opplæringen. Hvis du er ny i Raspberry Pi, så gå gjennom Komme i gang med Raspberry pi først.
Hele opplæringen er hovedsakelig delt inn i 5 deler, som er som følger:
- Hvis du ikke har skjerm, må vi sette opp Raspberry Pi med SSH og VNC, sjekk også USB-mikrofontilkoblingen.
- Sett opp din Amazon-utvikler og installer Alexa på Raspberry Pi
- Sette opp PubNub og IFTTT for Alexa Home Automation
- Maskinvaretilkobling
- Python-kode for Alexa Pi GPIO Control
Hvis du bare vil kontrollere en LED med stemmen din, kan du også sjekke vårt Bluetooth-baserte stemmestyrte LED-prosjekt.
Del 1: Sette opp Raspberry Pi med SSH og VNC
Først vil vi koble Raspberry Pi med SSH og VNC. For denne følg opplæringen på offisielle Raspberry Pi nettsted, lenker er gitt nedenfor.
For SSH: SSh-kobling
For VNC: VNC-lenke
Hvis du har Monitor, kan du forlate dette trinnet og gå direkte til trinn 2 som er å sette opp Alexa Voice Service (Avs). Før det må vi sjekke mikrofonforbindelsen.
Kontrollere mikrofon med Raspberry Pi:
1. Åpne Raspberry Pi terminal og skriv arecord -l kommando. Dette viser maskinvareenhetene som er koblet til Raspberry Pi som vist nedenfor:
Kort 1 er mikrofonen til webkameraet ditt som vi skal bruke. Hvis det ikke vises, kan webkameraet være defekt.
2. Sjekk nå om mikrofonen fungerer ved å kjøre lydkommandoen som:
arecord /home/pi/Desktop/test.wav -D sysdefault: CARD = 1
3. For å spille av den innspilte lyden skriver du denne kommandoen:
omxplayer -p -o local /home/pi/Desktop/test.wav
Hvis du har koblet Raspberry Pi til skjermen ved hjelp av HDMI-kabel, er lydutgangen som standard gjennom skjermens høyttaler (hvis det er innebygd høyttaler i den). Så, for å endre den til 3,5 mm, må du skrive følgende kommando:
sudo raspi-config og gå til Advance-alternativet.
Velg Audio fra listen -> velg Force 3.5mm -> velg Ok og start Raspberry Pi på nytt.
Nå skal du høre lyden fra 3,5 mm-kontakten.
MERKNAD: Hvis du vil øke eller redusere lydstyrken for inngangen til mikrofonen, kan du også bruke mikseren som terminal. Velg lydkort fra terminalen ved å trykke på F6.
Trykk på F4 for å endre Mic dB-forsterkningen og sette den slik du vil.
Hvis du har USB 2.0-mikrofon, er trinnene som følges de samme for å sjekke mikrofonen. Her har vi brukt Webcam til USB-mikrofon.
Del 2: Konfigurer Amazon-utviklerkontoen din og konfigurer Alexa Voice Services på Raspberry Pi:
Vi har allerede forklart dette i detalj i vår forrige opplæring der vi har bygget en Amazon Echo smart høyttaler. Her fokuserer vi på å kontrollere Raspberry Pi GPIO med Alexa, så vi forklarer ikke hele prosessen igjen, så les forrige artikkel og gjør høyttaleren klar med Alexa taletjenester installert på Raspberry pi.
For å teste Alexa er det bare å vekke henne ved å si navnet hennes! Sjekk demonstrasjonsvideoen gitt på slutten av opplæringen.
Du kan spørre henne om temperaturen i byen din for å sjekke at den fungerer eller ikke.
Del 3: Sette opp PubNub og IFTTT for Alexa Pi Home Automation :
For å kontrollere Raspberry Pi GPIO ved hjelp av denne Alexa Pi, trenger vi hjelp fra PubNub python SDK og IFTTT. Vi vil gi kommandoer til IFTTT gjennom Alexa, og PubNub gir signal til RPi om å slå på / av LED. Så vi installerer først PubNub på Raspberry Pi.
Del 3-1: Installere PubNub Python SDK:
PubNub tilbyr et meldings-API for å publisere / abonnere på meldinger i deres globale nettverk. Her bruker vi IFTTT og Alexa for å publisere meldingen på PubNub for å gjøre Raspberry Pi GPIO lav / høy. Denne meldingen mottas av Raspberry Pi, og Pi vil slå lysdioden på eller av tilsvarende. Følg trinnene nedenfor for å sette opp PubNub på Raspberry Pi:
Trinn 1: Åpne terminalen på RPi og kjør følgende kommando for å installere SDK:
sudo pip installere pubnub == 3.9.0
Installer bare 3.9.0- versjonen, den andre versjonen fungerer ikke med python-skriptet som vi skal kjøre sist.
Trinn 2: Gå nå til PubNub og logg på med legitimasjonen din.
Trinn 3:. Få tak i publiserings- og abonnementsnøklene vi skal bruke senere.
Del 3-2: Konfigurere IFTTT for Amazon Alexa Service:
IFTTT er en gratis nettbasert tjeneste som lar brukerne lage kjeder med enkle betingede utsagn, kalt "oppskrifter", som utløses basert på endringer i andre webtjenester som Gmail, Facebook, Instagram og. IFTTT er en forkortelse av "If This Then That".
For dette prosjektet brukes IFTTT til å lage Raspberry Pi GPIO LOW / HIGH basert på talekommandoen mottatt av Alexa-tjenesten som kjører på RPi.
Følg disse trinnene for å lage en applet:
Trinn 1: - Logg inn på IFTTT med påloggingsinformasjonen eller Registrer deg hvis du ikke har en konto på den.
Trinn 2: - På Mine applets, klikk på New Applet
Trinn 3: - Klikk på + dette
Trinn 4: - Søk på Amazon Alexa og klikk på den, logg på med detaljer om Amazon-utviklerkontoen.
Trinn 5: - Velg utløseren, si en bestemt setning
Trinn 6: - Gi " slå på lyset" som uttrykk, klikk på Create Trigger.
Trinn 7: - Klikk på + det
Trinn 8: - Søk etter Webhooks, klikk på den og velg Lag en nettforespørsel
Trinn 9: - Webhooks gir REST WEB-forespørsel, bruk publiser og abonner nøklene hentet fra PubNub og modifiser følgende URL.
http://pubsub.pubnub.com//publish/pub_key/sub_key/0/alexaTrigger/0/{"requester":"Alexa","trigger":"light","status":1}
Trinn 10: - Lim inn den endrede URL-en i tekstboksen URL.
Trinn 11: - Sett metoden som GET, innhold som applikasjon / json og klikk på lagre.
Trinn 12: - Følg de samme trinnene for å lage utløseren for " slå av lyset " og endre URL til følgende.
pubsub.pubnub.com//publish/pub_key/sub_key/0/alexaTrigger/0/{"requester":"Alexa","trigger":"light","status":0
Trinn 13: - Vi er nå klare med alle webkomponentene for demoen.
Del 4: Maskinvaretilkoblinger og kretsdiagram:
For dette prosjektet trenger vi en enkel LED for testformål. Nedenfor er kretsskjemaet og maskinvareforbindelser for å kontrollere Raspberry Pi GPIO med Amazon Alexa.
Vi bruker GPIO18 i pythonscriptet vårt, så koble reléet til LED 18. Du kan endre dette i pythonscriptet.
Del 5: Python-kode for å kontrollere LED:
Finn det komplette Python-skriptet på slutten av denne opplæringen.
Du må redigere Pub- og Sub-nøkkel med pubnubnøklene i pythonkoden.
# Initialiser Pubnub Keys pub_key = "***************************" undernøkkel = "*********** ************* "
Kjør nå skriptet
python alexaRpi.py
Nå er vi klar for demoen. Forsikre deg om at du kjører alle de tre tjenestene fra del 1 (de tre terminalene) før du fortsetter.
For å gi en hvilken som helst kommando må du vekke Alexa-tjenesten ved å ringe "Alexa" hver gang du vil sende en kommando. Du vil høre en pipelyd. Når du hører pipet, si “ Alexa Trigger Slå på lyset. ”Du kan se at lyset slås PÅ i løpet av et øyeblikk. Og så hvis du sier " Alexa Trigger Slå av lyset ", skal lyset slås AV.
Det er det…. Du kan videre legge til et relé for å kontrollere vekselstrømsapparatet, selv om du kan kontrollere mange apparater ved å bruke flere reléer og flere GPIO-pinner på Raspberry pi.
Sjekk den komplette koden og demonstrasjonsvideoen nedenfor. Sjekk også alle hjemmeautomatiseringsprosjektene her.