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
Review Dreame L10s Ultra (2nd gen) – Goedkoper en beter dan voorganger
© Wesley Akkerman
Huis

Review Dreame L10s Ultra (2nd gen) – Goedkoper en beter dan voorganger

Tot onze verbazing zien we dat de Dreame L10s Ultra (2nd gen) een van de grootste nadelen van zijn voorganger zomaar wegneemt: deze nieuwe robotstofzuiger is namelijk honderden euro's goedkoper dan zijn voorganger ooit geweest was. Sterker nog: ook nu nog is eerste L10s Ultra duurder dan zijn opvolger. Tijd om te bekijken hoe de Gen 2 in de praktijk presteert.

Uitstekend
Conclusie

Dreame heeft met de Dreame L10s Ultra (2nd Gen) een fijne balans gevonden tussen een uitgebreide en functionele robotstofzuiger en een redelijke prijs. De maximaal 700 euro die je betaalt, is geen immens hoog bedrag voor de prestaties die je in huis haalt. Je krijgt bovendien toegang tot allerlei premium functies, zoals uitschuifbare dweilpads en de borstel. Je moet er wel rekening mee houden dat je soms de dweil zelf even moet schoonmaken om de prestaties op hoog niveau te houden, maar verder vinden we deze robotstofzuiger top.

Plus- en minpunten
  • Flinke zuigkracht
  • Dweilen gaat veel beter
  • Uitschuifbare onderdelen
  • Aanpassingsmogelijkheden
  • Overzichtelijke app
  • Navigatie gaat beter
  • Prijs-kwaliteitverhouding
  • Objectherkenning niet altijd accuraat
  • Vereist wat handmatig onderhoud
  • Geen warm water
  • Dweil schoonmaken duurt lang
  • Hardnekkige viezigheid kan achterblijven

De Dreame L10s Ultra (2nd Gen) heeft een adviesprijs van 699 euro, maar is nu al online verkrijgbaar voor minder. Als je de introductieprijs van de voorganger in het achterhoofd neemt (meer dan duizend euro) dan begrijp je dat we daar enigszins verrast over zijn. Dat model uit begin 2023 beviel, maar stelde ook teleur op een aantal vlakken. Zo botste het nog wel eens ergens tegenaan, had je nog wat handmatig onderhoud, werd het tapijt niet goed schoongemaakt, was de app onoverzichtelijk en zat je als het ware vast aan de schoonmaakmiddelen van Dreame.

Zijn opvolger doet een hoop dingen anders, terwijl de ervaring toch grotendeels hetzelfde blijft. Daarmee bedoelen we dat fabrikant Dreame een aantal negatieve aspecten aangepakt heeft, en de positieve eigenschappen heeft behouden. En dat zonder de prijs te verhogen. Ergens kon dat ook niet anders, gezien het bestaan van bijvoorbeeld de Dreame X40 Ultra en de aankomende X50 Ultra. Die nemen het stokje over van de meest dure Dreame-robots van dit moment, waardoor de vernieuwde L10s Ultra een lager prijskaartje hanteert.

©Wesley Akkerman

©Wesley Akkerman

Navigeren gaat goed, maar…

De robot en de basis hebben eenzelfde, stijlvol en praktisch ontwerp als andere Dreame-robotstofzuigers en zijn daardoor inmiddels heel herkenbaar. Voor- en bovenop tref je de middelen aan voor objectherkenning, zoals een camera en een laser (LiDAR). Hoewel dit model wel over objectherkenning beschikt, zit er geen AI-camera aan boord (zoals op de duurdere stofzuigers). Over het algemeen navigeert de robot goed door het huis en vermijdt hij verschillende soorten spullen die op de grond liggen en staan.

Waar deze stofzuiger een beetje moeite mee heeft, zijn smalle openingen. Het lijkt net alsof het apparaat een bepaalde route niet 'durft' te nemen uit angst om ergens vast te komen zitten. Daardoor kan het gebeuren dat specifieke plekjes niet meegenomen worden. De objectherkenning laat ook nog wel een iets te wensen over. Het kan zijn dat de robot over kabels heenrijdt en daardoor zichzelf vastrijdt (als het dikke kabels zijn) of iets opzuigt (als het dunne kabels zijn). Bij ons lieten de dweilpads daardoor ook een keer los; die bleven hangen achter een dikke stekkerkabel.

©Wesley Akkerman

