ID.nl logo
Maak je eigen Google Home met een Raspberry Pi
© PXimport
Zekerheid & gemak

Maak je eigen Google Home met een Raspberry Pi

De Google Home is een draadloze slimme luidspreker die als je slimme assistent functioneert. Het apparaatje maakt gebruik van spraakherkenning om je opdrachten aan te nemen. Voorlopig is Google Home nog niet in Nederland verkrijgbaar, maar dan bouw je er toch zelf een? In dit artikel creëren we je eigen Google Home met een Raspberry Pi 3.

01 Benodigdheden

Het hart van je eigen slimme luidspreker is de Raspberry Pi 3. Daarop sluit je een luidspreker en een microfoon aan. De luidspreker prikken we in de analoge uitgang van de Pi. De geluidskwaliteit daarvan is niet geweldig, maar voor spraaksynthese is het voldoende. Een analoge ingang heeft de Pi niet, dus we sluiten een usb-microfoon aan. Nu hoef je alleen nog een voedingsadapter aan te sluiten, en je hebt een micro-sd-kaartje nodig om het besturingssysteem op te zetten. We maken gebruik van wifi, dus een ethernetkabel is niet nodig.

02 Raspbian installeren

Download Raspbian Jessie van de website van de Raspberry Pi. Pak het zip-bestand uit. Het img-bestand dat erin zit, moeten we nu naar een micro-sd-kaartje schrijven. Formatteer eerst het kaartje met het programma SD Card Formatter. Start daarna het programma Win32 Disk Imager. Kies de schijfletter van je micro-sd-kaart, selecteer het img-bestand van Raspbian en klik op Write om het besturingssysteem naar je kaart te schrijven. Let bij beide programma’s op dat je de juiste schijfletter kiest, want de inhoud van het kaartje wordt volledig overschreven!

©PXimport

03 Netwerk instellen

Steek het micro-sd-kaartje in je pc, waarna Windows de boot-partitie in de Verkenner opent. Klik op het menu Beeld en vink bij Huidige weergave de optie Bestandsnaamextensies aan. Rechtsklik daarna op een lege plaats in de partitie en klik op Nieuw / Tekstbestand en geef het bestand de naam ssh. Verwijder de extensie .txt. Maak op dezelfde manier een bestand wpa_supplicant.conf aan in de boot-partitie. Verzeker je ervan dat je bestand de extensie .conf heeft, en niet .txt. Open het bestand in Kladblok en voeg de configuratie voor je wifi-netwerk toe met regels network={, ssid="JouwESSID", psk="JouwWifiWachtwoord" en }. Sla het bestand op en haal de micro-sd-kaart uit de pc.

04 Basisconfiguratie

Zoek het ip-adres van je Pi op in de dhcp-leases van je router en log daarop in met het programma PuTTY. Voer als gebruikersnaam pi in en als wachtwoord raspberry. Update allereerst de pakketlijsten met de opdracht sudo apt update en upgrade daarna alle geïnstalleerde programma’s met sudo apt upgrade. Voer daarna het configuratieprogramma uit met sudo raspi-config. Wijzig je wachtwoord, zodat je Pi niet ongewild onderdeel gaat uitmaken van een botnet. En zet je tijdzone correct (in Localisation Options). Sluit het configuratieprogramma daarna af (Finish).

©PXimport

05 Google Cloud Platform

We willen onze Pi met de Google Assistant API laten werken. Open daarvoor eerst de Resource Manager van het Google Cloud Platform (log in met je Google-account) en klik op Project maken. Geef het project een naam (bijvoorbeeld Google Home Pi), bevestig dat je de servicevoorwaarden hebt gelezen en klik op Maken. Wanneer het project is aangemaakt, krijg je rechtsboven een melding. Klik op het icoontje en dan op de projectnaam, waarna je het dashboard van je project te zien krijgt.

Je eigen Amazon Echo

Ook de ontwikkelaars van Alexa, de voice-service in de Amazon Echo, hebben code online gezet waarmee je je eigen Echo bouwt. De code komt met stap-voor-stap-instructies om Alexa op je Raspberry Pi te installeren. Je installeert eerst Raspbian en daarna de samples voor de Alexa Voice Service, die gebruikmaken van Node.js, de Java Development Kit 8 en Maven. Ook voor dit project heb je een luidspreker en microfoon nodig.

