- Material necesar:
- Partea 1: Configurarea Raspberry Pi cu SSH și VNC
- Partea 2: Configurați-vă contul de dezvoltator Amazon și configurați serviciile Alexa Voice pe Raspberry Pi:
- Partea 3: Configurarea PubNub și IFTTT pentru Alexa Pi Home Automation :
- Partea 3-2: Configurarea IFTTT pentru serviciul Amazon Alexa:
- Partea 4: Conexiuni hardware și schemă de circuit:
- Partea 5: Cod Python pentru controlul LED-ului:
Te-ai gândit vreodată la un difuzor care poate fi controlat de vocea ta !!! Ce se întâmplă dacă putem controla aparatele noastre casnice în acest fel și le putem face mai inteligente? Asistenții vocali devin din ce în ce mai populari pe măsură ce ne îndreptăm spre o eră a sistemelor bazate pe AI și IoT. Ați auzit despre Google Assistant, Apple Siri și Amazon Alexa . Toate acestea sunt sisteme AI bazate pe voce, ceea ce le face diferite între ele, sunt ecosistemele lor, iar aici se remarcă cel mai mult Amazon Alexa. Google, Apple și Amazon, toate aceste companii și-au lansat deja difuzoarele inteligente, dar Amazon a fost primul care a introdus difuzoarele inteligente. Ecoul Amazon, Echo Dot Spot etc. sunt difuzoarele inteligente disponibile pe piață.
Amazon oferă API-ul pentru utilizarea serviciului său vocal foarte popular, Alexa. Este open source și disponibil pe Github. În plus, puteți instala sau integra Alexa pe dispozitive personalizate precum Raspberry Pi și puteți obține funcționalitatea completă Amazon Echo în dispozitivul respectiv.
Folosind serviciul vocal Alexa, putem reda muzică, putem obține informații despre vreme, putem rezerva bilete și multe altele. Tot ce trebuie să faceți este să „întrebați”. În acest tutorial, vom vedea cum putem controla Raspberry Pi GPIO folosind serviciile Alexa Voice pentru a aprinde un LED.
Material necesar:
Cerințe hardware:
- Raspberry Pi 3 sau Raspberry Pi 2 Model B și card SD (8 GB sau mai mult)
- Difuzor extern cu cablu AUX de 3,5 mm
- Orice cameră web sau microfon USB 2.0
- Modul releu
- LED
Notă: Camera web are microfon încorporat, așa că îl vom folosi în locul microfonului USB 2.0.
Aplicații software și cerințe web:
- Înregistrați un cont la serviciile Alexa Voice
- Înregistrați un cont la PubNub
- Înregistrați un cont la IFTTT
De asemenea, presupunem că Raspberry pi dvs. este deja configurat cu un sistem de operare Raspbian și este conectat la internet. Cu acestea la locul lor, să continuăm cu tutorialul. Dacă sunteți nou în Raspberry Pi, treceți mai întâi la Noțiuni introductive despre Raspberry Pi.
Întregul tutorial este împărțit în principal în 5 părți, care sunt după cum urmează:
- Dacă nu aveți monitor, trebuie să configurați Raspberry Pi cu SSH și VNC, verificați și conectivitatea microfonului USB.
- Configurați-vă dezvoltatorul Amazon și instalați Alexa pe Raspberry Pi
- Configurarea PubNub și IFTTT pentru Alexa Home Automation
- Conexiune hardware
- Cod Python pentru controlul Alexa PI GPIO
Dacă doriți pur și simplu să controlați un LED cu vocea dvs., verificați și proiectul nostru cu LED controlat prin voce bazat pe Bluetooth.
Partea 1: Configurarea Raspberry Pi cu SSH și VNC
În primul rând, vom conecta Raspberry Pi cu SSH și VNC. Pentru aceasta urmați tutoriale de pe site-ul oficial al Raspberry Pi, linkurile sunt date mai jos.
Pentru SSH: link SSh
Pentru VNC: link VNC
Dacă aveți Monitor, puteți părăsi acest pas și puteți trece direct la pasul 2, care este Configurarea serviciului de voce Alexa (Avs). Înainte de asta trebuie să verificăm conectivitatea microfonului.
Verificarea microfonului camerei web cu Raspberry Pi:
1. Deschideți terminalul Raspberry Pi și tastați comanda arecord -l. Aceasta va afișa dispozitivele hardware care sunt conectate la Raspberry Pi așa cum se arată mai jos:
Cardul 1 este microfonul camerei web pe care îl vom folosi. Dacă nu este afișat, camera dvs. web poate fi defectă.
2. Acum, verificați dacă microfonul funcționează executând comanda de înregistrare audio ca:
arecord /home/pi/Desktop/test.wav -D sysdefault: CARD = 1
3. Pentru a reda sunetul înregistrat, tastați această comandă:
omxplayer -p -o local /home/pi/Desktop/test.wav
Dacă ați conectat Raspberry Pi la monitor folosind un cablu HDMI, implicit, ieșirea audio se face prin difuzorul monitorului (dacă există difuzor încorporat în el). Deci, pentru a-l schimba la 3,5 mm trebuie să tastați următoarea comandă:
sudo raspi-config și accesați opțiunea Advance.
Selectați Audio din listă -> selectați Forțare 3,5 mm -> selectați Ok și reporniți Raspberry Pi.
Acum, ar trebui să auziți sunetul de la mufa de 3,5 mm.
NOTĂ: Dacă doriți să măriți sau să micșorați intensitatea vocii de intrare pentru microfon, tastați și mixer în terminal. Selectați placa de sunet de la terminal apăsând F6.
Apăsați F4 pentru a schimba câștigul Mic dB și setați-l după cum doriți.
Dacă aveți microfon USB 2.0, pașii urmați sunt aceiași pentru a verifica microfonul. Aici am folosit Webcam pentru microcefon USB.
Partea 2: Configurați-vă contul de dezvoltator Amazon și configurați serviciile Alexa Voice pe Raspberry Pi:
Am explicat deja acest lucru în detaliu în tutorialul nostru anterior, unde am construit un difuzor inteligent Amazon Echo. Aici ne concentrăm pe controlul Raspberry Pi GPIO cu Alexa, deci nu explicăm din nou întregul proces, așa că citiți articolul precedent și pregătiți-vă difuzorul cu serviciile de voce Alexa instalate pe Raspberry pi.
Pentru a testa Alexa, treziți-o spunându-i numele! Verificați videoclipul demonstrativ dat la sfârșitul tutorialului.
O puteți întreba despre temperatura orașului dvs. pentru a verifica dacă funcționează sau nu.
Partea 3: Configurarea PubNub și IFTTT pentru Alexa Pi Home Automation :
Pentru controlul Raspberry Pi GPIO folosind acest Alexa Pi, avem nevoie de ajutorul PubNub python SDK și IFTTT. Vom da comenzi către IFTTT prin Alexa, iar PubNub dă semnal RPi pentru a porni / opri LED-ul. Deci, mai întâi vom instala PubNub pe Raspberry Pi.
Partea 3-1: Instalarea PubNub Python SDK:
PubNub oferă un API de mesagerie pentru a publica / abona orice mesaj din rețeaua lor globală. Aici folosim IFTTT și Alexa pentru a publica mesajul pe PubNub, pentru a face Raspberry Pi GPIO scăzut / înalt. Acest mesaj este primit de Raspberry Pi, iar Pi va porni sau opri LED-ul corespunzător. Urmați pașii de mai jos pentru a configura PubNub pe Raspberry Pi:
Pasul 1: Deschideți terminalul de pe RPi și executați următoarea comandă pentru a instala SDK:
sudo pip instala pubnub == 3.9.0
Instalați doar versiunea 3.9.0, cealaltă versiune nu va funcționa cu scriptul python pe care îl vom rula în ultima.
Pasul 2: Acum, accesați PubNub și conectați-vă cu acreditările dvs.
Etapa 3:. Obțineți cheile de publicare și abonare pe care le vom folosi mai târziu.
Partea 3-2: Configurarea IFTTT pentru serviciul Amazon Alexa:
IFTTT este un serviciu web gratuit care permite utilizatorilor să creeze lanțuri de declarații condiționale simple, numite „rețete”, care sunt declanșate pe baza modificărilor aduse altor servicii web, cum ar fi Gmail, Facebook, Instagram și. IFTTT este o abreviere a termenului „If This Then That”.
Pentru acest proiect, IFTTT este utilizat pentru a face Raspberry Pi GPIO LOW / HIGH pe baza comenzii vocale primite de serviciul Alexa care rulează pe RPi.
Urmați acești pași pentru a crea un applet:
Pasul 1: - Conectați - vă la IFTTT cu acreditările dvs. sau Înscrieți-vă dacă nu aveți un cont pe acesta.
Pasul 2: - Pe Appletele mele, faceți clic pe Applet nou
Pasul 3: - Faceți clic pe + acest lucru
Pasul 4: - Căutați Amazon Alexa și faceți clic pe acesta, conectați-vă cu detaliile contului de dezvoltator Amazon.
Pasul 5: - Alegeți declanșatorul, Rostiți o frază specifică
Pasul 6: - Furnizați „ aprindeți lumina” ca expresie, faceți clic pe Creați declanșatorul.
Pasul 7: - Faceți clic pe + că
Pasul 8: - Căutați Webhooks, faceți clic pe acesta și selectați Efectuați o cerere web
Pasul 9: - Webhooks oferă cererea REST WEB, utilizați cheile de publicare și abonare obținute de la PubNub și modificați următoarea adresă URL.
http://pubsub.pubnub.com//publish/pub_key/sub_key/0/alexaTrigger/0/{"requester":"Alexa","trigger":"light","status":1}
Pasul 10: - Lipiți adresa URL modificată în caseta de text URL.
Pasul 11: - Setați metoda ca GET, Conținut ca aplicație / json și faceți clic pe salvare.
Pasul 12: - Urmați aceiași pași pentru a crea declanșatorul pentru „ opriți lumina ” și modificați adresa URL la următorul.
pubsub.pubnub.com//publish/pub_key/sub_key/0/alexaTrigger/0/{"requester":"Alexa","trigger":"light","status":0
Pasul 13: - Acum suntem gata cu toate componentele web pentru demo.
Partea 4: Conexiuni hardware și schemă de circuit:
Pentru acest proiect, avem nevoie de un LED simplu pentru testare. Mai jos este schema de circuit și conexiunile hardware la controlul Raspberry Pi GPIO cu Amazon Alexa.
Vom folosi GPIO18 în scriptul nostru Python, astfel încât să conectați releu LED-ul dvs. 18. Puteți schimba acest lucru în scriptul Python.
Partea 5: Cod Python pentru controlul LED-ului:
Găsiți scriptul Python complet la sfârșitul acestui tutorial.
Trebuie să editați cheia Pub și Sub cu cheile pubnub din codul python.
# Inițializați cheile Pubnub pub_key = "***************************" sub_key = "*********** ************* "
Acum rulează Scriptul
python alexaRpi.py
Acum suntem pregătiți pentru demo, asigurați-vă că rulați toate cele trei servicii din partea 1 (cele trei terminale) înainte de a continua.
Pentru a da orice comandă, trebuie să treziți serviciul Alexa apelând „Alexa” de fiecare dată când doriți să trimiteți o comandă. Veți auzi un sunet sonor. După ce auziți un semnal sonor, spuneți „ Alexa Trigger Porniți lumina. ”Puteți vedea lumina aprinsă într-un moment. Și apoi dacă spuneți „ Alexa Trigger Opriți lumina ”, lumina ar trebui să se stingă.
Asta e…. Puteți adăuga în continuare un releu pentru a controla aparatul AC, chiar și puteți controla multe aparate utilizând mai multe relee și mai mulți pini GPIO ai Raspberry pi.
Verificați codul complet și videoclipul demonstrativ de mai jos. De asemenea, verificați toate proiectele noastre de automatizare la domiciliu aici.