Apart bakje voor reinigingsmiddel

Net als de voorganger kan ook de Dreame L10s Ultra (2nd Gen) zijn twee roterende dweilpads niet achterlaten op het basisstation. Daardoor kunnen dat soort dingen zoals in de alinea hierboven beschreven nog wel eens fout gaan. Als zoiets gebeurt, dan stopt de robot met werken totdat je hem geholpen hebt. Als je dan op dat moment niet thuis bent, dan heb je pech. Gezien de prijs hebben we daar minder moeite mee dan voorheen, maar het kan het gebruik van een robotstofzuiger wel in de weg zitten. Helemaal als het apparaat ergens onder het bed stilstaat, en je er dus moeilijk bij kunt

Gelukkig heeft het basisstation wel een waardevolle upgrade gekregen in de vorm van een apart zeepbakje. Naast een bak voor schoon en een bak voor vies water, heb je nu een aparte bak waar je vloerreiniger in kunt stoppen. Dreame raadt uiteraard zijn eigen schoonmaakmiddelen aan, maar niets staat je in de weg zelf een middel uit te kiezen.

Helaas biedt dit model ook geen droogfunctie aan voor de gebruikte dweilpads. Ze worden wel schoongemaakt op het station, maar het duurt even voordat ze helemaal schoon en droog zijn voor de volgende ronde.

©Wesley Akkerman

©Wesley Akkerman

Maakt veel beter schoon

In vergelijking met de vorige versie maakt de Dreame L10s Ultra (2nd Gen) veel beter schoon langs randen. Dan bedoelen we langs de muren en plinten, maar ook de rand van een vloerkleed. Het gevaarte op wielen maakt dan kleine, schuine bewegingen heen en weer en rijdt kort van voren naar achteren om precies tot aan de rand schoon te kunnen maken. Het slaat in dat proces weinig tot geen stukken vloer over. Wel kan deze robotstofzuiger in een enkel geval nog wel eens met de natte dweil op het vloerkleed komen. Maar dat is niets om je zorgen om te maken.

Qua zuigkracht is het systeem er eveneens flink op vooruitgegaan, van 5300 Pa naar 10.000 Pa. Daardoor blijft er vrijwel geen stof achter op de plekken waar de Dreame L10s Ultra (2nd Gen) komt. Het kan zijn dat hij nog wel eens wat achterlaat op een hoogpolig kleed. Ook de hoekjes in huis worden niet superschoon, ondanks de uitschuifbare borstel. Maar eerlijk is eerlijk: de robot doet het veel beter dan de Dreame L10s Ultra. De borstel, gemaakt van kunststof, snijdt eventuele haren (van bijvoorbeeld huisdieren of jezelf, als je lang haar hebt) niet voor je kapot; dus je hebt zelf nog wat onderhoud aan het af en toe haarvrij maken van de borstel.

Overzichtelijke app

Dweilen gaat het systeem nog even goed af. Vooral voor het dagelijkse of wekelijkse onderhoud is de Dreame L10s Ultra (2nd Gen) uitermate geschikt, aangezien hij genadeloos afrekent met oppervlakkige vlekken. Als je wat meer hardnekkige viezigheid aan de vloer laat plakken, weet de robot daar ook nog wel raad mee. Vettigheid en opgedroogde troep kunnen echter een uitdaging vormen – waarschijnlijk omdat de stofzuiger geen gebruik maakt van warm water. De dweilpads zijn overigens eveneens uitschuifbaar, wat het schoonmaken ten goede komt.

Via de overzichtelijke app kun je heel snel bepalen hoeveel water en zeep de Dreame L10s Ultra (2nd Gen) moet gebruiken. Wellicht helpt het om die hoeveelheid aan te passen, waardoor hardnekkige viezigheid ook zou kunnen verdwijnen – maar meer water en zeep is geen garantie voor succes. Verder bepaal je in de app de zuigkracht, in welke mate de stofzuiger zijn rondes doet (met ruime of minder ruime bochten) en zie je hoe het gesteld is met de verschillende onderdelen. Met die laatste functionaliteit kun je goed zien wanneer iets aan vervanging toe is of wanneer je ergens een lapje over moet halen.

©Wesley Akkerman

©Wesley Akkerman

Dreame L10s Ultra (2nd Gen) kopen?

