Een spraakbox voor opa: WhatsApp is het lastige deel

Zelfgebouwd houten kastje met een grote blauwe knop en een luidsprekerrooster op een plank in een kinderkamer

Er klinkt een beltoon in een kinderkamer en twee kinderen rennen de trap op. Niet omdat er een telefoon overgaat, want die is er niet. Er staat een houten kastje op de kast met één grote blauwe knop erop, en dat kastje zegt dat opa en oma iets hebben teruggezegd.

Dan Peguine bouwde dat ding samen met zijn zoon en liet het zien op X. Kind drukt op de knop, spreekt in, het bericht gaat naar een WhatsApp-groep met beide grootouders. Komt er antwoord, dan gaat de zelfgekozen beltoon. Zijn de kinderen weg of slapen ze, dan blijven de berichten wachten. ’s Nachts is het stil. De grootouders zien zelfs of er geluisterd is, aan een koptelefoon-reactie onder hun bericht.

Er staat geen repository bij, geen schema, geen onderdelenlijst. Alleen een filmpje van vijftig seconden. Ik heb het uitgezocht, en het interessantste zit niet in het kastje.

De knop, de microfoon en de beltoon zijn een middagje werk. Het stuk waar je op vastloopt is WhatsApp.

De hardware is de makkelijke helft

Een kastje dat opneemt en afspeelt is op een ESP32 geen uitdaging meer. De route die werkt: een ESP32 met genoeg geheugen, een I2S-microfoon van het type INMP441 voor de opname, een MAX98357A-versterker met een klein luidsprekertje voor de weergave, en een arcadeknop van zes centimeter die een kind niet kan missen. Alles digitaal, dus geen ruis van analoge bedrading.

Opnemen doe je zolang de knop ingedrukt blijft. Dat is meteen de beste bediening voor een kind van vijf: loslaten is verzenden, en er is geen scherm waarop iets mis kan gaan. De beltoon is een wav-bestandje op de flash. Stille uren zijn drie regels code.

Tot hier kost het je een zaterdag en een paar tientjes. Daarna begint het echte werk.

Een WhatsApp-groep appen mag alleen met een Official Business Account

WhatsApp heeft sinds kort officieel een Groups API. Meta’s eigen documentatie is er duidelijk over wie hem mag gebruiken. In de Groups API-pagina (bijgewerkt 16 juni 2026) staat het onder Eligibility: je bedrijf moet een Official Business Account zijn. Nummers van de gewone WhatsApp Business-app vallen erbuiten.

Een Official Business Account is de status met het geverifieerde vinkje, en die krijg je als merk, niet als vader met een kastje. De rest van de voorwaarden past net zo slecht bij een huiskamer:

Wat Meta vastlegt Waarde
Toegang Alleen Official Business Accounts
Deelnemers per groep Maximaal 8
Groepen per zakelijk nummer Maximaal 10.000
Deelname Alleen op uitnodiging, via een uitnodigingslink die jij stuurt
Prijs Per bericht
Niet ondersteund Bellen, verdwijnende berichten, view-once, interactieve berichten

Wat blijft er dan over voor thuis? Twee routes, en allebei hebben ze een prijs. Je kunt het kastje één-op-één laten appen in plaats van naar een groep, via een gewoon zakelijk nummer. Dat mag, maar dan verlies je precies het aardige aan zijn opzet: opa en oma zitten samen in één gesprek. Of je automatiseert WhatsApp Web met een van de bibliotheken die daarvoor rondzwerven. Dat werkt, en het is tegen de gebruiksvoorwaarden. De rekening daarvoor is niet een boete maar een geblokkeerd nummer, en dat is het nummer waar je hele familie in zit.

Opus of het komt niet aan

Nog een detail dat je uren kost als je het niet weet. WhatsApp accepteert audio in aac, amr, mp3, m4a en ogg, maar bij ogg staat er een voetnoot bij die alles bepaalt. Meta’s mediadocumentatie zegt het zo: audio/ogg (OPUS codecs only; base audio/ogg not supported; mono input only). Maximaal 16 MB.

