ID.nl logo
Huis

Eigen wifi-scanner bouwen met Raspberry Pi

Je telefoon zendt voortdurend informatie uit over het wifi-punt waar het verbinding mee heeft. Maar je telefoon zendt tegelijkertijd ook informatie uit over wifi-punten waar je in het verléden verbinding mee hebt gehad. Die informatie pluk je zo uit de lucht. Een eigen wifi-scanner bouwen doe je als volgt.

Door: Loran Kloeze

Apparaten zoals telefoons en laptops blijken voortdurend informatie uit te zenden over de wifi-punten waar het in het verleden verbinding mee hebben gehad. Dat komt doordat bijvoorbeeld een telefoon voortdurend zoekt of wifi-punten in de buurt zijn waar eerder contact mee is geweest. Met behulp van enige hard- en software is een scanner te ontwikkelen die registreert met welke wifi-punten telefoons in een straal van ongeveer 30 meter verbinding hebben gehad. Als je nog een ongebruikte router hebt liggen, kun je direct aan de slag.

Mobile station

Het is goed om eerst uit te doeken te doen hoe een wifi-verbinding tot stand komt en welke terminologie daarbij komt kijken. Een mobile station is het apparaat dat verbinding zoekt via wifi zoals een laptop, telefoon of tablet. Het accesspoint biedt wifi aan en dan kun je denken aan een wifi-router of wifi-repeater. Zo’n accesspoint heeft een herkenbare naam zoals ‘gast wifi’ of ‘ziggo2d0fa3’. Die herkenbare naam wordt een ssid genoemd.

Een mobile station maakt verbinding met een accesspoint door een probe-request te sturen waarna een accesspoint antwoordt met een probe-response. Zulke probe-request/responses worden 802.11-managementframes genoemd. In een probe-request vraagt een mobile station of een accesspoint beschikbaar is met een bepaalde ssid. Behalve het ssid staat in een probe-request ook het semi-uniek adres van het mobile station genaamd het mac-adres. Na de uitwisseling van de genoemde probes komt pas eventueel een verbinding op gang.

Een mobile station dat de afgelopen tijd met bijvoorbeeld tien accesspoints verbinding heeft gehad, stuurt elke paar minuten tien probe-requests. In elke probe-request vraagt het mobile station of een accesspoint met een bepaalde ssid in de buurt is. Al die probe-requests worden onversleuteld door de lucht verzonden door mobile stations en kunnen door iedereen worden opgepikt. Iedereen kan dus zien welke ssid’s gezocht worden door welke mobile stations in de buurt. Met de volgende stappen bouw je een scanner om al die ssid’s en mac-adressen uit de lucht op te pikken.

Benodigdheden

De hardware-eisen voor de scanner zijn eenvoudig: een Raspberry Pi met wat accessoires is voldoende. De wifi-hardware moet alle 802.11-managementframes op kunnen pikken uit de lucht. Dat kan met wifi-chips die in 802.11-monitormode zijn te zetten. Gebruik je andere hardware, let dan dus goed op of de aanwezige wifi-chip monitormode ondersteunt. Verder is het belangrijk dat de hardware bestuurd kan worden door Linux. Dat geldt voor praktisch alle routers, maar ook hier is de Pi een goede keuze.

Een voordeel van de Pi is dat je hem mee kunt nemen met eraan gekoppeld een powerpack. Een nadeel van de Pi is dat on-board wifi-chip niet zonder meer monitormode ondersteunt, dus daar is een externe wifi-dongel voor nodig. De nu te bouwen scanner bestaat daarom uit een Raspberry Pi 3B, een 2.5A-voeding, een 8GB-sd-kaart en een RT5370 Wifi-dongel. Voor 70 euro is die combinatie online te bestellen. Je kunt eventueel ook een wifi-dongel met een externe antenne aanschaffen zodat je managementframes van mobile stations op grotere afstand kunt oppikken.

©PXimport

Raspberry Pi als wifi-scanner instellen