06 Google Assistant API inschakelen

Klik nu links in het projectdashboard op API-beheer en daarna bovenaan op API inschakelen. Typ in het zoekveld assistant in en klik daarna op Google Assistant API, dat in de zoekresultaten verschijnt. Klik bovenaan op Inschakelen. Je hebt nog inloggegevens nodig om deze API te gebruiken. Klik daarom links op Inloggegevens en dan op het tabblad OAuth-toestemmingsscherm. Vul daar bij productnaam een naam in zoals Google Home Pi, laat de rest van de velden open en klik op Opslaan.

©PXimport

07 OAuth Client ID aanmaken

Klik nu in het tabblad Inloggegevens van het API-beheer op Inloggegevens maken en kies Client-ID OAuth. Kies als applicatietype Overige, geef het een naam en klik op Maken. Je krijgt nu een client-ID en clientgeheim te zien. Klik op OK en daarna op het downloadicoontje rechts van je client-ID. Download het programma pscp van dezelfde website als PuTTY (zie stap 4) en open daarna een opdrachtprompt. Voer de opdracht pscp padnaarjsonbestand pi@IPADRES: in met het juiste pad en ip-adres van je Pi om het bestand naar je Pi te kopiëren. Vergeet de : na het ip-adres niet. Voer het wachtwoord van je Pi in.

08 Audio testen

Nu de clouddiensten van Google die we in ons project gebruiken zijn geconfigureerd, is het tijd om aan de Pi te gaan knutselen. Ga terug naar het PuTTY-venster met de opdrachtprompt van je Pi of log opnieuw op je Pi in. Voer de opdracht speaker-test -t wav uit om een testgeluid af te spelen en druk op Ctrl+C om het afspelen te stoppen. Als je niets hoort, controleer dan of je luidspreker goed is aangesloten. Voer daarna de opdracht arecord --format=S16_LE --duration=5 --rate=16k --file-type=raw out.raw uit en spreek iets in de microfoon in. Controleer of het is opgenomen met aplay --format=S16_LE --rate=16k out.raw.

©PXimport

09 Audio configureren

Als er in de vorige stap iets is misgelopen, dan herkent Raspbian waarschijnlijk standaard (een van) je audioapparaten niet. Bekijk met arecord -l het kaart- en apparaatnummer van je microfoon. Doe hetzelfde voor je luidspreker met aplay -l. Maak daarna een nieuw configuratiebestand voor je audio aan met nano ~/.asoundrc met als inhoud de tekst in de afbeelding bij deze stap en vul de juiste kaart- en apparaatnummers in. Als je luidspreker bijvoorbeeld kaartnummer 1 en apparaatnummer 0 heeft, vul je in de sectie pcm.mic de regel pcm "hw:1,0" in. Sla het bestand op met Ctrl+O en sluit nano af met Ctrl+X. Test je audio daarna opnieuw.

10 Python-omgeving installeren

De code van Google is in de programmeertaal Python geschreven. Daarom installeren we Python 3 en een virtuele Python-omgeving om de code te isoleren van de rest van Raspbian met sudo apt install python3-dev python3-venv. Maak een virtuele omgeving aan met python3 -m venv env en voer env/bin/python -m pip install --upgrade pip setuptools uit en tot slot source env/bin/activate om de virtuele omgeving te activeren.

11 Google Assistant SDK installeren

Installeer de Google Assistant SDK en autorisatietool in de Python-omgeving met python -m pip install --upgrade google-assistant-library google-auth-oauthlib[tool]. Open nu de pagina Activiteitsopties en controleer of Web- en app-activiteit, Apparaatgegevens en Spraak- en audioactiviteit zijn ingeschakeld. Sta daarna de Google Assistant SDK toe om voor je Google-account Assistant-aanvragen te doen. Dat gebeurt met de opdracht google-oauthlib-tool --client-secrets padnaarjsonbestand --scope https://www.googleapis.com/auth/assistant-sdk-prototype --save --headless, waarbij je de naam van het json-bestand invult dat je eerder naar je Pi hebt gekopieerd. Bezoek de url die je te zien krijgt, sta daar de toegang toe en voer de autorisatiecode die je te zien krijgt in de opdrachtregel in.

