ID.nl logo
Maak je eigen Google Home met een Raspberry Pi
© Reshift Digital
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
Waar voor je geld: 5 wasmachines met app-bediening en A-label voor  minder dan 500 euro
© Id.nl
Huis

Waar voor je geld: 5 wasmachines met app-bediening en A-label voor minder dan 500 euro

Bij ID.nl zijn we gek op producten voor een mooie prijs of die iets extra's of bijzonders te bieden hebben. Daarom gaan we een paar keer per week voor jullie op zoek naar leuke deals. Tegenwoordig is overal een app voor, zelfs wasmachines kun je voor een groot deel op afstand bedienen met je smartphone. Wij bekijken vijf van zulke exemplaren voor minder dan 500 euro.

Het bedienen van je wasmachine door middel van een app is handig. Zo kun je bijvoorbeeld zelf aangeven wanneer je je programma start, kun je deze tussendoor pauzeren als je wil dat de was op een bepaald tijdstip klaar is, zodat je je wasgoed kunt ophangen en krijg je een signaal wanneer de machine klaar is. Wij bekijken vijf via een app te bedienen wasmachines die minder kosten dan 500 euro.

Hoover H‑WASH 500 HWE 49AMBS/1‑S

Met de Hoover H‑WASH 500 HWE 49AMBS/1‑S kun jij wassen via wifi en een smartphone‑app. De machine heeft een capaciteit van 9 kg en een toerental van 1 400 rpm. Dankzij de Eco‑Power‑invertermotor werkt hij energiezuinig en valt hij in energieklasse A. Via de app stel je de startuitstel tot 24 uur in en kun je het wasprogramma of de resterende tijd bekijken.

Het Mix Power System + mengt water en wasmiddel voor een efficiënte reiniging. Daarnaast zijn er programma’s voor wol, katoen, snelle was of stoom. Een trommelreinigingsfunctie helpt om geurtjes te voorkomen en een resttijd‑indicator laat zien hoelang het programma nog duurt.

Energy Label A
Specificaties

Centrifugeren: 1400rpm
Geluidsniveau: 77dB
Capaciteit: 9kg

Hoover H‑WASH 500 HW 49XMBB/1‑S

De Hoover H‑WASH 500 HW 49XMBB/1‑S is een voorlader met 9 kg trommelinhoud. Het toerental bedraagt 1400 rpm en het energie‑etiket is A. Dit model is uitgerust met Wi‑Fi; via de Hoover‑app op je smartphone kun je programma’s kiezen, extra cycli downloaden en een startuitstel instellen. De invertermotor zorgt voor een stille werking en een lange levensduur.

Er zijn speciale programma’s voor bijvoorbeeld wol, een snelle cyclus of een antiallergie-programma. Een resttijd‑indicator en trommelverlichting maken het gebruik eenvoudiger, en een automatische waterniveau‑sensor past het waterverbruik aan de lading aan. Door het toerental van 1400 rpm blijft het restvocht laag en hangt de was minder lang te drogen.

Energy Label A
Specificaties

Centrifugeren: 1400rpm
Geluidsniveau: 77dB
Capaciteit: 9kg

Beko B5WT5941082W

De Beko B5WT5941082W heeft een trommel van 9 kg en een maximaal toerental van 1400 rpm. Dit apparaat is voorzien van een Bluetooth‑module voor bediening via de HomeWhiz‑app. Via deze app kun jij programma’s selecteren, het resterende verloop volgen en extra programma’s (zoals mix, gordijnen of lingerie) downloaden. De wasmachine valt in energieklasse A (‑10 %) en gebruikt een stille inductiemotor.

Dankzij de Aquatech‑technologie wordt water en wasmiddel effectief over het wasgoed gesproeid. Er zijn 15 standaardprogramma’s, waaronder handwas, wol, dark en Outdoor/Sport. Je kunt kiezen voor opties zoals stoom, extra spoelen of trommelreiniging. Het digitale display toont de resterende wastijd, er is startuitstel tot 24 uur en een aquasafe‑functie sluit de watertoevoer af bij lekkage.

Energy Label A
Specificaties

Centrifugeren: 1400rpm
Geluidsniveau: 75dB
Capaciteit: 9kg

Hisense WF5I8043BWF

