- Material requisit:
- Part 1: Configuració del Raspberry Pi amb SSH i VNC
- Part 2: configureu el vostre compte de desenvolupador d'Amazon i configureu els serveis d'Alexa Voice a Raspberry Pi:
- Part 3: Configuració de PubNub i IFTTT per a la domòtica Alexa Pi :
- Part 3-2: Configuració d'IFTTT per al servei d'Amazon Alexa:
- Part 4: Connexions de maquinari i diagrama de circuits:
- Part 5: Codi Python per controlar el LED:
Alguna vegada has pensat en un altaveu que es pugui controlar amb la teva veu !!! Què passa si podem controlar els nostres electrodomèstics d’aquesta manera i fer-los més intel·ligents? Els assistents de veu cada vegada són més populars a mesura que ens dirigim cap a una era de sistemes basats en la intel·ligència artificial i l’ IoT. Heu sentit a parlar de l' Assistent de Google, Apple Siri i Amazon Alexa . Tots ells són sistemes d’intel·ligència artificial basats en la veu, el que fa que siguin diferents entre ells són els seus ecosistemes, i és on Amazon Alexa destaca més. Google, Apple i Amazon, totes aquestes empreses ja van llançar els seus altaveus intel·ligents, però Amazon va ser el primer a introduir altaveus intel·ligents. Amazon eco, Echo Dot Spot, etc. són els altaveus intel·ligents disponibles al mercat.
Amazon proporciona l'API per utilitzar el seu popular servei de veu, Alexa. És de codi obert i està disponible a Github. A més, podeu instal·lar o integrar Alexa en dispositius personalitzats com Raspberry Pi i obtenir la funcionalitat completa d'Amazon Echo en aquest dispositiu.
Mitjançant el servei de veu Alexa, podem reproduir música, obtenir informació sobre el temps, reservar entrades i molts més. Tot el que heu de fer és "preguntar". En aquest tutorial, veurem com podem controlar Raspberry Pi GPIO mitjançant els serveis d' Alexa Voice per encendre un LED.
Material requisit:
Requisits de maquinari:
- Raspberry Pi 3 o Raspberry Pi 2 Model B i targeta SD (8 GB o més)
- Altaveu extern amb cable AUX de 3,5 mm
- Qualsevol càmera web o micròfon USB 2.0
- Mòdul de relés
- LED
Nota: la càmera web té un micròfon incorporat, per tant, l’utilitzarem en lloc del micròfon USB 2.0.

Aplicacions de programari i requisits web:
- Registreu un compte a Alexa Voice Services
- Registra un compte a PubNub
- Registre d'un compte a IFTTT
També suposem que el vostre Raspberry pi ja està configurat amb un sistema operatiu Raspbian i està connectat a Internet. Amb aquests al seu lloc, continuem amb el tutorial. Si no coneixeu Raspberry Pi, primer heu de començar a utilitzar Raspberry pi.
Tot el tutorial es divideix principalment en 5 parts, que són les següents:
- Si no teniu monitor, hem de configurar el Raspberry Pi amb SSH i VNC, també comproveu la connectivitat del micròfon USB.
- Configureu el vostre desenvolupador d'Amazon i instal·leu Alexa a Raspberry Pi
- Configuració de PubNub i IFTTT per a la domòtica Alexa
- Connexió de maquinari
- Codi Python per al control GPIO d'Alexa Pi
Si simplement voleu controlar un LED amb la vostra veu, consulteu també el nostre projecte de LED controlat per veu basat en Bluetooth.
Part 1: Configuració del Raspberry Pi amb SSH i VNC
En primer lloc, connectarem Raspberry Pi amb SSH i VNC. A continuació, es mostren els enllaços següents per obtenir tutorials al lloc web oficial de Raspberry Pi.
Per a SSH: enllaç SSh
Per a VNC: enllaç VNC
Si teniu Monitor, podeu deixar aquest pas i anar directament al pas 2, que és Configurar el servei de veu Alexa (Avs). Abans hem de comprovar la connectivitat del micròfon.
Comprovació del micròfon de la càmera web amb Raspberry Pi:
1. Obriu el terminal Raspberry Pi i escriviu l' ordre arecord -l. Es mostraran els dispositius de maquinari connectats a Raspberry Pi com es mostra a continuació:

La targeta 1 és el micròfon de la vostra càmera web que farem servir. Si no es mostra, és possible que la càmera web sigui defectuosa.
2. Ara, comproveu si el micro funciona, executant l'ordre de gravació d'àudio com:
arecord /home/pi/Desktop/test.wav -D sysdefault: CARD = 1
3. Per reproduir l'àudio gravat, escriviu aquesta ordre:
omxplayer -p -o local /home/pi/Desktop/test.wav
Si heu connectat Raspberry Pi amb monitor mitjançant un cable HDMI, la sortida d'àudio per defecte es fa a través de l'altaveu del monitor (si hi ha un altaveu incorporat). Per tant, per canviar-lo a 3,5 mm heu d’escriure l’ordre següent:
sudo raspi-config i aneu a l'opció Avanç.
Seleccioneu Àudio de la llista -> seleccioneu Força 3,5 mm -> seleccioneu D'acord i reinicieu Raspberry Pi.
Ara, hauríeu d’escoltar el so de la presa de 3,5 mm.
NOTA: Si voleu augmentar o disminuir la intensitat de veu d'entrada del micròfon, escriviu també el mixer al terminal. Seleccioneu la targeta de so del terminal prement F6.
Premeu F4 per canviar el guany Mic dB i configurar-lo com vulgueu.

Si teniu un micròfon USB 2.0, els passos seguits són els mateixos per comprovar el micròfon. Aquí hem utilitzat la càmera web per al micròfon USB.
Part 2: configureu el vostre compte de desenvolupador d'Amazon i configureu els serveis d'Alexa Voice a Raspberry Pi:
Ja ho hem explicat amb detall al nostre anterior tutorial on hem construït un altaveu intel·ligent Amazon Echo. Aquí ens centrem en controlar Raspberry Pi GPIO amb Alexa, de manera que no expliquem tot el procés de nou, així que llegiu l'article anterior i prepareu el vostre altaveu amb els serveis de veu Alexa instal·lats al vostre Raspberry pi.
Per provar Alexa, només cal despertar-la dient el seu nom. Consulteu el vídeo de demostració que es dóna al final del tutorial.

Podeu preguntar-li sobre la temperatura de la vostra ciutat per comprovar que funciona o no.
Part 3: Configuració de PubNub i IFTTT per a la domòtica Alexa Pi :
Per controlar Raspberry Pi GPIO mitjançant aquest Alexa Pi, necessitem l’ajuda de PubNub python SDK i IFTTT. Donarem ordres a IFTTT mitjançant Alexa i PubNub dóna senyal a RPi per encendre / apagar el LED. Per tant, primer instal·larem PubNub a Raspberry Pi.
Part 3-1: Instal·lació de PubNub Python SDK:
PubNub proporciona una API de missatgeria per publicar / subscriure qualsevol missatge a la seva xarxa global. Aquí fem servir IFTTT i Alexa per publicar el missatge a PubNub, per fer que Raspberry Pi GPIO sigui baix / alt. Aquest missatge el rep Raspberry Pi i Pi activarà o apagarà el LED en conseqüència. Seguiu els passos següents per configurar PubNub a Raspberry Pi:
Pas 1: obriu el terminal al vostre RPi i executeu l'ordre següent per instal·lar l'SDK:
sudo pip install pubnub == 3.9.0
Instal·leu només la versió 3.9.0, l’altra versió no funcionarà amb l’escriptura python que executarem a la darrera.

Pas 2: ara aneu a PubNub i inicieu la sessió amb les vostres credencials.

