Hoe bouw je een open-source geluidsmeter voor het Internet of Things?

Author
Lodewijk Loos

Het Amsterdam Sounds-project

Het project Amsterdam Sounds brengt geluid in Amsterdam in kaart. Momenteel vindt de tweede pilot plaats op het Marie Heinekenplein in de Pijp in Amsterdam. Bekijk de kaart met geluidsmetingen. We onderzoeken hoe een burgermeetnetwerk kan bijdragen aan het vinden van oplossingen voor geluidsoverlast. Om dit te kunnen doen, meten burgers geluidsniveaus met behulp van een sensornetwerk, bestaand uit open-source hardware geluidsmeters. Voor Amsterdam Sounds heeft Waag haar eigen open-source geluidsmeters ontwikkeld. In dit blog leggen we uit welke keuzes er gemaakt zijn en waarom.

Open-source technologie

Bij al onze projecten, maar zeker bij de citizen science-projecten, maakt Waag zoveel mogelijk gebruik van open technologie. Dit maakt het voor burgers en onszelf mogelijk om grondig te snappen waar het onderzoek over gaat, en we geloven dat het de betrokkenheid bij het project vergroot. Daarnaast vermindert open technologie het aantal afhankelijkheden van externe partijen, omdat je altijd zelf de broncode kunt aanpassen. Om een voorbeeld te noemen: de sensoren in een sensornetwerk sturen de verzamelde gegevens naar een dataplatform. In veel gevallen wordt dat beheert door de fabrikant van het sensorkastje en zul je een abonnement moeten nemen om de data te kunnen bekijken. Door open technologie te gebruiken, zijn ook de resultaten van de metingen openbaar toegankelijk voor iedereen die erin geïnteresseerd is.

Bij aanvang van het Amsterdam Sounds-project was er één serieuze optie voor een open geluidsmeter, namelijk de Smart Citizen Kit 2.1, maar uiteindelijk is er toch voor gekozen zelf een geluidsmeter te ontwikkelen om volledig aan onze eisen te voldoen.


 De Amsterdam Sounds kit versie 1

Waags vereisten:

  • low-budget
  • voor consument verkrijgbare onderdelen
  • in elkaar te zetten door hobbyisten
  • klasse 2
  • dBA
  • netwerkconnectiviteit
  • datasoevereiniteit
    er is volledige controle over wat de sensor met de data doet
  • outdoor
  • makkelijk te installeren in een stedelijke omgeving
  • open 
    alle broncode, hardware ontwerpen en designs zijn openbaar en kunnen door anderen gebruikt en aangepast worden
  • privacy
    de sensor slaat geen data op die naar individuele personen te herleiden is

Hieronder volgt een uitleg van welke keuzes we hebben gemaakt om aan de bovenstaande eisen te voldoen.

Binnenwerk

Voor het soort toepassing dat we ontwikkelen, namelijk een apparaat dat iets meet en dit vervolgens verstuurt, kom je al snel bij een op een microcontroller gebaseerde oplossing uit. Er is gekozen voor een Adafruit Feather M0 board, omdat de microcontroller op dit board krachtig genoeg is voor het doen van de benodigde audioverwerking. Daarbij ondersteunt deze microcontroller I2S, wat het mogelijk maakt om een microfoon met digitale interface te koppelen. Dit biedt enkele voordelen: het zorgt ervoor dat we minder componenten nodig hebben (geen losse AD-converter) en het verkleint de kans op radiostoring RFI) [1].


De MEMS microfoon (SPH0645LM4H) op het breakout board en Feather microcontroller board kunnen direct met elkaar verbonden worden via de digitale I2S interface.

Als microfoon is er gekozen voor een MEMS. Dit type microfoon, dat ook in je smartphone zit, is goedkoop en robuust. Het is relatief ongevoelig voor temperatuurschommelingen en heeft een relatief uniforme part-to-part frequentierespons, wat wil zeggen dat onderlinge microfoons van hetzelfde type weinig in output verschillen. Een voordeel hiervan zou kunnen zijn dat er minder noodzaak is om alle microfoons individueel te kalibreren. Dit zijn we op het moment van schrijven nog aan het onderzoeken. Voor het Amsterdam Sounds-project, waar onze sensoren voor ontwikkeld zijn, is een kleine afwijking niet heel erg omdat het vooral interessant is om naar de relatieve waarden en patronen te kijken. Op het moment dat er gekeken wordt of bijvoorbeeld de Lden binnen de norm valt is het wel heel belangrijk dat dit precies klopt. Een nadeel van MEMS-microfoons, althans voor de hobbyist, is dat deze erg klein zijn en niet te hanteren met een normale soldeerbout. Gelukkig bestaan er breakout boards, hanteerbare printplaatjes, met de component erop. Wel is de keuze uit MEMS breakout boards erg beperkt.

