ID.nl logo
Zo maak je een YouTube-audiospeler
© Reshift Digital
Huis

Zo maak je een YouTube-audiospeler

Muziekstreamingdiensten hebben ten opzichte van traditionele muziekdragers zoals cassettes en cd’s natuurlijk een aantal voordelen. Daarentegen hebben de grote drukknoppen, een verlicht lcd-scherm en de fysieke handeling van het verwisselen van een cd of cassettebandje zo ook wel zijn charme. In dit artikel bouwen we een Raspberry Pi om tot een retroapparaat dat de audio van YouTube-video’s kan afspelen. In plaats van cd’s of cassettebandjes gebruiken we rfid-tags om een specifieke YouTube-playlist te kiezen.

Boodschappenlijstje

  • Raspberry Pi Zero W met sd-kaart en adapter (€ 30,- bij Kiwi Electronics);
  • Adafruit Speaker Bonnet (€ 15,50 bij Kiwi Electronics);
  • 2 speakers, bijvoorbeeld 4 ohm 3 watt (€ 1,95 per stuk bij Kiwi Electronics);
  • PN532 NFC/RFID Breakout Board (€ 17,95 bij Kiwi Electronics);
  • 16x2 LCD Display met I²C-backpack (€ 7,- bij Tiny Tronics);
  • 5 (arcade-)drukknoppen, één eventueel met verlichting (€ 2,50 tot € 7,- bij Kiwi Electronics);
  • (Dupont-)draad in verschillende kleuren (€ 1,25 per 2 meter bij Kiwi Electronics);
  • Een behuizing of kistje waar je alles kunt inbouwen. Dit heb je misschien gewoon in huis. Totale kosten: ca. € 100,-

Het hart van de muziekspeler wordt gevormd door een Raspberry Pi Zero W: een van de meest compacte en goedkope, maar minst krachtige telgen van de Raspberry-familie. Hij heeft gelukkig wel nog voldoende capaciteit om alles te doen wat we willen. We beginnen met het uitlezen van een rfid-tag en het afspelen van een YouTube-playlist die met die specifieke tag wordt geassocieerd. We sluiten ook een lcd-scherm aan. Hierop wordt de titel van de video en het volgnummer uit de playlist getoond. De knoppen dienen voor het starten en pauzeren van de muziek, het kiezen van de vorige en volgende track en het regelen van het geluidsvolume. Omdat een Pi Zero W geen ingebouwde speaker of audio-uitgang heeft, gebruiken we een Adafruit Speaker Bonnet: een 3watt-stereoversterker waar je kleine luidsprekers op kunt aansluiten.

Een Python-script stuurt de elektronica aan. Omdat zoveel verschillende onderdelen een complex geheel vormen, wordt elke functie en elk onderdeel eerst apart getest. Pas als het voor elk onderdeel duidelijk is hoe dit los van de rest functioneert, wordt alles samengevoegd.

©PXimport

Software

We gaan ervan uit dat je een geüpdatete installatie van de meest recente versie van Raspberry Pi OS hebt en dat de Raspberry Pi een werkende wifi-verbinding heeft. Let op: in dit artikel gebruiken we de Lite-versie, want een grafische interface hebben we niet nodig en vertraagt de boel in dit geval alleen maar.

Als je nog nooit eerder een sd-kaartje voor een Raspberry Pi hebt geïnstalleerd, dan verwijzen we je naar de officiële site, waar bij het helpgedeelte een duidelijke handleiding te vinden is.

Vervolgens kun je de software, inclusief kortere scriptjes om afzonderlijke onderdelen te testen, binnenhalen vanaf GitHub. Installeer eerst Git met de commandline-opdracht:

sudo apt install git

Daarna download je de benodigde bestanden met dit commando:

git clone https://github.com/ralphcrutzen/YouTube-audio-player.git

De bestanden worden nu in een map genaamd YouTube-audio-player gezet. Het is handig als ze allemaal naar de home-map worden gekopieerd, dus gebruik het volgende commando nadat de bestanden zijn gedownload:

cp YouTube-audio-player/* ~

Heb je ervaring met Git en ga je daadwerkelijk aan de slag met dit project, dan zijn pull requests natuurlijk van harte welkom!

©PXimport

Geluid via de Adafruit Speaker Bonnet

Voordat je de Adafruit Speaker Bonnet op de Raspberry Pi kunt prikken, zul je eerst zelf de pinnen erop moeten solderen. Eerst de dubbele rij aan de onderkant: dit is de verbinding tussen de Speaker Bonnet en de Raspberry Pi. Daarna een enkele rij aan de bovenkant: deze pinnen zorgen ervoor dat de gpio-aansluitingen van de Raspberry Pi beschikbaar komen zodat we alle onderdelen voor de muziekspeler kunnen aansluiten. Verbind ook de speakers met de Speaker Bonnet.

Als dat klusje is geklaard, is het tijd om software-ondersteuning voor I²S te installeren. De volgende commandline-opdracht downloadt daar een script voor en voert het automatisch uit:

curl -sS https://raw.githubusercontent.com/adafruit/Raspberry-Pi-Installer-Scripts/master/i2samp.sh | bash

Op de vraag Activate ‘/dev/zero’ playback in background? antwoord je met N. Daarna moet je de Raspberry Pi opnieuw opstarten en het script voor een tweede keer uitvoeren met behulp van de bovengenoemde commandline-opdracht. Je krijgt nu ook de vraag of je de speakers wilt testen, waarop je uiteraard het antwoord Y geeft.

Als je bij deze test geen geluid hoort, verwijzen we je naar de uitgebreide en duidelijke handleiding op de site van Adafruit. Daar kun je ook terecht als je het hele installatieproces nog eens in wat meer detail wilt teruglezen.

©PXimport

Over I²S en I²C

I²S staat voor inter-IC sound en wordt gebruikt om audiosignalen tussen apparaten te versturen. I²S maakt gebruik van drie verbindingen: word select (WS), clock (SCL) en data (SDA). In het geval van de Adafruit Speaker Bonnet is het alleen van belang dat je weet dat hiervoor de pinnen met de nummers 18, 19 en 21 van de Raspberry Pi worden gebruikt. Die zijn dus niet meer voor andere aansluitingen beschikbaar. I²C is de afkorting van inter-IC bus. Het is een veelgebruikt protocol om elektronica met elkaar te laten communiceren. Zowel het lcd-scherm als de rfid-lezer die we gebruiken zijn I²C-componenten. Een voordeel is dat het slechts twee lijntjes (SDA en SCL) nodig heeft om signalen te versturen. Zonder I²C zouden we 16 verbindingen nodig hebben om het lcd-scherm op de Raspberry Pi aan te sluiten! Een ander voordeel is dat er meerdere I²C-componenten op dezelfde twee SDA- en SCL-pinnen van de Raspberry Pi kunnen worden aangesloten. Elke component heeft zijn eigen unieke I²C-adres.

Zonder I²C zouden we voor het lcd-scherm 16 verbindingen nodig hebben

-

Audio van YouTube afspelen

Nu de Raspberry Pi Zero via de Speaker Bonnet geluid kan afspelen, is het tijd om een Python-script te maken waarmee we naar een YouTube-playlist kunnen luisteren. Daarvoor moet eerst een aantal Python-library’s worden geïnstalleerd: pafy, vlc en youtube-dl.

Met pafy is het mogelijk om een directe link naar de audiostream van een YouTube-video op te halen. Met vlc (dat behalve als python-library vooral bekend is als mediaspeler-software) is het mogelijk om de door pafy verkregen audiostream af te spelen, te pauzeren en het volume aan te passen. Youtube-dl stelt pafy in staat om de audio van YouTube-video’s te streamen.

Om bovenstaande software te installeren, gebruik je de volgende vijf opdrachten op de commandline:

sudo apt install python3-pipsudo pip3 install pafysudo pip3 install python-vlcsudo apt install vlcsudo pip3 install youtube_dl

Je kunt testen of het werkt door het script met de bestandsnaam testpafyvlc.py uit te voeren:

python3 testpafyvlc.py

Het script is te stoppen via Ctrl+C. Eventueel kun je in de programmacode de url vervangen door die van een andere playlist.

©PXimport

Python-scripts uitvoeren

We geven kort uitleg over het bewerken en uitvoeren van een Python-script via de commandline. Python-scripts zijn tekstbestanden met daarin commando’s in de programmeertaal Python. Met het volgende commando start je de teksteditor nano waarbij een leeg bestand met de naam test.py gemaakt en geopend wordt: nano test.py In dit bestand voeg je de volgende twee coderegels toe: *for i in range(10):*print("Hello world!") Daarbij is het belangrijk dat je de tweede regel laat inspringen met vier spaties. Sla het bestand vervolgens op met Ctrl+W en sluit nano af met Ctrl+Q. Om het script uit te voeren gebruik je: python3 test.py Als het goed is, wordt er tien keer de tekst ‘Hello world!’ getoond. Om het script te bewerken, gebruik je weer nano test.py. Extra functies die niet standaard in Python aanwezig zijn, kun je toevoegen met behulp van library’s. Daarvoor wordt het programma pip gebruikt. In dit artikel gebeurt dat bijvoorbeeld bij het installeren van de vlc- en pafy-library’s.

Lcd-scherm aansluiten

Het lcd-scherm is niet alleen handig om het volgnummer in de afspeellijst weer te geven, maar ook om de naam van de video en andere statusinformatie zoals het volume te tonen. Het lcd-scherm dat we gebruiken, maakt gebruik van een I²C-backpack.

Zoals je in het schema kunt zien, heb je vier kabeltjes nodig. De manier waarop je het scherm op de Pi aansluit ligt voor de hand: SDA naar SDA, SCL naar SCL, VCC naar 5V en natuurlijk ook GND naar GND. Op zowel het schermpje als de Speaker Bonnet staan deze aansluitingen duidelijk aangegeven. Het is wel aan te raden om eerst de Pi uit te schakelen met het commando sudo shutdown now en vervolgens de stroom eraf te halen wanneer je dingen gaat aansluiten.

©PXimport

I²C installeren

Om I²C op een Raspberry Pi te kunnen gebruiken en het lcd-scherm aan de praat te krijgen, is aanvullende software nodig. Deze download en installeer je als volgt:

git clone https://github.com/the-raspberry-pi-guy/lcd.gitcd lcdsudo sh install.sh

Aan het einde van het installatiescript wordt de Raspberry Pi vanzelf opnieuw opgestart. Daarna installeren we met de volgende commando’s eerst ondersteuning voor I²C voor versie 3 van Python en een hulpprogramma om te testen of het scherm door de Raspberry Pi wordt herkend.

sudo apt install python3-smbussudo apt install i2c-tools

Voer nu het commando sudo raspi-config uit. Ga naar Interfacing Options / I2C en kies vervolgens Yes om I²C in te schakelen. Keer via Finish terug naar de commandline.

Lcd-scherm testen

Je kunt nu testen of het lcd-scherm wordt herkend met het commando:

sudo i2cdetect -y 1

In de tabel die getoond wordt, kun je het I²C-adres van het lcd-scherm aflezen, in ons geval is dat 27. Dit adres kun je ook terug vinden op regel 25 in het Python-script met de naam lcddriver.py.

Om ons testscript uit te voeren, moet je eerst twee bestanden van de lcd-directory naar de home-directory kopiëren:

cp lcd/lcddriver.py lcd/i2c_lib.py ~

Het lcd-scherm test je met het commando python3 testlcd.py, dat je in het begin van dit artikel bij GitHub hebt gedownload. Stop het script met Ctrl+C.

Als er bij het uitvoeren van het testscript geen tekst op het lcd-scherm komt te staan, kijk dan of het juiste I²C-adres in lcddriver.py staat. Ook moet je ervoor zorgen dat de bestanden lcddriver.py en i2c_lib.py in dezelfde directory als het testscript staan.

©PXimport

Bedieningsknoppen gebruiken

We kijken nu naar hoe je met een Python-script kunt reageren op een druk op een knop. Het voorbeeldscript heet testbutton.py en is een onderdeel van de bestanden die je eerder van GitHub hebt gedownload. Om de gpio-pinnen in een Python-script te kunnen gebruiken, moet er eerst weer een library worden geïnstalleerd:

sudo apt install python3-rpi.gpio

In het testscript gebruiken we de knop met het ingebouwde ledje als schakelaar om het lampje aan en uit te doen. De knop heeft vier aansluitingen: de + en de – voor het lampje en nog twee aansluitingen voor de knop zelf. Sluit de + van het lampje aan op GPIO4 en de – op een GND-pin. De aansluitingen van de knop komen op GPIO27 en een andere GND-pin. Bij knoppen zonder lampje werkt het script trouwens ook, want de status van de lamp wordt tevens op je monitor weergegeven.

©PXimport

Knoppen-jargon: debouncing en interrupts

Door de knop in te drukken wordt er een verbinding tussen de twee pinnen gemaakt, waardoor de spanning tussen de pinnen van 0 naar 3,3 V gaat. Dat gebeurt echter niet netjes en geleidelijk. Integendeel, de spanning springt een zeer korte tijd een aantal keer op en neer. Dat kan tot gevolg hebben dat de knop te gevoelig reageert. Om dit probleem op te lossen, maken we gebruik van een programmeertechniek die ‘debouncing’ heet: als binnen een aantal milliseconden na het moment dat de knop werd gebruikt opnieuw een spanningswisseling wordt waargenomen, dan wordt deze door het programma genegeerd. Op het moment dat je de knop indrukt, wordt in het voorbeeldscript een zogenoemde interrupt geactiveerd. Dat wil zeggen dat er direct op een gebeurtenis (het indrukken) wordt gereageerd, zelfs als het programma nog met andere taken bezig is. Op dat moment wordt er een callback-functie uitgevoerd. Dat is een stukje programmacode dat ervoor zorgt dat er een bepaalde actie wordt uitgevoerd: het lampje gaat aan. In button.py wordt dit alles nog eens toegelicht in de vorm van commentaarregels, beginnend met een #, tussen de programmacode.

Rfid-kaartlezer aansluiten

De rfid-lezer communiceert, net als het lcd-scherm, ook via I²C met de Raspberry Pi. Het handige van I²C is dat je meerdere apparaten op dezelfde pinnen van de Raspberry Pi kunt aansluiten. De aansluitingen die gelijk zijn, worden eerst naar één punt op een breadboard of printplaatje geleid en van daaruit gaan ze naar de Raspberry Pi toe.

Wanneer je beide onderdelen hebt aangesloten, kun je weer met de opdracht sudo i2cdetect -y 1 controleren welk I²C-adres elk apparaat heeft. Bij ons krijgt de rfid-lezer het adres 24 toegewezen. Dit adres hebben we deze keer niet nodig, omdat de software die we in de volgende stap gaan installeren dit automatisch detecteert.

©PXimport

Met I²C kun je meerdere apparaatjes op dezelfde pinnen aansluiten

-

Rfid-tags lezen

Om daadwerkelijk tags te kunnen lezen, hebben we natuurlijk weer een extra library nodig. Installeer deze met:

sudo pip3 install pn532pi

Met het script testrfid.py kun je voor elke tag die je tegen de lezer houdt het unieke ID zien. Noteer deze ID’s, want je hebt ze nodig in de definitieve versie van het script voor de muziekspeler.

©PXimport

Alle hardware samenvoegen

Wanneer je alles in een mooie behuizing (een houten schatkistje bijvoorbeeld) gaat inbouwen, wil je dat alle kabels stevig vast blijven zitten. Het is dan verstandig om geen breadboard te gebruiken, maar alles op een printplaatje te solderen. Deze kun je ook gebruiken voor de GND-aansluitingen van de vijf knoppen en het ledje. Op de foto zie je dat we eerst diverse pinnetjes op een pcb hebben gesoldeerd; hierop worden dan de kabeltjes met Dupont-stekkers aangesloten. Wanneer alles is aangesloten, is het verstandig om de testscrips voor het geluid (testpafyvlc.py), het scherm (testlcd.py), de knop (testbutton.py) en de tag-lezer (testrfid.py) nog eens uit te voeren, zodat je zeker weet dat alles ook nu nog steeds werkt. Want het belangrijkste gaat nu komen: het script dat alles bij elkaar brengt.

©PXimport

Het alles-in-1 Python-script

Het uiteindelijke script dat ervoor zorgt dat alle onderdelen samenwerken heet ytplayer.py. Het gaat te ver om in dit artikel alle programmode in dit bestand toe te lichten. Daarom staan er commentaarregels in de code, beginnend met een hekje #. Daarmee wordt hopelijk duidelijk genoeg uitgelegd hoe het script werkt. Ook vind je rond regel 80 de plek waar je zelf de ID’s van de rfid-tags en de links naar de bijbehorende YouTube-playlists moet invullen. 

©PXimport

Automatisch opstarten

Om ervoor te zorgen dat het script automatisch wordt uitgevoerd zodra de Raspberry Pi is opgestart, moet je het bestand /etc/rc.local bewerken. Gebruik een teksteditor (nano bijvoorbeeld) om dit bestand te doen:

sudo nano /etc/rc.local

Voeg daarna de volgende regel toe aan het einde, maar let er op dat je exit 0 op de allerlaatste regel laat staan.

python3 /home/pi/ytplayer.py &

De ampersand (&) op het einde is belangrijk, want deze zorgt ervoor dat het programma gelijktijdig met de overige opstartprocessen wordt uitgevoerd. Wanneer je dit teken weg laat, zal de Pi niet volledig opstarten.

Gebruik Ctrl+X, dan Y en dan Enter om het bestand op te slaan, en vervolgens sudo reboot om de Pi opnieuw op te starten om te testen of het werkt.

©PXimport

Tot slot

Het is niet lastig om elk onderdeel los van de rest werkend te krijgen, want er zijn veel duidelijke handleidingen op internet te vinden. Maar op het moment dat je meerdere onderdelen wil laten samenwerken, ben je vaak op je eigen creativiteit en vindingrijkheid aangewezen om oplossingen voor problemen te vinden. Vaak lukt dat, maar helaas niet altijd. Het is bijvoorbeeld niet gelukt om te achterhalen waarom het lcd-scherm soms vreemde tekens vertoont. En bij het afspelen van een track zijn de eerste paar seconden nog wat haperingen in het geluid te horen. Maar omdat alle programmacode op GitHub beschikbaar is, zouden die problemen op het moment dat je dit leest misschien al lang door iemand opgelost kunnen zijn.

▼ Volgende artikel
Waar voor je geld: 5 fonduesets voor een gezellige avond
© M.studio - stock.adobe.com
Huis

Waar voor je geld: 5 fonduesets voor een gezellige avond

Bij ID.nl zijn we gek op producten waar je niet de hoofdprijs voor betaalt. Daarom gaan we een paar keer per week voor je op zoek naar zulke aanbiedingen. Met Kerst en Oud en Nieuw voor de deur is het weer tijd om te bedenken wat je wil gaan eten. Wat dacht je van fondueen? Met deze vijf fonduesets maak je indruk op je vrienden en familie.

Met een fondueset smelt je de lekkerste kazen en dep je je broodje of vlees in bouillon of kaas. Fonduesets zijn de ultieme sfeermakers voor de feestdagen, of het nu met vrienden is of familie en of je kiest voor romige kaas, bouillon of chocolade; het is op en top genieten. Een absolute must-have voor elke levensgenieter en perfect voor de feestdagen. Wij vonden vijf betaalbare fonduesets voor je.

Boska Elektrische Fondueset Pro - 8 personen

De Boska Elektrische Fondueset Pro is ontworpen voor liefhebbers van kaas‑ en vleesfondue. De set bestaat uit een geëmailleerde gietijzeren pot met een inhoud van circa 2,15 liter, waardoor je genoeg ruimte hebt voor een volledige kaasfondue of bouillon. Het verwarmingselement is elektrisch en beschikt over een instelbare thermostaat; hierdoor kun je de temperatuur naar wens aanpassen voor verschillende soorten fondue. Een handig indicatielampje laat zien wanneer het element aan staat. De pot staat op een stevige basis en heeft een extra lang snoer van twee meter, zodat je hem makkelijk midden op tafel plaatst. Bij de set worden acht fonduevorken geleverd die zijn voorzien van gekleurde markeringen. De combinatie van gietijzer en emaille zorgt voor een gelijkmatige warmteverdeling en eenvoudige reiniging.

Swissmar Lausanne 11‑delige fondueset - 6 personen

De Zwitserse fabrikant Swissmar levert met de Lausanne een 11‑delige fondueset die is gericht op traditioneel fonduen. De set bestaat uit een koperen pan met een geëmailleerde binnenkant en een zware RVS‑branderschaal. Doordat koper de warmte snel opneemt en verdeelt, is de fondue snel op temperatuur. De pan staat op een robuuste stalen houder waarin een brander met regelaar zit; hiermee pas je de vlamsterkte aan voor kaas‑, bouillon‑ of chocoladefondue. In de doos zitten verschillende accessoires, waaronder zes vorkjes en een branderschaal. Deze set is niet elektrisch, waardoor je hem zelfs buiten of op de camping kunt gebruiken.

Mäser Fondueset - 4 personen

De fondueset van Mäser bestaat uit een roestvrijstalen pan met bijbehorende brander. Roestvrij staal is slijtvast en eenvoudig te reinigen; je kunt de pan na gebruik in de vaatwasser zetten. De set heeft een inhoud van rond één liter, voldoende voor een kaas‑ of chocoladefondue voor een klein gezelschap. Er worden meerdere fonduevorkjes meegeleverd met gekleurde puntjes om ze te onderscheiden. Dankzij de stevige basis staat de pan stabiel op tafel, terwijl de gelijkmatige warmteverdeling voorkomt dat de inhoud aanbrandt. Omdat het geen elektrisch toestel is, gebruik je de brander met brandgel of spiritus.

Baumalu 385050 fondueset - 6 personen

Deze fondueset van Baumalu bestaat uit een zware gietijzeren pan die op een decoratieve houten plaat staat. Gietijzer houdt de warmte goed vast en is geschikt voor zowel kaas‑ als chocoladefondue. De bijgeleverde brander plaats je onder de pan; je regelt de vlamsterkte met een draaiknop. Omdat de pot stevig op de houten plaat staat, blijft hij stabiel en kras je niet op de tafel. In de set zitten fonduevorkjes met houten handvatten.

Tristar FO‑1107 Fonduepan - 8 personen

De Tristar FO‑1107 is een elektrische fondueset met een inhoud van ongeveer 1,5 liter. Je gebruikt deze pan voor verschillende soorten fondue, zoals kaas, bouillon of chocolade. Het verwarmingselement levert circa 1000 watt en heeft een instelbare thermostaat, zodat je de temperatuur kunt aanpassen aan het type fondue. Een indicatielampje geeft aan wanneer het apparaat actief is. De pan heeft een antiaanbaklaag, een cool‑touch handgreep en staat op een antislipvoet voor extra stabiliteit. Er worden acht fonduevorkjes meegeleverd en door de ring bovenop blijven de vorkjes op hun plek tijdens het fonduen.

▼ Volgende artikel
Van papier tot pixels: altijd je administratie op orde
© px.palette
Huis

Van papier tot pixels: altijd je administratie op orde

Papieren facturen, garantiebonnetjes, contracten en andere documenten slingeren al snel overal rond. Waarom niet alles digitaal bewaren, zodat je het in enkele klikken terugvindt? In dit artikel vind je gratis tools en praktische tips om je administratie te scannen, te taggen, doorzoekbaar te maken en veilig op te slaan zonder veel gedoe.

Wat gaan we doen?

We geven diverse tips en tools om administratieve en andere papieren documenten efficiënt en ordelijk te digitaliseren. Dat gaat van scannen en OCR’en tot organiseren, automatiseren, back-uppen en meer.

Tip 1: Scanner

Stel, je wilt een hele reeks documenten digitaliseren, zoals garantiebewijzen of facturen. We gaan ervan uit dat je een scanner in huis hebt, eventueel als onderdeel van een all-in-one-printer. Zo’n toestel is goed geschikt voor stabiele, rechte scans, en een (soms optionele) documentinvoer maakt het extra handig bij grotere aantallen. Je scant het best op zo’n 300 dpi, in grijswaarden of kleur, en bewaart het resultaat bij voorkeur als pdf. Helaas genereert de meegeleverde scansoftware vaak alleen pdf’s met een afbeelding van de tekst, waardoor je die later niet kunt doorzoeken of kopiëren.

©OttoPles

Er bestaan ook heel wat printers met een ingebouwde scanner.

Tip 2: NAPS2

Gebruik in dit geval beter scansoftware met geïntegreerde OCR, zoals het gratis en opensource NAPS2 (www.naps2.com, Windows, macOS en Linux). Start de app, klik op Nieuw profiel en op Apparaat kiezen om je scanner te selecteren. Je kunt kiezen uit drie drivertypes: WIA (ingebouwd in Windows, beperkt), TWAIN (krachtiger) en ESCL (voor moderne netwerk- of wifi-scanners, vergelijkbaar met Apple AirScan). Doorgaans kies je voor TWAIN. Stel de scanopties in en open Geavanceerd voor extra instellingen. Typ een profielnaam en bevestig met OK.

Klik nu op de knop OCR en download de gewenste talen, zoals Dutch en English. Plaats een vinkje bij PDFs doorzoekbaar maken middels OCR en kies taal en modus (Snel of Beste). Vink ook de andere opties aan en druk op Scannen.

Klik daarna op het pijlknopje bij PDF opslaan en kies PDF-instellingen. Vul bij Standaard bestandspad een bestandsnaam in – gebruik eventueel ‘placeholders’ als $(YY)-$(MM)-$(DD) – en kies bij Compatibiliteit bij voorkeur PDF/A, zoals PDF/A-2b. Dit formaat slaat namelijk alle lettertypes, kleurprofielen en structuurinformatie in het bestand zelf op, wat ‘garandeert’ dat je het document ook jaren later nog in zijn oorspronkelijke vorm te zien krijgt. Vink Onthoud deze instellingen aan, klik op OK, selecteer de scans en kies PDF opslaan. Het is trouwens ook mogelijk om een (niet-doorzoekbaar) pdf-bestand in NAPS2 te importeren, dit vervolgens te OCR’en en als PDF/A te bewaren.

NAPS2 is prima opensource-scansoftware, met geïntegreerde meertalige OCR-module.

Pdf-printer

De focus van dit artikel ligt op papieren brondocumenten, maar we willen zeker ook (de gratis versie van) PDFCreator vermelden (www.pdfforge.org/pdfcreator). Je kunt deze namelijk als virtuele printer installeren om zo allerlei documenttypen om te zetten naar PDF(/A).

Start na installatie de app, open het tabblad Printer, vink PDFCreator aan en kies via de moersleutel het bestaande profiel PDF/A (archiefbestand). Bevestig met Opslaan en sluit de app. Open nu een document in een willekeurige toepassing, open het afdrukvenster en selecteer PDFCreator als printer. Een dialoogvenster opent waarin je het document meteen kunt opslaan als PDF/A-bestand (standaardversie 2b, maar dit is aanpasbaar via het uitklapmenu).

Je kunt zo’n virtuele printer ook inzetten om documenten automatisch als PDF/A op te slaan in een zelf te bepalen map. Maak hiervoor in PDFCreator op het tabblad Profielen een nieuw profiel aan (bijvoorbeeld PDF/A in map Facturen), kies bijvoorbeeld PDF/A-2b als formaat en geef tevens een specifieke opslaglocatie op. Koppel dit profiel op het tabblad Printer aan een nieuwe virtuele printer (bijvoorbeeld PDF/A-facturen). Zo maak je meerdere profielen en printers aan, waarbij elk PDF/A-bestand automatisch in een andere map terechtkomt.

Je kunt ook meerdere virtuele printers aanmaken, telkens met een aangepast profiel.

Tip 3: Mobiel

Een vlakbedscanner is zeker handig, maar niet noodzakelijk, want je kunt tegenwoordig ook prima scannen met je smartphone. Met de juiste app wordt het beeld automatisch ge-OCR’d en indien nodig rechtgetrokken. Een van de betere apps is Adobe Scan, beschikbaar via www.kwikr.nl/adobescan of in de appstore van Android en iOS.

Installeer en start de app. De gratis versie volstaat meestal, al laat de betaalde versie (circa 10 euro per maand) je onder meer tot 100 pagina’s per bestand scannen (in plaats van 25) en pdf’s exporteren naar Office 365-formaten.

Meld je aan, bijvoorbeeld via je Google-account, en tik op Scan. Je kunt het resultaat onder meer uitsnijden, roteren en de helderheid en het contrast aanpassen. Kies Blijven scannen voor extra pagina’s of tik op PDF opslaan zodra je klaar bent. De pdf belandt standaard in je Adobe-account (https://acrobat.adobe.com), maar je kunt het bestand ook delen of (via Meer) bijvoorbeeld opslaan in Google Drive. Het pdf-bestand is standaard doorzoekbaar, controleer bij Voorkeuren of Tekstherkenning uitvoeren op opgeslagen PDF wel is ingeschakeld, maar het is geen PDF/A. Wil je dat, dan kun je het bestand alsnog omzetten met reeds eerder vermelde, gratis tools als NAPS2 of PDFCreator (zie ook kader ‘Pdf-printer’).

Met (het gratis) Adobe Scan kun je ook meerdere pagina’s laten OCR’en en in één pdf bewaren.

Tip 4: Tags koppelen

Om naderhand snel het gewenste document te kunnen terugvinden, zorg je er dus allereerst voor dat je documenten doorzoekbaar zijn (bij pdf’s kan dit via OCR: zie tip 2). Je kunt gerust ook zelf extra trefwoorden, zeg maar digitale kleefbriefjes, aan je documenten koppelen.

Met een tool als TagSpaces (www.tagspaces.org, Windows, macOS en Linux) tag je in één keer meerdere bestanden en mappen met eigen trefwoorden. Bestaande tags voeg je simpelweg toe door ze naar bestanden te slepen. TagSpaces heeft ook een krachtige zoekfunctie waarmee je snel documenten met de juiste tag(s) terugvindt.

Handig zijn ook ‘smart tags’: je bepaalt dan zelf de criteria, waarna nieuwe bestanden automatisch de juiste tags krijgen. Deze tags kun je opslaan in aparte sidecar-bestanden (JSON) of je voegt ze achteraan de bestandsnaam toe: een bestand als aanpassing.pdf bijvoorbeeld wordt dan iets als aanpassing[huur indexering].pdf. De betaalde Pro-versie (42 euro per jaar) heeft enkele geavanceerde opties, zoals het toekennen van tags op basis van lokale AI-taalmodellen.

TagSpaces is een krachtige taggingtool, maar met een zekere leercurve.

Tip 5: Tags zoeken

Vind je TagSpaces toch wat overkill, dan zijn er andere manieren om documenten van (doorzoekbare) trefwoorden te voorzien. Je kunt in Verkenner (met sneltoets F2) trefwoorden toevoegen aan de bestandsnaam, maar het kan ook anders. Klik met rechts op een bestand of selectie, kies Eigenschappen en open het tabblad Details. Afhankelijk van het bestandstype kun je hier tags toevoegen bij velden als Titel, Onderwerp, Labels, Categorieën en Opmerkingen. Dit werkt goed bij bijvoorbeeld Office-bestanden en afbeeldingen, maar pdf-documenten laten zich minder makkelijk taggen. Dit kan bijvoorbeeld wel bij het aanmaken van zo’n document vanuit NAPS2 of PDFCreator. Bij deze laatste kun je bij een profiel titel, auteur, onderwerp en trefwoorden meegeven.

Vanuit de Verkenner kun je vervolgens zoeken op deze tags, ook in pdf-bestanden (ook al zijn ze niet zichtbaar op het tabblad Details). Navigeer naar de juiste map of het station en typ in de zoekbalk van de Verkenner labels:<trefwoord>.

Werkt dit niet, dan ontbreekt waarschijnlijk een geschikt zoekfilter. Je kunt zo’n Adobe-IFilter alsnog installeren via deze link. Je kunt dit controleren vanuit het Configuratiescherm: open Indexeringsopties, klik op Geavanceerd en scrol op het tabblad Bestandstypen naar pdf. Daar hoort PDF Filter (of eventueel Reader Search Handler) te staan, en Eigenschappen en inhoud van het bestand indexeren moet zijn ingeschakeld. Zorg er tevens voor dat alle gewenste mappen zijn opgenomen bij Deze locaties beheren (via de knop Wijzigen).

Met het juiste filter kun je ook vanuit de Verkenner naar tags binnen pdf-documenten zoeken.

Tip 6: Opslagstructuur

Je documenten zijn nu doorzoekbaar en mogelijk ook getagd, maar er is nog een derde belangrijk aspect: bewaar alles met logische bestandsnamen in een doordachte mappenstructuur.

Voor bestandsnamen plaats je de belangrijkste info, zoals projectnaam en/of datum, liefst vooraan. Gebruik de ISO-notatie (JJJJ-MM-DD), zodat je bestanden makkelijk chronologisch sorteert. Zoals vermeld in tips 4 en 5 kun je de naam aanvullen met trefwoorden, gescheiden door een koppelteken of onderstrepingsteken (vermijd spaties of speciale tekens). Eventueel voeg je achteraan een versienummer toe, zoals _v1. Een voorbeeld is 2025-08-31_Huurcontract_Appartement_v1.pdf.

Breng de bestanden onder in een logische structuur, bijvoorbeeld op datum, per project of klant, of per categorie (zoals Huis, Werk, Gezondheid, Financieel enzovoort). Je zult merken: dankzij consistente map- en bestandsnamen vind je documenten sneller terug.

Sneller zoeken binnen een logische mappenstructuur (en met labels).

Tip 7: Organisatietool

Je hebt een logische mappenhiërarchie opgezet, maar je moet natuurlijk ook zorgen dat documenten in de juiste map terechtkomen. Externe hulp van een organisatietool als het gratis Dropit (www.dropitproject.com, werkt nog onder Windows 11) of File Juggler (www.filejuggler.com, betaalde versie 44 euro) kan daarbij handig zijn. We bekijken kort deze laatste.

Start de geïnstalleerde tool op en klik op Add rule (of eerst op Add rule group als je de regels wilt categoriseren). Stel dat je alle pdf’s die in de map \gedeeld terechtkomen automatisch wilt verplaatsen op basis van trefwoorden. Vul dan Description in en klik op de knop met drie puntjes bij Monitor om de bronmap te kiezen. Via het tandwielpictogram kun je eventueel Examine everything regularly <frequentie> between checks instellen, wat ook goed werkt voor gedeelde netwerkmappen.

Klik daarna op de plus-knop bij If en stel het filtercriterium in, bijvoorbeeld: Any of the following / Other / PDF Properties / Keywords. Bevestig met Insert en geef het trefwoord op bij Contains / Text. Je kunt via de plus-knop extra filters instellen en kiezen tussen Any of All of the following.

Leg nu de gewenste actie vast bij Then: klik op de plusknop, kies bijvoorbeeld Move file en vul de doelmap in bij to. Bewaar je filter met Save and close. Op het tabblad Rules klik je op de pijlknop naast je filter om het te activeren. Test het resultaat.

Organiseer je bestanden automatisch op basis van eigen, gecombineerde zoekfilters.

DMS

Met de tips rond doorzoekbaar maken, taggen en ordenen uit dit artikel, en met tools als TagSpaces en File Juggler, raak je al ver. Wil je je administratie nog professioneler organiseren, dan kom je uit bij een volwaardig Document Management System, kortweg DMS. Flexibele opensource-tools zijn bijvoorbeeld Papermerge en Paperless NGX. Beide installeer je het makkelijkst op Windows via Docker (Docker Desktop for Windows, met WSL2).

Na installatie bereik je het browserdashboard van de tool standaard via http://<ip-adres>:8000. Beide tools bieden OCR aan om gescande documenten doorzoekbaar te maken. Je documenten kunnen ook automatisch worden verwerkt op basis van eigen filters, en er zijn krachtige zoekopties ingebouwd. Beide tools kun je meteen uitproberen via een online demo (log in met demo / demo).

Een krachtig DMS als Paperless-ngx maakt het bijhouden van je administratie veel efficiënter.

Tip 8: Zoektool

Zoals gezegd laat de ingebouwde zoektool in Windows je met de juiste filters en instellingen ook zoeken naar metadata, zoals trefwoorden in pdf’s. Met zoekfilters en operatoren zijn zelfs complexe opdrachten mogelijk, zoals labels:factuur auteur:Toon van Daele grootte:>300kB gewijzigdop:dit jaar. Echt gebruiksvriendelijk of handig is deze functie helaas niet. Je bent dan beter af met een tool als Agent Ransack (alias Filelocator Pro, www.mythicsoft.com/agentransack). Ook de gratis Lite-versie ondersteunt netwerkshares, Booleaanse operatoren, reguliere expressies en zoeken naar metadata via IFilter.

Start de tool, zet deze op Expert en open het tabblad Hoofd. Vul bij Bevat tekst je zoekterm in en bij Zoek in het gewenste station of de map. Eventueel kun je ook filters instellen voor Grootte en Gewijzigd Na / Voor. Op het tabblad Datum voeg je extra tijdsfilters toe en op het tabblad Opties vink je zeker Office en PDF documenten aan. Vul je bij Bevat tekst een pdf-trefwoord in, dan vindt Agent Ransack ook de bijbehorende bestanden. In het tabblad Treffers (rechtsonder) zie je bij gevonden bestanden bijvoorbeeld Keywords: <gezocht_trefwoord>. Met een dubbelklik open je meteen het bestand.

Agent Ransack laat gecombineerde en krachtige filters toe en zoekt ook in metadata.

Tip 9: Back-ups

Je administratie digitaliseren is een goed idee, maar dit is pas veilig met een degelijke back-upstrategie. Het best hanteer je hier de 3-2-1-regel: drie datakopieën (hoofdversie en twee back-ups), op twee soorten media, waarvan minstens één kopie op een andere locatie. Zo bescherm je je data tegen hardwarestoringen, ransomware, brand en diefstal.

Een uitstekende gratis en opensource back-uptool is Duplicati (www.duplicati.com, Windows en macOS), die we zelf al jaren dagelijks geautomatiseerd gebruiken voor back-ups naar zowel een netwerkschijf (NAS) als de cloud (Google Drive).

Installeer het gedownloade msi-bestand. Klik na afloop met rechts op het programma-pictogram in het Windows-systeemvak en kies Open om het browserdashboard te starten. Verschijnt First Run Setup, klik dan op Yes en stel een wachtwoord in. Je kunt Duplicati in je browser openen via http://localhost:8200. Wil je ook toegang vanaf een andere pc in je netwerk, open Instellingen in Duplicati en vink Remote toegang toestaan aan, zodat het dashboard bereikbaar is via http://<intern_ip-adres>:8200. Klik vervolgens op +Back-up toevoegen, laat Een nieuwe back-up instellen geselecteerd en vul een naam in. Schakel bij opslag buiten je netwerk versleuteling in. Geef vervolgens doel- en bronlocatie op en bepaal wanneer en hoe vaak de back-up wordt uitgevoerd. Duplicati maakt standaard incrementele back-ups, waarbij alleen nieuwe of gewijzigde data worden opgeslagen, waardoor het back-upvolume beperkt blijft.

Duplicati is een betrouwbare, gebruiksvriendelijke en flexibele back-uptool.

Tip 10: Beveiliging

Een goede back-upstrategie is cruciaal om je data veilig te bewaren, maar veiligheid draait ook om privacy. De beste manier om te voorkomen dat onbevoegden inzage krijgen in je (medische, financiële …) gegevens is versleuteling. In tip 9 vermeldden we al dat je in Duplicati back-ups automatisch kunt versleutelen met sterke AES-256-encryptie. Maar ook de data op je originele opslaglocatie wil je wellicht beveiligen.

Hiervoor kun je een gratis opensource-tool als VeraCrypt gebruiken, die naast containerbestanden ook complete partities of schijven kan versleutelen met sterke algoritmen als AES-256. We hebben niet de ruimte hier verder op in te gaan, maar hier vind je meer uitleg. Ook handig is Cryptomator om via je lokale synchronisatiemap data te versleutelen bij cloudopslagdiensten als Google Drive, OneDrive of Dropbox. Je vindt hier meer uitleg daarover.

Daarnaast kun je voor diverse documenttypes ook individuele bestanden beveiligen met een wachtwoord, al is dit vaak minder robuust dan een volledig versleutelde opslaglocatie. Dit kan bijvoorbeeld vanuit verschillende Office-applicaties, maar ook met pdf-tools zoals NAPS2 (bij PDF-instellingen vink je PDF versleutelen aan) en PDFCreator (bij Profielen, via Actie toevoegen / Versleuteling).

Ook in NAPS2 kun je pdf-documenten met een wachtwoord beveiligen.