De Hisense WF5I8043BWF is een slanke voorlader (ongeveer 47 cm diep) met een laadvermogen van 8 kg en een toerental van 1 400 rpm. De machine valt onder energieklasse A(‑30 %) en is uitgerust met wifi om hem via de ConnectLife‑app te bedienen. In een review wordt als voordeel genoemd dat je de wasmachine met een app op afstand kunt bedienen om het soort was en de centrifugeerstand te kiezen, en dat je een melding krijgt wanneer de was klaar is.

Het product heeft een stoomfunctie om kreuken te verminderen en een trommelverlichting zodat je geen sokken vergeet. Dankzij de compacte diepte is het model geschikt voor kleinere ruimtes. De app maakt het mogelijk extra programma’s te downloaden en het energieverbruik te volgen. Met 8 kg capaciteit is de machine geschikt voor een middelgroot huishouden; de maximale
centrifugesnelheid zorgt ervoor dat het restvocht beperkt blijft.

Energy Label A
Specificaties

Centrifugeren: 1400rpm
Geluidsniveau: 72dB
Capaciteit: 9kg

Samsung EcoBubble WW80CGC04AAH

De Samsung EcoBubble™ WW80CGC04AAH is een voorlader met een trommelcapaciteit van 8 kg en een centrifugesnelheid van 1400 rpm. Het apparaat gebruikt EcoBubble‑technologie om wasmiddel op te lossen en belletjes te creëren voor een grondige reiniging bij lage temperaturen. Het energieverbruik bedraagt volgens de specificaties 47 kWh per 100 cycli. Op de officiële Samsung‑pagina staat dat je via de SmartThings‑app de AI Energy Mode kunt inschakelen; daarmee monitor je het energieverbruik en kun je de temperatuur verlagen, de programmaduur
verleng‑ en en tot 70 % energie besparen.

In de app zie je jouw dagelijkse, wekelijkse en maandelijkse stroomverbruik per apparaat. Behalve de app‑bediening biedt de wasmachine een programma voor hygiënestoom, 10 % extra energiebesparing ten opzichte van oudere modellen en een digitale inverter‑motor voor een lager geluidsniveau. Met een geluidsniveau van circa 72 dB tijdens het centrifugeren en een A‑label behoort de machine tot de stille en zuinige klasse.

Energy Label A
Specificaties

Centrifugeren: 1400rpm
Geluidsniveau: 72dB
Capaciteit: 8kg

▼ Volgende artikel
Review JBL Grip – Klein van stuk, groots in geluid
© JBL
Huis

Review JBL Grip – Klein van stuk, groots in geluid

Bluetooth-speakers zijn er in overvloed, waardoor fabrikanten zich maar moeilijk kunnen onderscheiden. Met zijn kersverse Grip doet JBL een dappere poging. Volgens het Amerikaanse merk is deze draadloze luidspreker met ingebouwde verlichting erg krachtig. Bijzonder, want de behuizing is niet veel groter dan een colablikje. Maakt JBL zijn belofte waar?

Goed
Conclusie

Als je een compacte luidspreker met IP68-certificering wilt kopen, is de JBL Grip het overwegen waard. Je haalt voor amper honderd euro een degelijke speaker in huis die in alle weersomstandigheden blijft doorspelen. Overige pluspunten zijn de respectabele accuduur en geïntegreerde verlichting. Voor audiopuristen is de aanwezigheid van één actieve driver een nadeel. Dat geeft op audiovlak namelijk beperkingen. Zoek je een bluetooth-speaker die alle muziekstijlen op een hoog volumeniveau zonder vervorming laat horen, dan is de Grip niet de beste keuze.

Plus- en minpunten
  • Betaalbaar
  • Licht en compact
  • Valbestendig
  • IP68-gecertificeerde behuizing
  • Behoorlijke accuduur
  • Kan luid spelen
  • Sfeerverlichting
  • Uitgebreide app
  • Geen usb-c-kabel bijgesloten
  • Geen volwaardig 360 graden-geluid
  • Slechts één actieve audiodriver

De Grip is een begrijpelijke toevoeging binnen het uitgebreide gamma van de bekende audiofabrikant. Ten opzichte van de goedkopere GO 4 en Clip 5 is dit nieuwe model weliswaar iets groter, maar je krijgt daar een voller geluid voor terug. Vergelijken we de Grip met de iets duurdere Flip 7, dan is de cilindervormige behuizing van 6,4 × 15,3 × 6,5 centimeter juist weer iets compacter. Logischerwijs zag JBL dus een kans om dit gat in zijn assortiment te vullen. De speaker heeft een adviesprijs van 99,99 euro.