Op dit moment heb je een lege sd-kaart waarop Raspbian geïnstalleerd moet worden. Dat is een op Debian gebaseerde distro voor de Pi. Uitgaande van Windows, download je Etcher. Download Raspbian Jessie Lite en controleer de sha1-sum. Installeer Raspbian op de sd-kaart met Etcher. Schuif de sd-kaart in de Pi en koppel de Pi aan een monitor, een toetsenbord, een voeding en een netwerk met internet. Sluit de wifi-dongel nog niet aan. Log in met pi en raspberry en verander je wachtwoord met

passwd

Start

sudo raspi-config

en kies interfacing options / P2 SSH, schakel daarna ssh in. Noteer het ip-adres van de Pi via

ifconfig eth0

Controleer of je met een ssh-client de Pi kunt benaderen zodat je de monitor en het toetsenbord kunt verwijderen. Raspbian gaat willekeurig om met de naamgeving van wifi-interfaces en daar krijg je in een later stadium last van. Schakel daarom de on-board wifi-chip uit om naamconflicten met de wifi-dongel te voorkomen. Voeg daarvoor de regel

dtoverlay=pi3-disable-wifi

toe aan /boot/config.txt en herstart de Pi. Start

iwconfig

en controleer of alleen lo en eth0 in de lijst staan. Sluit de wifi-dongel aan. Nu laat iwconfig de interface wlan0 ook zien. Update apt zodat straks de nieuwste softwareversies worden geïnstalleerd:

sudo apt-get update

Speciaal voor dit artikel is er een git-repository beschikbaar waarin enkele scripts en een webinterface staan. Installeer git met

sudo apt-get install git

en kloon de repo naar de home directory:

cd && git clone https://github.com/LoranKloeze/pcm_wifiscanner

©PXimport

Voordat je verdergaat is het belangrijk te testen of de Pi de managementframes goed ontvangt. Tcpdump is daar de juiste tool voor. Het staat er bekend om tcp/ip-packets te dumpen van een netwerkinterface. Maar tcpdump kan ook andere protocollen interpreteren waaronder 802.11-frames. Daarbij is tcpdump sowieso nodig voor de scripts die je straks installeert.

Tcpdump installeren

Installeer tcpdump met

sudo apt-get install tcpdump

Start tcpdump met:

sudo tcpdump -I -i wlan0 -e type mgt subtype probe-req

Dit staat kortgezegd voor: toon alle probe-requests die wlan0 opvangt. Er verschijnt een lijst met managementframes met bijna achterin de tekst probe request gevolgd door de ssid tussen haakjes. Met de optie -w <bestandsnaam> kan de output van tcpdump eventueel naar een pcap-bestand verstuurd worden om het met Wireshark te kunnen bekijken. Een accesspoint hoeft niet altijd een ssid te hebben en dat verklaart waarom er soms geen ssid bekend is.

Verschijnt er niks, maar staat er ook geen foutmelding? Dan kan het zijn dat er geen mobile stations in de buurt zijn. Wacht eventueel een paar minuten of pak zelf een mobile station zoals een telefoon en schakel de wifi uit/in. Dat zorgt er meestal voor dat de telefoon managementframes begint uit te zenden. Verschijnt de lijst met managementframes wel in beeld dan werkt de hardware goed en is de Pi klaar om verder ingericht te worden.

©PXimport

Managementframes opslaan in database

Alle opgepikte managementframes moeten opgeslagen worden in een lange-termijn-opslag omdat de frames later weer opvraagbaar moeten zijn. De Pi zou bijvoorbeeld ergens neergelegd kunnen worden om hem vervolgens enkele dagen later weer op te halen. Maar ook als de Pi via internet of wifi benaderbaar moet zijn, zal de historie van de opgepikte frames opvraag moeten blijven. Kortom, een database is nodig en in dit geval zijn de twee redelijke opties MySQL en SQLite. SQLite heeft als nadeel dat het slechter omgaat met gelijktijdige verbindingen en die gaan zeker voorkomen als er tegelijkertijd data ingevoerd en uitgelezen gaat worden. Daarom verdient MySQL de voorkeur. Start

sudo apt-get install mysql-server --fix-missing

en volg de aanwijzingen. Onthoud het wachtwoord voor root goed. Installeer de MySQL library voor Python:

sudo apt-get install python-mysqldb

. Installeer de databasetabellen met behulp van het script

~/pcm_wifiscanner/setup_db.py