Netwerk

De Amsterdam Sounds-kit is een Internet of Things (IoT)-toepassing en heeft een netwerk nodig om data te versturen. Wij kiezen voor dit soort toepassingen afhankelijk van de situatie meestal tussen WiFi en LoRa [2]. Het laatste is een IoT-technologie die het mogelijk maakt voor apparaten om energiezuinig over langere afstanden (long-range, oftewel LoRa) te verbinden. LoRa devices verbinden met een speciale LoRa gateway die aan het internet hangt, net zoals een wifi-access point aan het internet hangt. Op veel plaatsen staan al dergelijke gateways van het meest bekende publiek netwerk: The Things Network. Op plekken waar geen dekking is het mogelijk om zelf een gateway plaatsen en zodoende het publieke netwerk uit te breiden. Bij vergelijkbare citizen sensing-projecten was de keuze voor een netwerk duidelijk. Bijvoorbeeld binnen het project Hollandse Luchten: daar kozen we voor LoRa omdat er veel sensoren geplaatst moesten worden binnen één gebied, waar niet overal mensen met een WiFi-netwerk wonen. Je kunt dan met enkele LoRa gateways een heel gebied dekken. Binnen een ander project, GammaSense, moesten er kastjes verspreid worden over heel Nederland. Daar lag de keuze voor WiFi voor de hand, omdat deze kastjes bij mensen thuis geplaatst konden worden én omdat de spreiding dermate was dat we veel LoRa gateways hadden moeten plaatsen. Binnen het Amsterdam Sounds-project worden er veel kastjes in hetzelfde gebied geplaatst, én bij mensen thuis. Er is dus zowel iets te zeggen voor LoRa als voor WiFi. Uiteindelijk is er voor LoRa gekozen om de installatie van het apparaat bij de deelnemers thuis makkelijk te maken. Zij hoeven de geluidsmeter nu niet te configureren voor het WiFi-netwerk bij hen thuis. Er kleeft ook een nadeel aan LoRa, namelijk dat er minder data over kan worden verstuurd. Hoe we daarmee omgaan lees je verderop in dit artikel.

Behuizing en bevestiging

De geluidsmeters worden geïnstalleerd aan de gevels van huizen van deelnemers. Er zijn verschillende goede kant-en-klare weerbestendige behuizing voor elektronica. Echter, het is onwenselijk om een microfoon in een gesloten kastje te bouwen, omdat het kastje een akoestische werking heeft op het geluid. Het was een kleine zoektocht om de microfoon zoveel mogelijk buiten het kastje te plaatsen, en deze tegelijk ook te beschermen tegen het weer. We hebben uiteindelijk een 3D-printbare microfoonhouder ontworpen. Deze heeft als doel om de microfoon op enige afstand buiten het kastje te kunnen plaatsen en dient als ondersteuning voor een windkap met een standaardafmeting. Het idee is dat de ronde bal (afbeelding) zoveel mogelijk akoestisch transparant is, een goede windkap is dat ook en zodoende krijgen we het geluid onvervormd binnen. Nu kan via de windkap (een soort spons) en via condenswerking natuurlijk wel vocht naar binnen, terwijl er geen vocht in het kleine geluidsgat van de MEMS microfoon mag komen. Voor een eerste prototype hebben we dit proberen op te lossen met een echosondebeschermer, een soort condoom. Deze bleek helaas ook een grote invloed te hebben op het geluid dat de meter bereikte.


De akoestisch werking van de echosondebeschermer bleek te groot.

Uiteindelijk hebben we het gat van de microfoon beschermt met een ePTFE-membraan, verkregen bij een Chinese fabrikant via Alibaba. Dit soort membraan is akoestisch transparant en zit ook in de behuizing van een smartphone om de microfoons en speakers te beschermen. Enig nadeel is dat deze membranen niet voor consumenten bedoeld zijn en daarom is het lastig om deze in kleine aantallen te bestellen.


Het geluidsgat van de microfoon wordt beschermd met een ePTFE-membraan.

Ook het vinden van een handige bevestigingsmethode om de geluidsmeter aan de gevel te bevestigen was een kleine zoektocht. Een geluidsmeter kan het beste op enige afstand van de gevel geplaatst worden, omdat reflectie van geluid tegen de gevel invloed heeft op de meting. Daarbij willen we het voor deelnemers aan het project zo makkelijk mogelijk maken om een meter te plaatsen, het liefst zonder boren en schroeven. Dit in acht nemende en omdat voor deze pilot de meter vooral in stedelijk gebied wordt geplaatst, waar overal glas te vinden is, hebben we besloten om te experimenteren met het gebruik van zuignappen. De zuignap op de afbeelding behoort tot de uitrusting van een glaszetter. Het bleek handig dat er een standaardformaat PVC-buis in het holle handvat kan worden geschoven. Om het kastje aan de buis te bevestigen gebruiken we een GoPro-fietsstuurhouder. De zuignappen die in de eerste pilot zijn bevestigd hebben ruim een jaar op het raam gezeten, en bleken daarmee een eenvoudige en robuuste manier om de geluidsmeters te plaatsen.

