- Uitstekend materiaal:
- Deel 1: De Raspberry Pi instellen met SSH en VNC
- Deel 2: Stel uw Amazon-ontwikkelaarsaccount in en configureer Alexa Voice Services op Raspberry Pi:
- Deel 3: PubNub en IFTTT instellen voor Alexa Pi Home Automation :
- Deel 3-2: IFTTT instellen voor Amazon Alexa Service:
- Deel 4: Hardware-aansluitingen en schakelschema:
- Deel 5: Python-code voor het besturen van de LED:
Heb je ooit nagedacht over een speaker die je met je stem kunt bedienen !!! Wat als we onze huishoudelijke apparaten op deze manier kunnen bedienen en deze apparaten slimmer kunnen maken? Spraakassistenten worden steeds populairder nu we afstevenen op een tijdperk van op AI en IoT gebaseerde systemen. Je hebt gehoord van Google Assistant, Apple Siri en Amazon Alexa . Dit zijn allemaal op spraak gebaseerde AI-systemen, wat deze van elkaar onderscheidt, zijn hun ecosystemen, en dit is waar Amazon Alexa het meest opvalt. Google, Apple en Amazon, al deze bedrijven hebben hun slimme luidsprekers al gelanceerd, maar Amazon was de eerste die slimme luidsprekers introduceerde. Amazon echo, Echo Dot Spot, enz. Zijn de slimme luidsprekers die op de markt verkrijgbaar zijn.
Amazon biedt de API voor het gebruik van zijn veel populaire spraakservice, Alexa. Het is open source en beschikbaar op Github. Verder kun je Alexa installeren of integreren op aangepaste apparaten zoals Raspberry Pi en de volledige Amazon Echo-functionaliteit op dat apparaat krijgen.
Met de spraakservice van Alexa kunnen we muziek afspelen, informatie over het weer krijgen, tickets boeken en nog veel meer. Het enige wat u hoeft te doen is 'vragen'. In deze tutorial zullen we zien hoe we Raspberry Pi GPIO kunnen besturen met Alexa Voice-services om een LED te laten gloeien.
Uitstekend materiaal:
Hardware vereisten:
- Raspberry Pi 3 of Raspberry Pi 2 Model B en SD-kaart (8 GB of meer)
- Externe luidspreker met 3,5 mm AUX-kabel
- Elke webcam of USB 2.0-microfoon
- Relaismodule
- LED
Opmerking: de webcam heeft een ingebouwde microfoon, dus we zullen deze gebruiken in plaats van een USB 2.0-microfoon.
Software-apps en webvereisten:
- Registreer een account bij Alexa Voice Services
- Registreer een account bij PubNub
- Registreer een account bij IFTTT
We gaan er ook van uit dat uw Raspberry pi al is ingesteld met een Raspbian-besturingssysteem en is verbonden met internet. Nu deze op hun plaats zijn, gaan we verder met de zelfstudie. Als Raspberry Pi nieuw voor je is, ga dan eerst door Aan de slag met Raspberry Pi.
De hele tutorial is voornamelijk verdeeld in 5 delen, die als volgt zijn:
- Als je geen monitor hebt, moeten we de Raspberry Pi instellen met SSH en VNC, controleer ook de USB-microfoonconnectiviteit.
- Stel uw Amazon-ontwikkelaar in en installeer Alexa op Raspberry Pi
- PubNub en IFTTT instellen voor Alexa Home Automation
- Hardware verbinding
- Python-code voor Alexa Pi GPIO Control
Als je gewoon een LED met je stem wilt besturen, bekijk dan ook ons Bluetooth-gebaseerde spraakgestuurde LED-project.
Deel 1: De Raspberry Pi instellen met SSH en VNC
Eerst zullen we Raspberry Pi verbinden met SSH en VNC. Volg hiervoor tutorials op de officiële Raspberry Pi-website, links worden hieronder gegeven.
Voor SSH: SSh-link
Voor VNC: VNC-link
Als je Monitor hebt, kun je deze stap verlaten en direct doorgaan naar stap 2, namelijk het instellen van de Alexa Voice Service (Avs). Daarvoor moeten we de microfoonconnectiviteit controleren.
Webcammicrofoon controleren met Raspberry Pi:
1. Open de Raspberry Pi-terminal en typ het commando arecord -l. Hierdoor worden de hardwareapparaten weergegeven die op de Raspberry Pi zijn aangesloten, zoals hieronder weergegeven:
Kaart 1 is de microfoon van uw webcam die we gaan gebruiken. Als het niet wordt weergegeven, is uw webcam mogelijk defect.
2. Controleer nu of de microfoon werkt door het commando audio opnemen uit te voeren als:
arecord /home/pi/Desktop/test.wav -D sysdefault: CARD = 1
3. Om de opgenomen audio af te spelen, typt u deze opdracht:
omxplayer -p -o lokaal /home/pi/Desktop/test.wav
Als je Raspberry Pi met een monitor hebt verbonden met een HDMI-kabel, dan is de audio-uitvoer standaard via de luidspreker van je monitor (als er een ingebouwde luidspreker in zit). Dus om het in 3,5 mm te veranderen, moet je de volgende opdracht typen:
sudo raspi-config en ga naar de geavanceerde optie.
Selecteer Audio in de lijst -> selecteer Force 3,5 mm -> selecteer Ok en start je Raspberry Pi opnieuw op.
Nu zou u het geluid van een 3,5 mm-aansluiting moeten horen.
OPMERKING: Als u de luidheid van de ingevoerde stem voor de microfoon wilt verhogen of verlagen, type alsamixer in de terminal. Selecteer geluidskaart van de terminal door op F6 te drukken.
Druk op F4 om de Mic dB-versterking te wijzigen en stel deze in zoals u wilt.
Als u een USB 2.0-microfoon heeft, zijn de gevolgde stappen hetzelfde om de microfoon te controleren. Hier hebben we Webcam voor USB-microcphone gebruikt.
Deel 2: Stel uw Amazon-ontwikkelaarsaccount in en configureer Alexa Voice Services op Raspberry Pi:
We hebben dit al in detail uitgelegd in onze vorige tutorial waar we een Amazon Echo smart speaker hebben gebouwd. Hier richten we ons op het besturen van Raspberry Pi GPIO met Alexa, dus we leggen het hele proces niet opnieuw uit, dus lees het vorige artikel en maak je luidspreker klaar met Alexa-spraakservices die op je Raspberry pi zijn geïnstalleerd.
Om Alexa te testen, maak haar gewoon wakker door haar naam te zeggen! Bekijk de demo-video gegeven aan het einde van de tutorial.
U kunt haar vragen naar de temperatuur van uw stad om te controleren of deze werkt of niet.
Deel 3: PubNub en IFTTT instellen voor Alexa Pi Home Automation :
Voor het besturen van Raspberry Pi GPIO met deze Alexa Pi hebben we de hulp nodig van PubNub python SDK en IFTTT. We geven opdrachten aan IFTTT via Alexa, en PubNub geeft een signaal aan RPi om de LED aan / uit te zetten. We zullen dus eerst de PubNub op Raspberry Pi installeren.
Deel 3-1: PubNub Python SDK installeren:
PubNub biedt een messaging-API om berichten op hun wereldwijde netwerk te publiceren / abonneren. Hier gebruiken we IFTTT en Alexa om het bericht op PubNub te publiceren, om Raspberry Pi GPIO laag / hoog te maken. Dit bericht wordt ontvangen door Raspberry Pi en Pi zal de LED dienovereenkomstig in- of uitschakelen. Volg onderstaande stappen om PubNub op Raspberry Pi in te stellen:
Stap 1: Open terminal op uw RPi en voer de volgende opdracht uit om SDK te installeren:
sudo pip install pubnub == 3.9.0
Installeer alleen de 3.9.0- versie, de andere versie werkt niet met het python-script dat we in de laatste versie zullen uitvoeren.
Stap 2: Ga nu naar PubNub en log in met uw inloggegevens.
Stap 3:. Verkrijg de publicatie- en abonnementsleutels die we later zullen gebruiken.
Deel 3-2: IFTTT instellen voor Amazon Alexa Service:
IFTTT is een gratis webgebaseerde service waarmee gebruikers ketens van eenvoudige voorwaardelijke verklaringen kunnen maken, "recepten" genaamd, die worden geactiveerd op basis van wijzigingen in andere webservices zoals Gmail, Facebook, Instagram en. IFTTT is een afkorting van "If This Then That".
Voor dit project wordt IFTTT gebruikt om de Raspberry Pi GPIO LOW / HIGH te maken op basis van de spraakopdracht die wordt ontvangen door de Alexa-service die op RPi draait.
Volg deze stappen om een applet te maken:
Stap 1: - Log in op IFTTT met uw referenties of Aanmelden als u nog geen account op het hebben.
Stap 2: - Klik in Mijn applets op Nieuwe applet
Stap 3: - Klik op + dit
Stap 4: - Zoek in Amazon Alexa en klik erop, log in met de gegevens van je Amazon-ontwikkelaarsaccount.
Stap 5: - Kies de trigger, zeg een specifieke zin
Stap 6: - Geef " turn on the light" op als de zin, klik op Create Trigger.
Stap 7: - Klik op + dat
Stap 8: - Zoek naar Webhooks, klik erop en selecteer Make a Web Request
Stap 9: - Webhooks levert het REST WEB-verzoek, gebruik de publiceer- en abonnementsleutels die zijn verkregen van de PubNub en wijzig de volgende URL.
http://pubsub.pubnub.com//publish/pub_key/sub_key/0/alexaTrigger/0/{"requester":"Alexa","trigger":"light","status":1}
Stap 10: - Plak de gewijzigde URL in het URL-tekstvak.
Stap 11: - Stel de Methode in op GET, Content als application / json en klik op opslaan.
Stap 12: - Volg dezelfde stappen om de trigger voor " doe het licht uit " te maken en wijzig de URL naar het volgende.
pubsub.pubnub.com//publish/pub_key/sub_key/0/alexaTrigger/0/{"requester":"Alexa","trigger":"light","status":0
Stap 13: - We zijn nu klaar met alle webcomponenten voor de demo.
Deel 4: Hardware-aansluitingen en schakelschema:
Voor dit project hebben we een eenvoudige LED nodig voor testdoeleinden. Hieronder vindt u het schakelschema en de hardwareverbindingen voor het besturen van Raspberry Pi GPIO met Amazon Alexa.
We zullen GPIO18 gebruiken in ons python-script, dus sluit relay je LED 18 aan. Je kunt dit wijzigen in het python-script.
Deel 5: Python-code voor het besturen van de LED:
Vind het volledige Python-script aan het einde van deze tutorial.
U moet de Pub- en Sub-sleutel bewerken met uw pubnub-sleutels in de python-code.
# Initialize the Pubnub Keys pub_key = "***************************" sub_key = "*********** ************* "
Voer nu het script uit
python alexaRpi.py
Nu zijn we helemaal klaar voor de demo. Zorg ervoor dat u alle drie de services van deel 1 (de drie terminals) uitvoert voordat u verder gaat.
Om een commando te geven, moet je de Alexa-service wakker maken door elke keer dat je een commando wilt verzenden "Alexa" te bellen. U hoort een pieptoon. Zodra je de piep hoort, zeg je ' Alexa Trigger Turn on the Light. ”Je kunt zien dat het licht binnen een oogwenk AAN gaat. En als je dan zegt " Alexa Trigger Turn off the Light ", zou het licht UIT moeten gaan.
Dat is het…. U kunt verder een relais toevoegen om het AC-apparaat te bedienen, zelfs u kunt veel apparaten bedienen door meer relais en meer GPIO-pinnen van Raspberry pi te gebruiken.
Bekijk de volledige code en demonstratievideo hieronder. Bekijk hier ook al onze Home Automation Projecten.