uit de eerdergenoemde git-repository. Dat script creëert een database met de naam wifiscanner met drie tabellen mobile_stations, ssids en probe_requests. Het script maakt ook een MySQL-gebruiker aan met de naam wifiscan en het wachtwoord wifiscan. In de tabel mobile_stations worden alle gevonden mac-adressen verzameld. Dat adres is semi-uniek. Het is aan te passen, maar dat doen niet veel gebruikers dus gemakshalve wordt het mac-adres gebruikt als unieke identificatie van een mobile stations. In de tabel ssids worden alle gevonden ssid’s verzameld.

In de tabel probe_requests worden alle ssid’s behorende bij een mac-adres verzameld samen met signaalsterke en een timestamp. Het mac-adres wordt als string opgeslagen. Dit had natuurlijk ook gewoon een integer kunnen zijn want een mac-adres is niets anders dan een getal. Maar de database is wat makkelijker te bekijken als de mac-adressen er als strings in staan. Performance en opslagruimte is niet direct prioriteit in dit geval.

Dumpdaemon installeren en instellen

Op de achtergrond moet er een script gaan draaien waarmee de uitvoer van tcpdump uiteindelijk in de database terechtkomt. Deze dumpdaemon moet voldoen aan een paar eisen waarvan de belangrijkste twee zijn dat het moet starten na het booten van de Pi en dat het eeuwig blijft doordraaien, wat er ook gebeurt. Stel dat tcpdump vastloopt dan moet het script tcpdump gewoon weer opstarten. Verder wisselt de dumpdaemon het actieve 802.11-kanaal van wlan0. Sommige mobile stations verzenden namelijk alleen probe-requests over een specifiek kanaal. Installeer en start de dumpdaemon:

sudo cp ~/pcm_wifiscanner/dumpdaemon/dumpdaemon.service /etc/systemd/system &amp;&amp; sudo chmod 664 /etc/systemd/system/dumpdaemon.service &amp;&amp; sudo systemctl daemon-reload &amp;&amp; sudo systemctl enable dumpdaemon.service &amp;&amp; sudo systemctl start dumpdaemon.service

Deze daemon start ~/pcm_wifiscanner/dumpdaemon/dump_mfs.py en blijft deze herstarten na een eventuele crash. Gebruik

sudo journalctl -u dumpdaemon.service

om te controleren of de daemon gestart is. Na een tijdje zal de MySQL-database gegevens gaan bevatten. Controleer dat met de view die aangemaakt werd in setup_db.py:

mysql -u wifiscan -pwifiscan -D wifiscanner -e 'SELECT * FROM view_requests'

Er hoort een leesbare tabel te verschijnen. Staat er niets, wacht dan nog enkele minuten en zorg dat er mobile stations in de buurt zijn. Vanaf nu wordt bij het starten van de Pi de database automatisch gevuld met gevonden probe-requests van mobile stations in de buurt.

©PXimport

Gebruik de webinterface

Alle probe-requests worden nu opgeslagen in een database, maar dat is bijna onleesbaar en onhandelbaar voor een mens. Een webinterface kan realtime tonen welke accesspoints gezocht worden door mobile stations in de buurt. Verder kan het informatie weergeven die de afgelopen tijd is verzameld. Dat geeft antwoord op vragen als: ‘wanneer is deze telefoon voor het laatst in de buurt geweest?’. Een webinterface voor de Pi is het snelst te ontwikkelen in php. Het voert in dit artikel te ver om een volledige webinterface op te tuigen.

In de git-repository is een reeds ontwikkelde webinterface aanwezig. Deze moet alleen nog geïnstalleerd worden op de Pi zodat de interface altijd actief en opvraagbaar is op poort 80. Installeer eerst de webserver Apache op de Pi:

sudo apt-get install apache2

. Controleer of de webserver draait op http://<ip_adres_pi>. Installeer dan php:

sudo apt-get install php5 libapache2-mod-php5 php5-mysql

Herstart Apache2:

sudo systemctl restart apache2

Kopieer de webinterface uit de git-repository naar /var/www/html:

sudo cp -R ~/pcm_wifiscanner/webinterface/* /var/www/html

Controleer of de webinterface nu in de browser verschijnt. De webinterface toont een lijst met mobile stations met daarachter de gevonden accesspoints en het tijdstip dat het mobile station voor het laatst is gezien. Elke vijf seconden vraagt de webinterface aan de Pi of er nieuwe mobile stations zijn gevonden en óf er mobile stations opnieuw zijn gezien. Elke mobile station dat (op)nieuw is gezien, wordt bovenin de tabel geplaatst en de lijst met accesspoints wordt dan bijgewerkt. De twee knoppen bovenin spreken voor zich.

©PXimport

Uitbreidingen

De webinterface is redelijk kaal op dit moment. Er zitten weinig visuele elementen in en het geheel is nogal statisch. Dat nodigt uit om de webinterface naar eigen inzicht aan te passen en te verbeteren. Denk bijvoorbeeld aan het creëren van een tijdlijn per mobile station of het ontwikkelen van een zoekfunctie.

De interface is ontwikkeld in php met Bootstrap als css-framework. Dat maakt het voor iedereen met enige ervaring in web-ontwikkeling mogelijk om de interface naar eigen wens aan te passen. In het bestand pcm_wifiscanner/webinterface/api.php is af te lezen hoe de database bevraagd kan worden. Dat bestand wordt nu gebruikt om de updates op te vragen vanuit de interface. Verder is de Pi eventueel uit te breiden met een gps-module. Op die manier kun je de locatie van de Pi vastleggen per moment dat een mobile station wordt gezien.

Mocht je vervolgens gaan rondrijden met de Pi dan heb je na verloop van tijd een hele database met locaties waar bijvoorbeeld telefoons zijn gezien. De nauwkeurigheid is de straal waarin mobile stations worden gezien door de Pi. Hoe groter het bereik, hoe lager de nauwkeurigheid van de locatie. Een ander voordeel van de gps-module is dat er vaak een realtime-klok in zit waarvan de Pi de actuele tijd kan aflezen.

Wil je echt volledig onafhankelijk zijn van externe bekabeling? Bestel dan een gps-module én een powerpack van 12.000 mAh die 2,1 ampère stroom kan leveren. Dan heb je geen voeding en geen internet nodig.

▼ Volgende artikel
Waarom jouw zuinige A+++-wasdroger straks zomaar een C-label krijgt
© fotomek
Huis

Waarom jouw zuinige A+++-wasdroger straks zomaar een C-label krijgt

Denk je net goed bezig te zijn met een A+++-wasdroger, blijkt die vanaf juli 2025 opeens een magere C te scoren. Wat is hier aan de hand? Geen paniek: je apparaat is niet plotseling minder efficiënt geworden, het energielabel wordt een stuk strenger. In dit artikel lees je waarom de regels zijn veranderd, wat het nieuwe label precies meet en hoe je wél de juiste conclusies trekt bij je volgende aankoop.

Partnerbijdrage - in samenwerking met Bemmel & Kroon

Vanaf 1 juli 2025 – morgen dus! – verandert het energielabel van wasdrogers in heel Europa. De bekende klassen als A+, A++ en A+++ verdwijnen en maken plaats voor een overzichtelijker schaal van A tot en met G. Hierdoor krijgen veel huidige A+++-drogers voortaan een label C. Niet omdat ze slechter presteren, maar omdat de normering strenger en toekomstbestendiger wordt.

Waarom een nieuw energielabel nodig was

Het oude systeem was zijn doel voorbijgeschoten. Doordat fabrikanten steeds energiezuinigere apparaten ontwikkelden, werden er voortdurend plussen aan de A-klasse toegevoegd. Daardoor ontstond een wildgroei aan energielabels die de consument eerder in verwarring bracht dan hielp. Met het nieuwe label keert de rust terug: één heldere schaal die opnieuw ruimte laat aan de top. De zuinigste klasse A blijft voorlopig zelfs leeg, zodat alleen uitzonderlijk efficiënte apparaten die plek mogen innemen.

©Bemmel & Kroon

Wat je ziet op het nieuwe label

Het nieuwe energielabel bevat veel meer informatie dan alleen een letter. Naast de energieklasse geeft het label nu ook inzicht in het verbruik per honderd droogbeurten, gemeten volgens een gestandaardiseerd Eco-programma. Ook de programmaduur, het maximale vulgewicht van de trommel, het geluidsniveau in decibel en de condensatie-efficiëntie staan erop vermeld. Via een QR-code kun je bovendien extra technische details opzoeken in de Europese EPREL-database. Deze toevoegingen zorgen ervoor dat je als consument beter kunt inschatten welk apparaat past bij jouw huishouden en gebruik. Meer informatie vind je op deze pagina.

©Bemmel & Kroon

1. QR-code met link naar de EU database
2. Energie-efficiëntieklasse
3. Energieverbruik in kWh/100 droogcycli*
4. Condensatie-efficiëntieklasse en -percentage

5. Geluidklasse en geluidemissie in dB(A)**
6. Maximale laadcapaciteit (nominale capaciteit in kg)**
7. Duur in uren en minuten**

* Waarden gelden voor een gewogen gemiddelde van halve en volle ladingen met een verhouding van 0,62 (24x volle lading, 76x halve lading).
** Droogcyclus van katoen eco-programma bij volle lading.

Het lastige van vergelijken

Oude en nieuwe energielabels kun je niet zomaar naast elkaar leggen. Een A+++-droger uit 2024 kan volgens de nieuwe testmethodes een label C krijgen, terwijl het apparaat in de praktijk nog steeds even zuinig is. Dat verschil komt puur door de aangescherpte meetnormen, en niet door een verandering in prestaties. Laat je dus niet misleiden door een ogenschijnlijke 'verslechtering' van het label, maar kijk naar de echte verbruiksgegevens en technische kenmerken van jouw wasdroger.

Wat dit voor jouw keuze betekent

Bij het kopen van een nieuwe droger is het dus belangrijk om verder te kijken dan alleen de letter op het label. De vermelding van het energieverbruik per honderd droogcycli geeft je een veel concreter beeld van de stroomkosten op jaarbasis. Ook het geluidsniveau, de capaciteit van de trommel en de duur van het droogprogramma bepalen in sterke mate hoe comfortabel en efficiënt het apparaat in de praktijk is. Dankzij de QR-code kun je bovendien snel en eenvoudig controleren of de technische gegevens aansluiten bij je verwachtingen.

©Viktoria

Slim kiezen met het nieuwe label

De vernieuwde energielabels maken het makkelijker om een slimme, bewuste keuze te maken. Niet alleen zie je in één oogopslag hoe energiezuinig een apparaat is volgens de nieuwste normen, je hebt ook toegang tot de details die er écht toe doen. Zo kun je jouw keuze afstemmen op wat je belangrijk vindt: lage kosten, weinig geluid, korte droogtijd of een groot vulgewicht. Door te letten op de werkelijke prestaties in plaats van alleen op een letter, maak je een duurzame keuze die ook op de lange termijn rendeert.

Wil je hulp bij het kiezen van een energiezuinige droger of persoonlijk advies over welk type het best bij jouw huishouden past? Laat je dan informeren door een specialist, zodat je met vertrouwen de juiste keuze maakt voor nu én de toekomst.

Op zoek naar een écht zuinige droger?

Bekijk de beste deals bij Bemmel & Kroon!
▼ Volgende artikel
Inbouwapparatuur in je keuken? Zo meet je alles precies goed op
© zephyr_p
Huis

Inbouwapparatuur in je keuken? Zo meet je alles precies goed op

Een nieuwe oven, koelkast of vaatwasser kiezen begint niet bij het design of de functies – het begint met een meetlint. Want hoe mooi of geavanceerd een apparaat ook is, als het nét niet past, zit je met een kostbare misser. Een paar millimeter speling kan het verschil maken tussen een perfect passende keuken en een frustrerende inbouwervaring. Met deze meetinstructies weet je zeker dat je straks niet voor verrassingen komt te staan.

Wil je je inbouwapparatuur tot op de millimeter nauwkeurig installeren, dan is precies meten onmisbaar. In dit artikel lees je over:

• Algemene meetprincipes • Waar je precies op moet letten bij een ⋄ inbouwkoelkast of -vriezer  ⋄ inbouwoven en -magnetron  ⋄ inbouwvaatwasser ⋄ inbouw-espressomachine  • Welke veelgemaakte fouten je moet zien te vermijden • Wat je altijd als laatste moet doen

Ook interessant: Een inbouwkoelkast kopen: waar moet je op letten?

Goed meten is het halve werk

Voordat je aan de slag gaat met meten, is het slim om een paar basisregels aan te houden. Gebruik altijd een betrouwbare rolmaat en eventueel een digitale schuifmaat voor extra precisie. Meet de binnenafmetingen van de nis (dus niet de buitenkant van je keukenkast) en noteer breedte, hoogte én diepte.

Houd daarnaast rekening met de ventilatieruimte: meestal is 2 tot 5 cm aan de achterkant en zijkanten nodig. En check of er ruimte is voor stopcontacten, wateraansluitingen en kabeldoorvoeren – die bepalen vaak óók of het apparaat goed kan worden geplaatst.

©Andrey Sinenkiy

Waar moet je op letten per apparaat?

Elk soort inbouwapparaat heeft zijn eigen eisen en aandachtspunten. Hieronder lees je per type waar je bij het opmeten en installeren specifiek op moet letten. Zo kom je niet voor verrassingen te staan.

Inbouwkoelkast of -vriezer

De hoogte van de nis is hier allesbepalend. Veelvoorkomende maten voor inbouwkoelkasten en -vriezers zijn 88, 140 en 178 cm, maar afwijkingen komen vaak voor. Let op het deursysteem: een sleepdeurmechanisme vraagt meestal om iets meer ruimte in de breedte. Diepte is vaak 55 cm, maar modellen met een ventilator achterop kunnen richting de 60 cm gaan.

Inbouwoven of -magnetron

Standaard? Niet helemaal. De nisbreedte is meestal 56 cm, terwijl het frontpaneel iets breder is (ca. 59,5 cm) voor een nette aansluiting. Hoogtes verschillen: compacte ovens zijn 45 cm hoog, standaardmodellen 60 cm. Magnetrons vragen soms extra ruimte aan de bovenkant voor uitstekende bedieningspanelen.

Inbouwvaatwasser

Hier draait het vooral om hoogte. Die varieert tussen 81,5 en 87 cm, met verstelbare poten voor wat speling. Meet ook de plinthoogte (van vloer tot onderkant kast), en vergeet de watertoevoer niet – reken op zo’n 5 cm extra ruimte in de diepte voor de slang.

Inbouw-espressomachine

Kleiner apparaat, maar niettemin precisiewerk. De breedte is vaak rond de 56 cm, maar de diepte varieert sterk. Let vooral op het waterreservoir (dat tot 55 cm diep kan zijn) en op kleppen of deurtjes die naar voren openen: die hebben extra werkruimte nodig.

©Cristina Villar Martin | Ladanifer

Veelgemaakte fouten die je makkelijk voorkomt

Zelfs met zorgvuldige metingen kan het misgaan, vaak doordat kleine details worden vergeten. Denk aan ventilatieruimte, uitstekende stekkers of leidingen die net in de weg zitten. Een handige tip: plak een strook tape op de vloer op de plek waar de achterkant van het apparaat komt, en markeer waar stekkers en leidingen zitten. Zo zie je snel of er iets in de weg zit.

Ook niet onbelangrijk: controleer of de nis waterpas is! Zeker bij koelkasten met uitschuiflades kan een scheve ondergrond voor problemen zorgen. Pas waar nodig je kast of ondervloer aan voordat je installeert.

Bij renovaties gelden vaak afwijkende maten. Oudere keukens hebben soms dikkere wanden of ongebruikelijke dieptes. Meet dus altijd de huidige situatie én de specificaties van je nieuwe apparaat. Twijfel je? Schakel een keukenexpert in, zeker bij combinaties zoals een oven met magnetron, waarbij elk detail telt.

En tot slot: de allerbelangrijkste stap

Het klinkt als een open deur, maar het voorkomt de meeste problemen: meet altijd twee keer! Schrijf je maten op en leg ze naast de officiële productspecificaties. Let daarbij op details als verstelbare voetjes, uitsparingen voor de deur of een uitschuifbaar bedieningspaneel. Zo weet je zeker dat jouw nieuwe inbouwapparaat niet alleen technisch past, maar ook mooi aansluit bij de rest van je keuken. Want uiteindelijk draait het om één ding: alles moet kloppen – tot op de millimeter.