AuraSense bouwen
Een op zonne-energie aangedreven IoT-sensor die buitengeluid en luchtkwaliteit meet, met on-device AI-classificatie en een privacy-first architectuur.
Als je in de buurt van Schiphol woont, ken je het geluid. Het is constant, het is meetbaar, en toch is er geen echte manier voor een bewoner om het zelf te meten. Professionele geluidmeters kosten duizenden euro’s. Gemeentelijke meetstations zijn schaars. De data bestaat, het is alleen niet van jou.
Daar is dit uit ontstaan. Niet vanuit een marktkans, maar vanuit een oprechte ergernis: waarom is dit zo moeilijk? En daarna werd het een bouwproject van 18 maanden.

De architectuur uitwerken
Het lastige aan het begin was uitvogelen hoe je continue audioclassificatie draait op een apparaat dat op zonne-energie werkt. Die twee dingen gaan van nature niet samen. Audio-inferentie wil constant draaien; zonne-energie wil zoveel mogelijk slapen, zeker tijdens een Nederlandse winter met vier uur fatsoenlijk licht.
De aanpak waar we op uitkwamen was event-driven firmware. Audio-opname draait op de achtergrond via DMA zonder CPU-betrokkenheid, en de processor wordt pas wakker als er daadwerkelijk iets is dat het classificeren waard is. Voor de LTE-verbinding gebruiken we eDRX en PSM, waarmee de modem kan slapen tussen databursts en het stroomverbruik daalt van zo’n 150 mA naar minder dan 10 µA. In combinatie met een SD-kaart die data lokaal buffert wanneer er geen signaal is, houdt het apparaat goed stand tegen zowel slecht weer als slechte dekking.

Verder dan dBa
In het begin onderzochten we het gebruik van een ML-classifier (YAMNet) om geluidsbronnen zoals vliegtuigen of verkeer te herkennen. We kregen het werkend als proof of concept, maar het interessantere probleem bleek een ander te zijn: dBa vertelt je hoe hard iets is, maar niet of een persoon het daadwerkelijk als storend ervaart. Een vaag gebrom op de verkeerde frequentie kan ondraaglijk zijn. Een luid breedbandgeruis kan nauwelijks opvallen. Het getal alleen vangt dat niet.
Daarom implementeerden we in plaats daarvan de psycho-akoestische metrieken uit het SQAT-model in C, om direct op het embedded apparaat te draaien. Waar dBa frequenties weegt om het menselijk gehoor te benaderen, gaan psycho-akoestische metrieken een stap verder. Loudness (ISO 532-1) modelleert hoe het gehoorsysteem daadwerkelijk volume waarneemt. Sharpness vangt hoogfrequente scherpte op. Roughness meet snelle amplitudemodulatie in het bereik van 15 tot 300 Hz, wat bepaalde geluiden schurend maakt. Fluctuation strength vangt langzamere, pulserende patronen op. Samen geven deze een veel helderder beeld van waarom een bepaald geluid wel of niet storend is.
SQAT begon als een MATLAB-toolbox die deels is ontwikkeld aan de TU Delft voor de evaluatie van vliegtuiggeluid, wat het een logische keuze maakte. Het porten van de algoritmen naar C voor een beperkt embedded systeem was hier het belangrijkste engineeringwerk.

Een paar hardwarekeuzes die uitleg verdienen
We testten vroeg een goedkope PM2.5-sensor van zo’n €7, breed verkrijgbaar. Die zag er prima uit in een gecontroleerde omgeving en dreef vervolgens flink af buitenshuis, vooral bij hoge luchtvochtigheid. De Sensirion SEN66 van €25 was de voor de hand liggende vervanging. Die regelt zijn eigen temperatuur- en vochtigheidscompensatie, meet PM2.5, PM10, VOC, CO₂, en geeft ons ook de temperatuurmeting die we nodig hadden om te compenseren voor MEMS-gevoeligheidsdrift.
We bespraken ook de microfoonplaatsing met een akoestisch ingenieur. De instinctieve reactie is om de microfoon achter een lange beschermbuis te plaatsen om regen buiten te houden, maar buizen resoneren en verstoren de frequentierespons. We kozen voor een ondiepe koepel met akoestisch schuim. Microfoon licht naar beneden gericht, wat helpt bij regengeluid en het opnamepatroon bruikbaar houdt voor omgevingsmonitoring.
Privacy
Een microfoon buiten aan iemands huis hangen is een gevoelige zaak, en we wilden dat niet afdekken met een privacyverklaring. Daarom kan het apparaat op geen enkele manier audio opslaan of verzenden, niet via configuratie, maar door ontwerp. Geen GPS-module ook. Locatie is een postcode, éénmaal ingevoerd bij de installatie, en data verschijnt alleen in geaggregeerde vorm op community-kaarten. Het voelde belangrijk om deze beperkingen architectureel te maken in plaats van slechts beloften.