Data en verwerking

Het geluid dat binnenkomt via de microfoon wordt uitgelezen op de microcontroller. Om het geluidsniveau in dBA te bepalen wordt er 32 keer per seconde een klein hapje van het geluid geanalyseerd, waarbij er ook de dBA-weging wordt toegepast. Deze weging is nodig omdat de menselijke waarneming van geluidsniveau niet overeenkomt met de natuurkundige bepaling van geluidsniveau. Mensen horen bepaalde frequenties (met name die in het spraakgebied) harder. Uiteindelijk stuurt de meter geluidsniveaus door naar het netwerk. Het geluid zelf wordt niet opgeslagen of doorgestuurd en daarmee is ook privacy gewaarborgd.

De data van de geluidsmeter wordt verstuurd via het publieke LoRa-netwerk van The Things Network. De data rate van deze technologie is helaas beperkt. De meter kan niet 32 maal per seconde een meting doorsturen. Daarom stuurt de meter elke minuut een statistiek over de afgelopen periode (van een minuut). Deze samenvatting bestaat uit de laagste gemeten waarde, de hoogst gemeten waarde, de gemiddelde en een standaarddeviatie. De door TTN ontvangen samenvatting gaat via het MQTT-protocol op ons eigen dataplatform.

Bekijk alle code voor de Amsterdam Sounds-kit, documentatie en meer details over de onderdelen en alles wat je nodig hebt om zelf een geluidsmeter te bouwen.

Eerste resultaten

Zoals bij al onze citizen sensing-projecten lopen we ook hier tegen het probleem aan dat het kalibreren een uitdaging is. Gecertificeerde geluidsmeters worden in een laboratorium individueel gekalibreerd met een speciale geluidsbron. Bij een klasse 1 geluidsmeter draagt dit proces flink bij aan de kosten van het apparaat. Voor een citizen science-project zou het ook behoorlijke drempels opwerpen. In het meest ideale geval maken we zelfs een meetinstrument dat helemaal geen individuele kalibratie nodig heeft om aan de door ons gestelde specificatie van een klasse 2 (afwijking max. 2 dBA) geluidsmeter te voldoen. De voorwaarde is dan dat de MEMS-microfoons onderling (part-to-part) weinig in output verschillen.Om de werking van ons instrument te bevestigen vergelijken we het met een commerciële klasse 1 geluidsmeter op dezelfde locatie. Dit doen we met meerdere Amsterdam Sounds-kits.


 De Amsterdam Sounds kit en de klasse 1 geluidsmeter naast elkaar.

Omdat de maximale fout van de klasse 1 Convergence Instrument’s referentie geluidsmeter ongeveer 0.5 dBA is (datasheet) en een klasse 2 geluidsmeter een maximale fout mag hebben van 2.0 dBA, betekent dit dat onze meter maximaal 1.5 dBA mag afwijken van de referentie meter. We zijn op dit moment nog aan het onderzoeken of voor al onze eigen meters de afwijking ten opzichte van de klasse 1 meter steeds binnen deze marge blijft, zonder dat er correcties voor individuele meters hoeven te worden opgenomen.


De Amsterdam Sounds-kit en de klasse 1 vergeleken rondom de jaarwisseling in de Korte Leidsedwarsstraat. Het verschil in uurgemiddelden is op één moment groter dan 1.5 dBA.

Op de kaart zie je live data van de Amsterdam Sounds-kits en de data van de klasse 1 geluidsmeter die we als referentie gebruiken.

Voetnoten

  1. Het is ook mogelijk om een analoge microfoon direct aan een microcontroller te koppelen via een analoge input op deze microcontroller. Deze hebben alleen vaak een kleinere bit depth (het aantal bits om getallen uit te drukken, bijvoorbeeld 12 bit). Met minder bits kun je minder grote getallen uitdrukken en dit vertaalt zich in minder dynamisch bereik (het verschil tussen minimum en minimum waarde) van de geluidsmeter. Ter vergelijking, audio CD's hebben een 16 bit bit depth wat zich vertaalt in een dynamisch bereik van 96dB. Met 12 bits kom je slechts to 72dB, te weinig voor onze toepassing.
  2. Er wordt voor IoT toepassingen ook steeds meer gebruikt gemaakt van LTE-M. Deze technologie maakt het net als LoRa mogelijk energiezuinig te verzenden, maar dan via een bestaand 4G netwerk. Het voordeel is dat er landelijke dekking is. Een nadeel is dat IoT devices die via dit netwerk werken hebben een simkaart en een abonnement nodig hebben.

About the author