Tot slot is het goed om te zien dat de accu ruim drie uur meegaat. Dat is deels afhankelijk van de instellingen die je zelf prefereert, maar dan nog is het een zeer nette score. Dit voorkomt dat de robot lange omwegen moet maken om tussentijds op te laden, waardoor het werk sneller gedaan kan worden. Verder moet je qua onderhoud dus rekening houden met vastgelopen haren, de oprit (die snel vies wordt) en zowel de water- als zeepbakken. Niet heel veel meer dus dan bij duurdere modellen; maar vooral dat vastgelopen haar kan irritant worden.

Onderaan de streep vinden we dat Dreame met de Dreame L10s Ultra (2nd Gen) een fijne balans heeft gevonden tussen een uitgebreide en functionele robotstofzuiger en een redelijke prijs. De maximaal 700 euro die je betaalt, is geen immens hoog bedrag voor de prestaties die je in huis haalt. Je krijgt bovendien toegang tot allerlei premium functies, zoals uitschuifbare dweilpads en de borstel. Je moet er wel rekening mee houden dat je soms de dweil zelf even moet schoonmaken om de prestaties op hoog niveau te houden, maar verder vinden we deze robotstofzuiger top.

▼ Volgende artikel
Maakt je blender lawaai? Zo los je het op
© InsideCreativeHouse
Huis

Maakt je blender lawaai? Zo los je het op

Een blender of een keukenmachine maakt geluid, dat is nu eenmaal zo. Er zitten bewegende onderdelen in, en er komt flink wat kracht bij kijken. Maar wat als je blender meer lawaai maakt dan zou moeten? Gelukkig kun je dat vaak zelf oplossen. Hier lees je hoe.

In dit artikel lees je:

  • Waarom je blender zo'n herrie maakt
  • Dat dat eigenlijk best logisch is
  • Dat je er (misschien) toch iets aan kunt doen

Lees ook: 9 dingen die je óók met je blender kunt maken

Waarom maakt mijn blender lawaai? 

De messen van een blender draaien doorgaans in de rondte met zo'n 20.000 toeren per minuut – bijna tien keer zo veel als de wielen van je auto als je lekker aan het cruisen bent. Geen wonder dus dat daar wat geluid bij komt kijken. 

Oudere blenders maken vaak meer lawaai dan nieuwe, en hoe langer je je blender hebt, des te meer geluid hij gaat maken, omdat de onderdelen verouderd raken. Daar is verder weinig aan te doen, behalve een nieuwe blender kopen. 

Stille blenders

Er zijn steeds meer stille blenders op de markt, al blijven ze natuurlijk altijd geluid maken. Doorgaans geldt dat hoe krachtiger het model, des te hoger de geluidsproductie. Denk dus goed na of je wel de krachtigste blender nodig hebt, of dat je het met een simpeler – en stiller! – model af kan. 

Fabrikanten doen er ook steeds meer aan om het geluid tegen te houden, bijvoorbeeld door een geluidsreductiesysteem en een slimme vorm van de messen en de glazen kan. Nieuwer is niet altijd beter, maar in dit geval vaak wel. 

©HP

Resonantie

Een van de hoofdredenen van een luide blender is de resonantie in de rest van je keuken. Probeer je blender maar eens op te tillen tijdens het blenden: dan hoor je meteen een stuk minder. Dat komt doordat het geluid doordreunt in het keukenblad, of zelfs in de muren waar de blender bij in de buurt staat. 

Zorg er dus voor dat de blender zo vrij mogelijk staat, niet tegen de muur en er ook niet vlakbij. Je kunt ook tijdelijk een handdoek of theedoek onder de blender leggen om het doordreunen te voorkomen, al moet je er wel voor zorgen dat het apparaat waterpas blijft staan. 

Veel blenders en keukenmachines hebben zuignappen, zodat ze wel op hun plek blijven staan, maar niet direct met het aanrechtblad in aanraking komen. Dat scheelt ook weer een slok op een smoothie! 

Conclusie

Je blender maakt nu eenmaal geluid, daar is weinig aan te doen. Je kunt het wel binnen de perken houden door te zorgen dat de blender goed waterpas staat en dat alle onderdelen goed schoon zijn. Zet hem niet tegen of in de buurt van de muur, en zet hem eventueel op een handdoek of theedoek om de ergste trillingen te voorkomen. En anders kun je natuurlijk altijd op zoek gaan naar een nieuwe, stille blender.