©Maikel Dijkhuizen

Het scheelt weliswaar niet veel, maar de JBL Grip is net iets forser dan een blikje frisdrank.

Luistertijd en bouwkwaliteit

Wie de JBL Grip koopt, moet zelf voor een usb-c-kabel zorgen, want deze kabel zit niet in het productdoosje. Eenmaal opgeladen gaat de accu van 2600 mAh op een gemiddeld volumeniveau ongeveer veertien uur mee. Normaal gesproken hebben JBL-speakers een stevige constructie. Dat is bij de Grip ook het geval, al kunnen we de behuizing op bepaalde plekken diep indrukken. Gelukkig veren het textiel en kunststof soepel terug. Wellicht verklaart het flexibele materiaal het lichte gewicht van 385 gram. Toch gaat deze luidspreker naar verwachting niet zo gauw stuk. JBL claimt dat de Grip een val van één meter hoogte op beton moeiteloos overleeft. Bovendien voldoet dit product aan de eisen van de IP68-norm. Het speakerkastje is dus volledig dompel- en stofdicht. Zeker voor luistersessies in de buitenlucht is dat natuurlijk een pluspunt. Dankzij de geïntegreerde lus hang je de Grip makkelijk ergens aan op.

©Maikel Dijkhuizen

Zelfs in een tropisch aquarium speelt deze volledig waterdichte bluetooth-speaker vrolijk door.

Muziek luisteren

Zodra de Grip met een bluetooth-bron is verbonden, bedien je de muziekweergave eenvoudig vanaf de speaker. Boven het JBL-logo vind je twee volumeknoppen en een play/pauze-toets. Door tweemaal op laatstgenoemde knop te drukken, kun je nummers skippen. Bovenop is er nog een optie om een andere geschikte JBL-speaker draadloos te koppelen. Je profiteert dan van een grootser geluid. Hoewel veel cilindervormige luidsprekers een zogeheten 360 graden-geluid ondersteunen, is dat bij dit exemplaar helaas niet het geval. De achterkant klinkt beduidend minder dan de voorkant.

Bij eenvoudige muziekcomposities, podcasts en luisterboeken is de geluidskwaliteit goed. Het is nogal verrassend hoeveel volume dit kleine apparaatje kan produceren. Met name bij opzwepende genres als dance en hiphop komt dat goed van pas. Verder zijn mensen duidelijk te verstaan, zodat je bijvoorbeeld een radioshow of audioboek makkelijk kunt volgen. Bij bombastische muziekstukken met veel instrumenten schiet de Grip iets tekort. Denk bijvoorbeeld aan genres als rock, metal en klassiek. Logisch, want het is ondoenlijk om de benodigde audiofrequenties uit een enkele fullrange-audiodriver te persen. Zeker op een wat hoger volumeniveau klinken dergelijke nummers ietwat chaotisch. Geen schande, want dat is vrijwel bij alle bluetooth-speakers met slechts één actieve audiodriver het geval.

©Maikel Dijkhuizen

Voor een betere geluidskwaliteit draai je de luidspreker bij voorkeur even om.

Sfeerverlichting en app

Op de achterkant zit een ledstrip van zo'n 6,5 centimeter. Dat geeft met name in het donker een leuk effect. Druk meermaals op de bijbehorende lichtknop voor verschillende thema's. Via de JBL Portable-app pas je optioneel de lichtintensiteit en kleur aan. Ook om andere redenen loont het de moeite om deze app op je smartphone te installeren. Je zet hiermee onder andere diverse equalizerinstellingen naar je hand. Kies bijvoorbeeld voor Chill, Vocal of Energetic. Tot slot stelt JBL vanuit de app regelmatig software-updates beschikbaar.

©Maikel Dijkhuizen

De JBL Portable-app telt een aantal nuttige functies.

JBL Grip kopen?

Als je een compacte luidspreker met IP68-certificering wilt kopen, is de JBL Grip het overwegen waard. Je haalt voor amper honderd euro een degelijke speaker in huis die in alle weersomstandigheden blijft doorspelen. Overige pluspunten zijn de respectabele accuduur en geïntegreerde verlichting. Voor audiopuristen is de aanwezigheid van één actieve driver een nadeel. Dat geeft op audiovlak namelijk beperkingen. Zoek je een bluetooth-speaker die alle muziekstijlen op een hoog volumeniveau zonder vervorming laat horen, dan is de Grip niet de beste keuze.