©PXimport

12 Demo uittesten

Start de demo van de Google Assistant SDK met google-assistant-demo en stel een vraag. Dat doe je in het Engels, door “Ok Google” of “Hey Google” te zeggen en daarna je vraag te stellen. Stel bijvoorbeeld de vraag “What time is it?”, “How’s the weather?” of “Show me a Thai restaurant”. Google kent je locatie en geeft dan ook heel accuraat antwoord op die vragen. Ondertussen krijg je in het terminalvenster van je Pi een transcriptie te zien van wat het programma van je stem verstaat. Je sluit de demo af met Ctrl+C.

13 IFTTT integreren

Standaard kan Google Assistant op je Pi al heel wat, maar het is ook mogelijk om zelf opdrachten toe te voegen. Bekijk daarvoor de pagina Next Steps in de documentatie van de API. Een eenvoudige manier om je Google-assistent uit te breiden is met IFTTT. Zorg dat je op IFTTT inlogt met hetzelfde Google-account als je voor Google Assistant API gebruikt. Bezoek dan het Google Assistant-kanaal op IFTTT en klik op Connect. Sta IFTTT toegang tot Google Assistant toe.

14 IFTTT-applets inschakelen

Bekijk eens de applets (vroeger ‘recepten’ genoemd) in het Google Assistant-kanaal van IFTTT en probeer er een paar uit. Zo is er een applet om het volgende uur in je Google Agenda te blokkeren, om je Nest-thermostaat in te stellen, om de kleur van je Philips Hue-verlichting te veranderen, om taken aan een lijst toe te voegen die je assistent op het einde van de dag naar je e-mailt en nog vele andere. Op deze manier verbind je je eigen Google-assistent met alle mogelijke internetdiensten en slimme apparatuur.

©PXimport

15 Google Assistant automatisch starten

Open het opstartbestand van Raspbian voor loginsessies met sudo nano /etc/profile. Ga naar het einde van het bestand. Voeg daar de regel /home/pi/google-assistant.sh toe. Sla het bestand op met Ctrl+O en sluit nano af met Ctrl+X. Creëer daarna een nieuw bestand met nano /home/pi/google-assistant.sh met daarin de regels #!/bin/bash, source /home/pi/env/bin/activate en sudo -u pi /home/pi/env/bin/google-assistant-demo &. Sla weer op met Ctrl+O en sluit af met Ctrl+X. Maak het uitvoerbaar met chmod +x /home/pi/google-assistant.sh/. Herstart je Pi met sudo reboot en controleer na een tijdje of de Google Assistant draait door een vraag te stellen.

16 Actions on Google

Wil je nog ingewikkeldere zaken doen met je Google-assistent, bekijk dan Actions on Google. Met deze API breid je Google Assistant uit met je eigen apps. Met deze apps bied je een ‘conversationele interface’, waarbij je kunt laten reageren op je vragen met antwoorden of willekeurige acties. Een soort ‘IFTTT on steroids’ dus, voor pro’s.

Een spraakassistent zonder pottenkijkers

Google en Amazon proberen van hun spraakgestuurde apparaten Home en Echo een centraal punt te maken waarmee je alle apparaten in je huis aanstuurt en al je online zaken regelt. Maar deze bedrijven hebben het niet zo op privacy … Voel je je er goed bij dat zij hun oren altijd open hebben midden in je huis? Niet? Gelukkig is er een opensource alternatief, waarmee je een onafhankelijke spraakassistent opzet: Jasper. Hier vind je hoe je met Jasper een spraakassistent maakt die je privacy respecteert.

©PXimport

▼ Volgende artikel
Lekkende vaatwasser? Zo los je het op!
© Ilja
Huis

Lekkende vaatwasser? Zo los je het op!

Een lekkende vaatwasser is geen pretje. Het is niet goed voor het apparaat zelf, en ook niet voor je keukenvloer. Voor je meteen je telefoon pakt en een monteur laat komen, zijn er een paar dingen die je kunt doen om te kijken of je het zelf op kunt lossen. Dit zijn ze.