Een ESP32 die zelf Opus codeert is te veel gevraagd voor een middagproject. De praktische route is dat het kastje ruwe audio opstuurt naar een klein serverproces, en dat dat proces omzet:

ffmpeg -i opname.wav -ac 1 -c:a libopus -b:a 24k bericht.ogg

Mono, want stereo wordt geweigerd. Op 24 kbit blijft een spraakbericht van een minuut ruim onder de tweehonderd kilobyte, en spraak klinkt op die bitrate prima.

Ik zou WhatsApp eruit slopen, en dat is meteen mijn zwakke punt

Het mooie aan dit project heeft niets met WhatsApp te maken. Het mooie is dat een kind een knop indrukt en dat er even later iets terugkomt van iemand die van hem houdt. Dat kan ook met twee identieke kastjes en een eigen berichtenserver, of over een netwerk waar helemaal geen bedrijf tussen zit. Geen kosten per bericht, geen voorwaarden, geen kans dat een blokkade je familiegroep meesleurt.

Alleen: dan moet er bij opa en oma ook zo’n kastje staan, of moeten ze iets installeren. En dat is precies de reden dat WhatsApp erin zit. Grootouders die al twaalf jaar dezelfde app gebruiken gaan geen tweede leren, en een kastje dat op hun dressoir staat te knipperen is voor hen niet handiger maar juist lastiger dan het gesprek dat ze al hebben. Mijn nettere oplossing lost een probleem op dat de bouwer niet had, en creëert er een die hij wel krijgt. Dat moet je eerlijk zeggen voor je iemand een schoner ontwerp aanpraat.

Stuur eerst één spraakbericht en kijk op de klok

Voor je iets bestelt: stuur vandaag één spraakbericht naar opa en oma en noteer hoe lang het duurt voor er iets terugkomt. Komt er binnen tien minuten antwoord, dan lost een kastje geen probleem op dat je hebt. Duurt het een halve dag, dan weet je meteen waar het aan ligt, en meestal is dat niet de techniek maar het moment. Daar helpt een beltoon in de kinderkamer wél tegen.

Zolang Eligibility op Official Business Account blijft staan

De Groups API is nog jong en de voorwaarden zijn dit jaar al een keer verruimd. Het moment om op te letten is de regel over eligibility: gaat die open naar gewone zakelijke nummers, dan wordt een kastje als dit ineens legaal na te bouwen. Blijft hij staan zoals hij nu staat, dan draait elke huiskamerversie op een omweg, met het nummer van je gezin als onderpand.

Veelgestelde vragen

Kan een ESP32 rechtstreeks een WhatsApp-bericht sturen?

Niet zelfstandig. Je hebt een tussenstap nodig die de audio omzet naar ogg met Opus en die het via een API verstuurt. Het kastje doet de knop, de microfoon en het geluid; het versturen gebeurt elders.

Wat kost zo’n kastje aan onderdelen?

Een ESP32, een I2S-microfoon, een versterkertje met luidspreker, een grote arcadeknop en een voeding. Reken op enkele tientjes, plus een behuizing die tegen kindergebruik kan.

Kan ik zien of opa en oma het bericht hebben geluisterd?

In de opzet uit het filmpje reageren de grootouders zelf met een koptelefoon-emoji, en daar reageert het kastje op. Dat is dus geen technische ontvangstbevestiging maar een afspraak binnen de familie, en dat werkt in de praktijk vaak beter.

Mag ik WhatsApp Web automatiseren voor privégebruik?

Het kan technisch en het is in strijd met de voorwaarden van WhatsApp. Het risico is een blokkade van het nummer dat je gebruikt. Wie dit toch doet, doet het beter met een apart nummer dan met het nummer waar de hele familie in zit.