Pas 3:. Obteniu les claus de publicació i subscripció que farem servir més endavant.

Part 3-2: Configuració d'IFTTT per al servei d'Amazon Alexa:
IFTTT és un servei gratuït basat en web que permet als usuaris crear cadenes d’instruccions condicionals simples, anomenades “receptes”, que s’activen en funció de canvis en altres serveis web com Gmail, Facebook, Instagram i. IFTTT és una abreviatura de "If This Then That".
Per a aquest projecte, IFTTT s'utilitza per fer que el Raspberry Pi GPIO BAIX / ALTA es basi en l'ordre de veu rebut pel servei Alexa que s'executa a RPi.
Seguiu aquests passos per crear un applet:
Pas 1: - Inicieu sessió a IFTTT amb les vostres credencials o registreu- vos si no teniu cap compte.

Pas 2: - A Els meus applets, feu clic a Applet nou

Pas 3: - Feu clic a + això
Pas 4: cerqueu Amazon Alexa i feu-hi clic, inicieu la sessió amb els detalls del compte de desenvolupador d'Amazon.

Pas 5: - Trieu el disparador, digueu una frase específica

Pas 6: - Proporcioneu " enceneu el llum" com a frase i feu clic a Crea activador.

Pas 7: - Feu clic a + això

Pas 8: - Cerqueu Webhooks, feu- hi clic i seleccioneu Fes una sol·licitud web

Pas 9: - Webhooks proporciona la sol·licitud REST WEB, utilitzeu les claus de publicació i subscripció obtingudes del PubNub i modifiqueu l'URL següent.
http://pubsub.pubnub.com//publish/pub_key/sub_key/0/alexaTrigger/0/{"requester":"Alexa","trigger":"light","status":1}
Pas 10: - Enganxeu l'URL modificat al quadre de text URL.

Pas 11: - Definiu el mètode com a GET, el contingut com a aplicació / json i feu clic a Desa.

Pas 12: seguiu els mateixos passos per crear el disparador per a " apagar la llum " i modificar l'URL al següent.
pubsub.pubnub.com//publish/pub_key/sub_key/0/alexaTrigger/0/{"requester":"Alexa","trigger":"light","status":0

Pas 13: - Ara estem preparats amb tots els components web per a la demostració.
Part 4: Connexions de maquinari i diagrama de circuits:
Per a aquest projecte, necessitem un LED senzill per fer proves. A continuació es mostra el diagrama de circuits i les connexions de maquinari per controlar Raspberry Pi GPIO amb Amazon Alexa.
Utilitzarem GPIO18 al nostre script Python, de manera que, connecteu el relé del vostre LED 18. Podeu canviar-ho a Python Script.


Part 5: Codi Python per controlar el LED:
Cerqueu l’ escriptura Python completa al final d’aquest tutorial.
Heu d’ editar la clau Pub i Sub amb les claus pubnub al codi python.
# Inicialitzeu les claus de Pubnub pub_key = "***************************" sub_key = "*********** ************* "
Ara executeu l'script
python alexaRpi.py
Ara ja estem preparats per a la demostració. Assegureu-vos que esteu executant els tres serveis de la part 1 (els tres terminals) abans de continuar.

Per donar qualsevol ordre, cal que activeu el servei Alexa trucant a "Alexa" cada vegada que vulgueu enviar una ordre. Sentireu un so sonor. Un cop sentiu el pit, digueu " Alexa Trigger Enceneu la llum. ”Podeu veure que la llum s’encén en un moment. I després, si dieu " Alexa Trigger Apagueu la llum ", la llum s'hauria d'apagar.
Això és…. Podeu afegir un relé per controlar l’aparell de CA, fins i tot podeu controlar molts aparells mitjançant més relés i més pins GPIO de Raspberry pi.
Consulteu el codi complet i el vídeo de demostració a continuació. Consulteu també tots els nostres projectes domòtics aquí.