In dit artikel lees je: • Hoe het komt dat je vaatwasser overloopt • Welke onderdelen dat kunnen veroorzaken • Hoe je het zelf oplost

Lees ook: 7 dingen die je nooit in de vaatwasser mag stoppen

⚠️ Let op: haal altijd eerst de stekker uit het stopcontact voor je met gereedschap aan de slag gaat. 

Deurrubber

Een van de meest voorkomende redenen voor een lekkende vaatwasser is verouderd deurrubber. Dat rubber zorgt ervoor dat de deur goed sluit en dat er geen water naar buiten kan komen, maar bij oude rubbers kan dat minder goed werken. 

De deurrubbers vervangen kun je prima zelf. Meestal staat er in de handleiding van je vaatwasser hoe je dat kunt doen, maar waarschijnlijk moet je de binnenkant van de deur losmaken voor je erbij kunt. De rubbers zelf kun je bestellen op de website van de fabrikant van je vaatwasser. 

Afvoerpomp

Een andere veel voorkomende reden is een verstopte afvoerpomp. Als er etensresten of ander vuil in de afvoer komen, kan er een laag water in je vaatwasser komen te staan, en dat kan onderaan de deur gaan lekken. 

Met een beetje mazzel zit er alleen vuil vast, dat je met je vingers of een schroevendraaier los kunt maken, net als bij het doucheputje of de gootsteen. Dikke kans dat hij daarna gewoon weer doorloopt. Als dat niet het geval is, moet je waarschijnlijk de afvoerpomp vervangen. Dat is een klusje dat je in principe zelf kunt uitvoeren, maar met twee linkerhanden is het waarschijnlijk beter om een monteur te bellen. 

©Nadezhda

Sproeiarmen

Een andere mogelijkheid is een defecte sproeiarm. Die arm sproeit het water door je vaatwasser tijdens het wasprogramma. Het kan zijn dat de arm kapot is en daardoor water de verkeerde kant op spuit, of het kan zijn dat hij deels is losgekomen. Als je pech hebt, kan het water dan door de deur naar buiten komen, zodat het lijkt alsof je een lekkende vaatwasser hebt, terwijl dat in werkelijkheid wel meevalt. 

De sproeiarm kun je prima zelf checken. Kijk even of de plastic behuizing nog intact is, en of er geen rare buigingen in zitten. Check ook of de arm nog goed op zijn plek zit en of hij nog op een normale manier in de rondte kunt draaien. 

Als je sproeiarm kapot is, kun je gewoon een nieuwe aanschaffen. Hoe je de arm losmaakt hangt van je vaatwasser af, maar dat vind je wel in de handleiding, of je kunt het gewoon zien als je de rekken uit de machine haalt. Dat scheelt weer een belletje naar de monteur. 

Vaatwasseronderdelen nodig?

Bestel ze bij bol.

Leidingen

In een wat minder prettig scenario kan het probleem ook in de leidingen zitten. Die kunnen verkeerd zijn geïnstalleerd, of ze kunnen verstopt zitten. Hetzelfde geldt voor de sifon, de zwanenhals die ervoor zorgt dat het water niet terug de vaatwasser in kan lopen en nare luchtjes tegenhoudt. 

Tenzij je zelf een loodgieter bent, is het lastig om dat met eigen handen op te lossen. Als het probleem in de leidingen zit, is het dus wel een belletje waard. 

Conclusie

Een lekkende vaatwasser hoeft helemaal niet te betekenen dat het apparaat kapot is. Het kan prima zijn dat de afvoer verstopt zit, of dat er iets mis is met een simpel te vervangen onderdeel, zoals de sproeiarm. Hoe ouder de vaatwasser, des te groter de kans dat het deurrubber niet meer precies werkt zoals het zou moeten doen. 

Check dus eerst even of je het zelf kunt oplossen voor je meteen de telefoon grijpt. Als de tips hierboven niet werken, en je hebt nog steeds last van een lekkende deur of een laag water na het wasprogramma, dan is een monteur misschien geen overbodige luxe. 

▼ Volgende artikel
Zo houd je grip op je Android-notificaties
© Wesley Akkerman
Huis

Zo houd je grip op je Android-notificaties

Notificaties op je Android-smartphone kunnen ontzettend handig zijn. Als iemand een bericht stuurt, weet je dat meteen. Is er iets met de robotstofzuiger? Dan loop je nooit achter de feiten aan. To-do-lijstjes bijhouden, geen probleem. In dit artikel lees je er alles over!

Als je vindt dat je Android-apparaat je te veel meldingen stuurt, kan het handig zijn om naar een van de onderstaande opties te kijken.

  • Niet-storen-modus gebruiken
  • Notificaties snoozen
  • Notificaties op stil zetten of uitschakelen
  • Categorieën beheren

Maar eerlijk is eerlijk: al die notificaties kunnen soms meer een vloek zijn dan een zege. Helemaal nu we steeds meer apparaten slim maken en die ons ook allerlei dingen willen vertellen. En dan hebben we het nog niet eens over alle andere apps gehad, zoals voor mails, muziekbediening, brekend nieuws, et cetera. Het kan dus handig zijn om meer grip te krijgen op al die meldingen door je Android-toestel goed in te stellen. In dit artikel leggen we uit hoe je dat voor elkaar krijgt.

Niet storen aub

Een van de meest effectieve methoden om het aantal notificaties terug te dringen, is de niet-storen-modus. Dan word je, zoals de naam al doet vermoeden, voor een bepaalde tijd niet gestoord. Je ontvangt dan geen enkele melding of telefoongesprek (al kun je binnen de instellingen aangeven dat bepaalde mensen je wél mogen bellen). Na het opheffen van deze modus staan alle meldingen weer netjes in beeld – maar dan ben je in elk geval niet gestoord.

Meldingen snoozen (voor later)

Dit gebeurde onlangs nog op de redactie: we kregen een melding dat de batterijen van de Nuki Opener bijna leeg zijn. Maar dat krijgen we dan zondagavond te horen. Dan kunnen we er niets mee, want we hebben geen vervangers in huis. Dan is het goed om te weten dat je meldingen kunt snoozen en later kunt laten terugkeren. Die optie staat in de melding zelf. Is dat niet het geval, dan stel je dat in via Instellingen > Meldingen > Snoozen van meldingen toestaan.

Notificaties op stil zetten of uitschakelen

Het is sowieso altijd goed om even kritisch te kijken naar de apps die überhaupt meldingen mogen versturen. Winkel-apps of apps met digitale aankopen hebben namelijk de neiging om je lastig te vallen met aanbiedingen. Bovendien proberen games je altijd terug te halen met promoties of speciale evenementen. Erg attent natuurlijk, maar daar hebben we niet altijd tijd voor. Binnen de app-instellingen kun je mogelijk de meldingen aanpassen of uitschakelen.

Als dat niet het geval is, kunnen we dat binnen een ander menu regelen. Houd de app in kwestie kort ingedrukt en ga naar App-info (of het rondje met de i erin). Daar vind je het onderdeel Meldingen. Tik daarop en zet bijvoorbeeld alle meldingen in één keer uit. Maar je kunt ook kijken naar specifieke onderdelen. Zo kun je bijvoorbeeld bij Discord instellen dat je alleen meldingen van bepaalde kanalen of alleen privéberichten wilt ontvangen.

Een andere optie is om meldingen stil binnen te laten komen. Dat kun je via de notificatie zelf regelen door hem even ingedrukt te houden. Of je gaat naar App-info > Meldingen en daarna het onderdeel dat je zonder geluid of trilling binnen wilt laten komen. In dit voorbeeld gebruiken we WhatsApp. We tikken op Berichten. Of je dat nu via de melding of via App-info regelt, maakt niet uit: je komt in beide gevallen uit in een menu waar je kunt kiezen uit Standaard of Stil. Selecteer hier de tweede optie.

Categorieën beheren

Tot slot kijken we naar meldingscategorieën. Binnen Android worden notificaties ingedeeld in categorieën die je in één keer kunt beheren. Ook dit regel je binnen App-info. Ga naar Meldingen en vervolgens naar het onderdeel waar je liever geen notificatie van krijgt. Je kunt helemaal bovenaan de schuifregelaar naast Meldingen tonen omzetten. Dan krijg je in het vervolg niets meer van deze app. Check meteen op dezelfde pagina of er wellicht andere instellingen zijn die bij je voorkeur passen.