ID.nl logo
Maak een weerstation met je Arduino
© PXimport
Zekerheid & gemak

Maak een weerstation met je Arduino

Eerder schreven we al over de Arduino: een goedkope programmeerbare microcontroller die de basis vormt voor zelf in elkaar geknutselde projecten. Het kan nog leuker: een Arduino met ingebouwde wifi-chip maakt het mogelijk om ook aan internet verbonden projectjes te maken! We gaan aan de slag met het ontwikkelbordje NodeMCU om een weerstation te maken.

Zoals gezegd besteedden we al eerder in Computer!Totaal aandacht aan Arduino, een opensource elektronicaplatform dat je zelf kunt programmeren en kunt gebruiken in combinatie met elektronische componenten. Hier kun je op onze website een aantal artikelen over Arduino lezen. Erg leuk om mee te knutselen, maar het heeft één nadeel: het blijft door gebrek aan netwerkmogelijkheden bij lokale projecten.

Een Arduino met wifi opent deuren naar nieuwe mogelijkheden. Je kunt informatie van internet ophalen en tonen, of je Arduino bijvoorbeeld inzetten als sensor die jou waarschuwingen geef, ook als je buitenshuis bent. In deze cursus gaan we een dergelijke Arduino met wifi inzetten voor twee met internet verbonden projecten die beide met weersinformatie te maken hebben. We hebben gekozen voor de NodeMCU.

Het project Weeralarm laat je aan de hand van een brandend ledje in één oogopslag zien of er in jouw regio momenteel een weeralarm van kracht is, waarbij uiteraard onderscheid gemaakt wordt tussen de verschillende kleuren die het KNMI hanteert. Uiteraard zijn ledjes niet de enige manier waarop je informatie kunt tonen. In het tweede project, Weermonitor, gebruiken we daarom een oled-schermpje waarop we weersinformatie van een zelfgekozen weerstation in Nederland tonen. Eerst wat algemene uitleg.

01 Wat is de NodeMCU?

De NodeMCU is technisch gezien geen Arduino, maar een ontwikkelbordje gebaseerd op de ESP8266 wifi-module. Je kunt deze wifi-module ook los kopen en koppelen met een Arduino. De chip is echter zo krachtig dat hij ook functioneert als een complete microcontroller. Deze chip is herkenbaar als een zilverkleurig blokje op de printplaat.

Naast de ESP8266 bevat de NodeMCU een usb-interface voor de communicatie met de ontwikkelomgeving, een voedingscircuit en twee rijen aansluitpinnen voor gebruik op een breadboard. Het NodeMCU-ontwikkelbordje is oorspronkelijk ontwikkeld voor de NodeMCU-ontwikkelomgeving waarin de programmeertaal Lua gebruikt wordt. NodeMCU en het bijbehorende bordje zijn bedoeld om op een goedkope manier IoT-projecten te maken. Het werd echter nog leuker toen ontwikkelaars ondersteuning voor de ESP8266-chip in de Arduino-ontwikkelomgeving inbouwden. Hierdoor kun je bordjes op basis van ESP8266 zoals de NodeMCU als een Arduino-bordje gebruiken.

Het grote voordeel van de NodeMCU ten opzichte van andere Arduino-bordjes voorzien van wifi is dat dit bordje erg goedkoop is. Voor drie euro heb je een compleet bordje met ingebouwde wifi-radio, dat je kunt programmeren met de Arduino-ontwikkelomgeving. Je vind de NodeMCU-bordjes op bijvoorbeeld eBay of AliExpress. Let wel op dat je de juiste versie koopt, koop er een die wordt aangeduid met 1.0 of v2. De v3 (ook aangeduid als LoLin) is breder en past hierdoor niet goed op een breadboard.

©PXimport

02 Een hoop pinnen

Net als bij een Arduino kan het aantal aansluitpinnen op de NodeMCU wat afschrikken, maar wees gerust: we gebruiken er slechts een paar. Er zit bovendien nogal wat herhaling in, zo zijn er drie 3V3-aansluitingen (+3,3 volt) en zelfs vier GND-pinnen (ground of 0 volt). De aansluitingen met dezelfde namen zijn onderling doorverbonden. Voor de schakelingen die je in zelfgebouwde projecten gebruikt, zijn vooral de digitale aansluitingen (het rijtje D0 tot en met D8) van belang. Deze aansluitingen gebruiken we om digitale signalen te versturen en uit te lezen. Daarnaast bevat de NodeMCU ook de analoge ingang (A0). Deze ingang verwerkt analoge signalen en kun je bijvoorbeeld gebruiken om sensoren uit te lezen om omgevingsfactoren te meten, zoals temperatuur en vochtigheid. De reset-pin (RST) spreekt voor zich en VIN dient om de module te kunnen voeden zonder usb-kabel. Als de module wel via de usb-kabel is verbonden, is deze aansluiting te gebruiken voor externe componenten die meer dan 3,3 volt nodig hebben.

©PXimport

03 Werking breadboard

Om de NodeMCU te gebruiken voor projecten, sluit je componenten als leds en weerstanden met jumperdraden aan. Het breadboard is letterlijk de basis van de schakelingen. Alsof het ministeck is, steek je alle componenten in de gaatjes, zodat die componenten onderling worden verbonden. Het breadboard is opgebouwd uit drie delen: aan weerszijden twee blauw-rood gemarkeerde rijen gaatjes en een deel ertussenin met een soort gootje in het midden. De gaatjes van het breadboard zijn op een slimme manier met elkaar verbonden. De buitenste twee delen bestaan elk uit twee rijen onderling verbonden gaatjes. Je hebt dus aan weerszijden van het breadboard een rode en een blauwe rij over de volle lengte van het breadboard.

In het middelste deel zijn telkens vijf gaatjes met elkaar verbonden. Als je goed kijkt, zie je cijfers en letters die de gaatjes coördinaten geven. De letters zijn van elkaar gescheiden en de cijfers vormen twee rijtjes van vijf verbonden gaatjes. Zo zijn a15 t/m e15 met elkaar verbonden en f15 t/m j15 ook. Tussen e15 en f15 loopt dus geen verbinding. De illustratie maakt het duidelijk. De grijze lijntjes geven aan op welke manier de gaatjes onderling zijn verbonden. Dus: telkens vijf gaatjes in het middelste deel en alle gaatjes over de hele lengte aan de buitenkanten. Overigens zijn de twee buitenste rijen niet met elkaar verbonden, al hebben ze dezelfde kleurcode. In onze schakelingen gebruiken we altijd de blauw gemarkeerde rij voor GND en de rood gemarkeerde rij voor 3,3 volt. Om praktische redenen werken we in deze cursus niet met coördinaten. Nu je weet hoe de gaatjes met elkaar zijn verbonden, kun je immers zelf bepalen wat je waar in het breadboard prikt. Een vuistregel: zorg ervoor dat er nooit meer dan één pootje van een component in hetzelfde rijtje zit. Prik dus nooit een led in a15 en b15, maar in a15 en a16. In e15 en f15 kan weer wel, want daartussen zit geen verbinding.

©PXimport

04 Werken met de Arduino-ontwikkelomgeving

De ontwikkelomgeving voor Arduino is een zogeheten integrated development environment oftewel IDE. We schrijven de programma’s (binnen de IDE ‘schets’ genoemd) erin, testen ze met de ingebouwde debugger en uploaden ze ermee naar de ESP-module.

De programma’s bestaan ten minste uit de functies setup en loop (lus). Alles wat in setup staat, wordt eenmalig uitgevoerd. Hier bepalen we onder andere welke aansluitpinnen we gaan gebruiken en of dat ingangen of uitgangen worden. Binnen loop staan instructies voor bijvoorbeeld het uitlezen van sensoren en het aan- en uitzetten van een led. Alles in dit gedeelte van het programma wordt oneindig vaak herhaald. Instructies die je slechts af en toe wilt uitvoeren, zet je in een of meerdere functies die je zelf definieert. In de praktijk wordt setup() nog voorafgegaan door variabelen die door het hele programma gebruikt worden. We kunnen bijvoorbeeld een pinnummer toewijzen aan een led of een drukknop, zodat we in de code niet alle pinnummers en de daarop aangesloten componenten hoeven onthouden.

©PXimport

05 Controleren en uploaden

Nadat de benodigde code is ingevoerd of geladen, is de eerste stap het verifiëren ervan. Dat gaat met het knopje met de V links bovenin. De IDE test niet de werking van de code, maar controleert of de structuur klopt. Heb je bijvoorbeeld alles netjes gegroepeerd en worden onderdelen correct geopend en afgesloten? En is er niet twee keer een andere waarde toegekend aan een constante? Overigens wordt de code voor het uploaden automatisch nog gecontroleerd. Dat voorkomt dat je code naar de module uploadt waardoor die zou kunnen vastlopen. Fouten worden gemeld in het zwarte venster onderaan.

De laatste stap is het al genoemde uploaden van je code. Dat gebeurt met de knop met de pijl naar rechts en bestaat uit drie fases, die automatisch na elkaar worden uitgevoerd. De eerste fase is zoals gezegd het controleren van het programma. De tweede fase is het compileren, dat is het omzetten naar instructies die de processor begrijpt. Die instructies zijn voor mensen onhanteerbaar, vandaar deze vertaalslag. Dit betekent overigens dat je de code niet op een later moment van de ESP-module kunt downloaden om er verder aan te werken. Bewaar je programma’s dus altijd goed! De derde en laatste fase is het daadwerkelijk versturen van de gecompileerde versie van het programma naar de module.

©PXimport

Installeren van de ontwikkelomgeving

Voordat je aan de slag kunt met de NodeMCU, moet je eerst het stuurprogramma en de Arduino-ontwikkelomgeving installeren. Op Windows-pc’s, macOS-computers en Linux-systemen wordt de module automatisch herkend, nadat je de Arduino-ontwikkelomgeving (IDE) hebt geïnstalleerd. Doe dat dus altijd als eerste!

  1. Installeer Arduino IDE.
  2. Sluit de NodeMCU aan met de usb-kabel. Als bij deze stap de module onverhoopt toch niet wordt herkend, trek dan de usb-kabel van module los. Download vervolgens de driver voor Windows of voor macOS (let op: downloadt direct) en pak het zip-bestand uit. Installeer de driver (voer bij Windows Setup.exe uit) en sluit de module weer aan.
  3. Start de Arduino IDE en geef indien nodig de firewall toestemming.
  4. Klik op Bestand / Voorkeuren en voer op het tabblad Instellingen de url http://Arduino.esp8266.com/stable/package_esp8266com_index.json in bij Additionele Board Beheer URLs.
  5. Voeg de module toe aan de IDE via Hulpmiddelen / Board / Boardbeheer.
  6. Zoek op ‘esp’ en klik bij esp8266 by Community op Installeren.
  7. Selecteer het juiste bord: Hulpmiddelen / Board / NodeMCU 1.0 (ESP-12E Module).
  8. Selecteer tot slot de juiste poort (Hulpmiddelen / Poort, kies de COM-poort met het hoogste nummer).

Arduino en nu online verder

De twee projecten die u op de volgende pagina’s vindt, zijn afkomstig uit het pakket ‘Arduino en nu online verder’, van dezelfde makers als dit tijdschrift. Het pakket bestaat uit een instructieboek met daarin 14 projecten. Daarnaast vind je in het pakket de NodeMCU, een breadboard en alle componenten die je nodig hebt om alle projecten te bouwen. Je vindt het pakket zolang de voorraad strekt hier. Normaal gesproken kost dit pakket 64 euro, gebruik de code ARDUINOTOTAAL om 10 euro korting te krijgen!

Benodigde componenten

  • NodeMCU
  • Breadboard
  • 5 jumperdraden
  • 1 rode led
  • 1 oranje led
  • 1 gele led
  • 1 groene led
  • 4 weerstanden van 100 ohm

01 Schakeling bouwen

De schakeling voor het weeralarm is eenvoudig: we sluiten een groene, gele, oranje en rode led op de NodeMCU aan. Voor elke led gebruiken we een aparte aansluiting op het bordje: de pinnen D1, D2, D5 en D6, die we in de code instellen als digitale uitgang. Verbind voor elke led de kathode (het korte pootje) van de led via een weerstand van 100 ohm met GND om de stroom door de led te begrenzen. De anode (het lange pootje) van de rode led sluit je aan op D1, die van de oranje led op D2, die van de gele led op D5 en die van de groene led op D6. Heb je niet alle kleuren leds tot je beschikking, dan kun je uiteraard ook andere kleuren gebruiken. Maar dat is natuurlijk wel minder leuk en minder duidelijk.

02 Uploaden code

Je kunt de code voor dit project hier downloaden. Open de code in de ontwikkelomgeving. Stel als eerste de naam van je draadloze netwerk (in plaats van SSID) en het wachtwoord van je draadloze netwerk in (in plaats van WACHTWOORD). Vervolgens kun je de juiste regio instellen, zodat je het weeralarm van jouw regio ziet. Het oorspronkelijke weeralarm gold voor heel Nederland, maar sinds 2010 geeft het KNMI een weeralarm per provincie. Het KNMI heeft Nederland daarom ingedeeld in vijftien regio’s. Een regio per provincie plus de Waddeneilanden, de Waddenzee en het IJsselmeergebied. In de code die je voor dit project kunt downloaden, vind je de url “/weeralarm.php?regio=utrecht” terug. Je kunt utrecht vervangen door limburg, zeeland, noord-brabant, zuid-holland, noord-holland, gelderland, flevoland, overijssel, drenthe, groningen, friesland, ijsselmeergebied, waddenzee of waddeneilanden om de juiste regio te tonen. Upload de code vervolgens naar de NodeMCU en druk op het resetknopje. Na een korte tijd gaat het lampje branden van de weercode die momenteel in jouw regio actief is.

©PXimport

ESP8266 in een domoticasysteem

De Arduino-ontwikkelomgeving is niet de enige software die je in combinatie met de ESP8266 kunt gebruiken. In editie 12/2017 hebben we het NodeMCU-bordje gebruikt als basis om sensoren te verbinden met domoticasysteem Domoticz. Hiervoor gebruikten we de ESP Easy-firmware die een webinterface biedt waarmee je eenvoudig aangesloten sensoren als een bewegingsmelder, thermometer of luchtvochtigheidsmeter kunt uitlezen. Je kunt het artikel hier teruglezen.

©PXimport

Project Weermonitor

Benodigde componenten

  • NodeMCU
  • Breadboard
  • 4 jumperdraden
  • Oled-scherm

01 Schakeling bouwen

De schakeling voor de weermonitor is nog eenvoudiger dan die van het weeralarm. Het enige dat we doen is een eenvoudig beeldschermpje aansluiten. Dat kan met vier draadjes. VCC en GND van het schermpje verbinden we respectievelijk met 3.3V en GND op de ESP-module, SCL met D1 en SDA met D2. En daarmee is onze schakeling klaar. Er zijn verschillende schermpjes te koop die je kunt gebruiken in combinatie met ontwikkelbordjes. We gebruiken een I2C-OLED-schermpje met witte weergave met een afmeting van 0,96 inch met een resolutie van 128 x 64 pixels, voorzien van vier aansluitpinnen. Wil je een dergelijk schermpje los kopen, tik dan in bijvoorbeeld eBay of AliExpress de zoekterm “i2c oled 4 pin white Arduino”. Zo’n schermpje is voor zo’n 2,50 euro te vinden.

02 Oled-driver installeren

Om het oled-schermpje aan te sturen, hebben we een extra library nodig: esp8266-OLED. Download het zip-bestand, pak het uit en plaats de uitgepakte map in de map libraries van je map met Arduino-schetsen (Documents\Arduino onder je persoonlijke map in Windows). Maak eventueel de map libraries aan als die nog niet bestaat. Herstart daarna de Arduino IDE. We kunnen nu in onze code de nieuwe library gebruiken met de regel #include "OLED.h". Overigens voegen we ook een regel #include <Wire.h> toe, omdat de library OLED de library Wire nodig heeft voor de communicatie met het schermpje.

03 Code instellen

Je kunt de code voor dit project hier downloaden. Om de schets te laten werken vul je in de code de naam van je draadloze netwerk in plaats van SSID en je wachtwoord in plaats van WACHTWOORD. In de regel daarna kun je het nummer van het gewenste weerstation instellen. Ieder weerstation heeft een viercijferig nummer. Standaard staat hier 6260, de code voor het weerstation bij De Bilt. Je vindt alle weerstations hier. Upload de code vervolgens naar de NodeMCU. Herstart het bordje door op het resetknopje te drukken en de weergegevens verschijnen op het schermpje.

©PXimport

▼ Volgende artikel
Consumenten testen: de Philips 5000 Series CX5120/11 energiebesparende verwarming
Huis

Consumenten testen: de Philips 5000 Series CX5120/11 energiebesparende verwarming

Ben je op zoek naar een energiezuinige bijverwarming die snel en efficiënt warmte levert? Dan is een keramische verwarming wel iets voor jou: die combineert moderne technologie met gebruiksgemak. Zoals de Philips 5000 Series CX5120/11 keramische verwarming. Wat zijn de praktijkervaringen van de testers van Review.nl? Lees hier hun bevindingen.

Ben je op zoek naar een snelle, slimme en veilige manier om je huis te verwarmen? Met deze krachtige keramische verwarming zit je binnen twee seconden al lekker warm! En het beste? Je bespaart tot wel 50% energie vergeleken met een gewone verwarmingsventilator. Via de handige Philips Air+-app heb je altijd en overal controle over je verwarming. Bovendien zorgt de 5-voudige veiligheidsbescherming ervoor dat je je nergens zorgen over hoeft te maken. Warmte, gemak én gemoedsrust – wat wil je nog meer? Testers van Review.nl mochten de Philips 5000 Series CX5120/11 gedurende een periode testen. Hier lees je hun bevindingen.

Het slanke, zwarte design van deze Philips verwarming past goed in een modern interieur. Met een hoogte van minder dan 60 centimeter is het apparaat compact genoeg om onder een bureau te plaatsen. "Door het slanke en zwarte design is deze verwarming overal te plaatsen", aldus Rob, één van de testers. Het apparaat is daarnaast licht van gewicht, wat het makkelijk maakt om hem van kamer naar kamer te verplaatsen wanneer nodig.

Snelle en effectieve verwarming

De CX5120/11 overtuigt met zijn krachtige verwarmingsprestaties. "Het apparaat verwarmt de kamer verrassend snel, wat ideaal is op koude dagen", schrijft GeertK, die de CX5120/11 een 8,0 geeft. De oscillerende voet zorgt voor een goede warmteverdeling in de ruimte. Rob is blij met het vermogen: "Hierdoor is het mogelijk om in een korte periode een fijne warmte te verspreiden". Daar is tester Cindyver het mee eens. Ook wordt gewaardeerd dat de keramische verwarming geen vieze geurtjes verspreidt.

De Philips 5000 Series CX5120/11 kan ook in een thuisnetwerk worden gebruikt, waardoor app-bediening ingesteld kan worden en een koppeling met Google Home en Alexa mogelijk is. Wel kan er nog iets worden verbeterd aan het proces voor het maken van een verbinding met het draadloze netwerk. Roberto073: "Het koppelen met de Air+ app verliep zonder gedoe, al bleef het wifi-icoontje wit in plaats van oranje, zoals de handleiding aangaf. Dat was echter geen probleem, want alles werkte naar behoren." AnneliesD hierover: "De installatie was even puzzelen omdat er verwezen werd naar het netwerk van Philips in plaats van ons thuis wifi-netwerk. Maar dit was zo gewijzigd in de app."

Slim en gebruiksvriendelijk

Een groot pluspunt is de bediening via de bijbehorende app. Hiermee kun je de verwarming op afstand bedienen en programma's instellen. 'Via deze app is het mogelijk om zelf een programma te maken wanneer, hoe laat en hoe warm de verwarming moet werken', licht een enthousiaste gebruiker toe. De Auto+ modus regelt de verwarming automatisch voor optimale energiebesparing. Het touchscreen op het apparaat zelf biedt een gebruiksvriendelijk alternatief voor de app-bediening.

Tester Har74 is blij met de slimme functies van de verwarming en de app: "In de kinderkamer is de verwarming een keer omgevallen, maar de app gaf meteen een melding dat het apparaat was omgevallen en automatisch was uitgeschakeld. "

Tester AnneliesD is blij met de CX5120/11: "Vooral met thuiswerken is het ideaal om één ruimte te verwarmen en de cv-installatie niet te hoeven gebruikenm. wat dus ook aanzienlijk scheelt in de kosten! "

Geschikt voor kleinere ruimtes

De verwarming is vooral effectief in kleinere ruimtes tot ongeveer 20 m². 'In mijn studeerkamer komt de verwarming tot zijn recht', schrijft een tester. Verschillende gebruikers zetten het apparaat specifiek in als bijverwarming voor een thuiswerkplek. Een minpunt van de Philips 5000 Series CX5120/11 is volgens Max546 de lengte van het snoer. "Zonder verlengsnoer kun je hem niet zomaar overal neerzetten", aldus de tester.

Tester Har74 merkt dat deze verwarming minder geschikt is voor grotere ruimtes, want volgens de specificaties is hij vooral geschikt voor kamers tot 20 m³. Ook vindt hij het jammer dat de verwarming niet in andere kleuren dan zwart verkrijgbaar is.

Conclusie

Met een gemiddelde score van 8,7 is de Philips 5000 Series CX5120/11 een overtuigende keuze voor wie op zoek is naar een slimme bijverwarming voor kleinere ruimtes. De combinatie van snelle warmte, app-bediening en energiezuinige werking maakt het een praktisch apparaat voor bijvoorbeeld een thuiswerkplek of slaapkamer. Het compacte formaat en stille werking zijn extra pluspunten. Enige minpunten zijn de relatief korte stroomkabel en het feit dat de temperatuurmeting bij het apparaat niet altijd overeenkomt met de werkelijke kamertemperatuur.

✅ Pluspunten
Snel en efficiënt verwarmen
Stille werking
Prettige app-bediening
Energiezuinig
Val- en aanraakbeveiliging

❌ Minpunten
Voor kleinere ruimtes tot 20 m³
Stroomkabel in sommige situaties te kort
Soms verschil in gemeten en werkelijke temperatuur

Meer over de Philips 7000 Series HR3760/10

Op Kieskeurig.nl

▼ Volgende artikel
Calibre via Docker: boekenplank op je server
© Paolese
Huis

Calibre via Docker: boekenplank op je server

Verzamel je je e-books het liefst centraal op een server? Dan ligt het voor de hand om die verzameling daar ook te beheren. Een van de beste beheerprogramma’s is Calibre. Hoewel dit vaak onder Windows wordt gebruikt, kun je het ook via Docker installeren en gebruiken. Daarna beheer je alles via een browser. We laten zien hoe dat werkt.

Na het lezen van dit artikel weet je hoe je e-books via Calibre Web kunt beheren. Daarvoor ondernemen we de volgende stappen:

  • Docker installeren
  • Calibre instellen
    • Database maken
    • E-books toevoegen
  • Calibre Web configureren
  • Draadloos synchroniseren met Kobo-e-readers

Lees ook: Bladeren in stijl: Hoe kies je de perfecte e-reader?

Code downloaden

In dit artikel staat een voorbeeld van wat YAML-code (en diverse andere commando’s). Omdat YAML erg gevoelig is voor foute spaties, kun je die code beter downloaden en daarna bekijken of kopiëren. Zie het bestand code-calweb.txt.

Calibre is een populair en voor velen vertrouwd programma voor het beheren van e-books, dat al heel lang mee gaat (zie het kader ‘Calibre vereenvoudigt je e-bookbeheer’). De meeste mensen gebruiken het op een pc, maar daar kleven wel wat nadelen aan. Een installatie op een server is praktischer. Een centrale installatie zorgt ervoor dat je gemakkelijker toegang tot Calibre hebt, vanaf verschillende apparaten en met verschillende gebruikers.

Ook de regelmatige software-updates zijn eenvoudiger te installeren, desgewenst zelfs automatisch. Het maken van back-ups is eveneens makkelijker. Op een pc vergeten mensen dat vaak, waardoor bij een crash of herinstallatie van Windows de zorgvuldig opgebouwde verzameling verloren gaat.

In dit artikel gaan we Calibre via Docker draaien. Je kunt de software daarna via een browser gebruiken, met dezelfde vertrouwde gebruikersinterface. We combineren het met Calibre Web. Daarmee kun je, ook weer via de browser, comfortabel je e-books lezen.

Ook de communicatie met e-readers komt aan bod. We laten zien hoe je via Calibre Web rechtstreeks synchroniseert met een Kobo e-reader. En vanuit Calibre gaan we e-books naar een Kindle sturen.

Calibre vereenvoudigt je e-bookbeheer

Calibre is een populair programma voor het beheren van je verzameling e-books. Het is beschikbaar voor Windows, macOS en Linux. Calibre kan op basis van metadata alle relevante informatie over e-books voor je ophalen, zoals beschrijvingen en een omslagafbeelding.

Je kunt de details ook handmatig aanpassen, per bestand of op groepsniveau. Ook converteer je e-books direct in Calibre om ze compatibel te maken met jouw e-reader. Bovendien zijn er de nodige extra’s, zoals het omzetten van nieuwsartikelen naar een e-book op basis van rss-feeds.

De eerste versie van Calibre verscheen in oktober 2006. Dat was kort na de release van de Sony PRS-500, een van de eerste op e-ink gebaseerde e-readers. Aanvankelijk lag de kracht bij de conversie van e-books tussen verschillende formaten. Tegenwoordig staan vooral de beheerfuncties centraal, en de uitgebreide zoek- en sorteeropties. De software is gratis, opensource en vrij aanpasbaar.

Calibre is veruit het bekendste programma voor het beheren van e-books.

1 Calibre (Web) en Docker (Compose)

We gaan in dit artikel Calibre en Calibre Web installeren op een server. Hierbij maken we gebruik van Docker en Docker Compose. Hiervoor gebruiken we een Linux-server met Ubuntu 24.04 LTS. Voor het werken met Docker installeren we Docker CE (Community Edition). Daar zijn installatiegidsen voor. Hierna kun je zowel Docker als Docker Compose gebruiken.

Zorg dat het systeem dat je gaat gebruiken genoeg geheugen heeft. Er is geen schokkende hoeveelheid voor nodig, maar 2 GB is geen overbodige luxe. Dit heeft vooral te maken met de ‘remote desktop’-opzet: op de achtergrond wordt een VNC-verbinding opgezet om de gebruikersinterface van Calibre weer te geven. Gebruik je een container in Proxmox VE, dan is 4 GB een veilige bovengrens. Meestal ligt het geheugengebruik rond 500 MB, maar tijdens het gebruik loopt dat snel op naar 1 GB met wat uitschieters naar boven.

Alle e-books staan bij onze opzet op een NAS. Daarom koppelen (‘mounten’) we die map aan het systeem, op de locatie /mnt/nas/boeken. Die locatie gaan we (in de volgende paragraaf) als volume toevoegen aan Calibre. Het voordeel is dat je vanuit Calibre gemakkelijk door die map kunt bladeren om e-books toe te voegen aan de bibliotheek in Calibre zelf.

Zorg dat je op het systeem over Docker en Docker Compose beschikt.

2 Docker Compose

Op het systeem maken we een mapje voor Calibre en plaatsen daarin een bestand docker-compose.yml met de onderstaande inhoud. We kiezen voor zowel Calibre als Calibre Web het Docker-image van het bekende LinuxServer.io.

Mogelijk zijn voor jouw situatie wat aanpassingen nodig. De belangrijkste opties nemen we in de volgende twee paragrafen met je door. Bij twijfel kun je ook de documentatie voor de genoemde Docker-images raadplegen. Bij de uitleg maken we onderscheid tussen de host en de container. De host is daarbij uiteraard jouw server met Docker.

Met de hulp van Docker Compose beheren we de instellingen voor beide containers.

3 Volumes koppelen

Volumes zorgen feitelijk voor de mogelijkheid bestanden uit te wisselen tussen de host en container. Voor Calibre maken we onder volumes: een koppeling tussen de map ./config op de host en /config in de container. Hier bewaart Calibre de configuratie en straks ook de Calibre-bibliotheek.

Verder koppelen we de gemounte map /mnt/nas/boeken met daarin alle ongesorteerde e-books aan /media. Binnen Calibre kun je straks door de map /media bladeren om eenvoudig e-books aan je bibliotheek toe te voegen.

Optioneel kun je een map, zoals de hier voorgestelde map /mnt/nas/boeken/Toevoegen, koppelen aan de container onder bijvoorbeeld /toevoegen. We laten in paragraaf 7 zien hoe je met een kleine aanpassing de e-books in die map automatisch aan Calibre kunt toevoegen. Bij de container voor Calibre Web zie je onder volumes: alleen de koppeling met de lokale map ./config. Daar staat straks de bibliotheek van Calibre, die we bij de configuratie van Calibre Web alleen nog hoeven aan te wijzen. Controleer voor beide containers onder environment: de waardes bij PUID en PGID. Dat is de ID van respectievelijk de eigenaar en groep van de gekoppelde volumes. Deze waardes kun je nagaan met de opdracht id gebruiker. Dit voorkomt problemen met rechten bij bestandstoegang.

In een onderliggende map worden de configuratie en bibliotheek bewaard.

Back-up maken van Calibre

Het is raadzaam om af en toe een back-up te maken van Calibre en Calibre Web. Het gaat hierbij om het bestand docker-compose.yml en de onderliggende map config. In de map met het bestand docker-compose.yml kun je daarvoor de onderstaande opdracht geven. Bewaar vervolgens het bestand calibre.tar op een veilige plek. Gebruik deze opdracht:

tar --exclude=config/.cache -cvf calibre.tar docker-compose.yml config/

Hierbij sluiten we overigens de folder .cache die in de map config te vinden is uit.

4 Poorten configureren

Er zijn voor beide containers poorten gekoppeld. Dit zie je onder ports:. Het poortnummer links is steeds de poort op de host. Die mag je eventueel veranderen, bijvoorbeeld omdat een poort (zoals de populaire poort 8080) al in gebruik is. Het poortnummer rechts is de poort in de container. Die mag je niet veranderen. We houden hier dezelfde poortnummers aan. Bij de container voor Calibre geeft poort 8080 toegang tot Calibre zelf en poort 8081 dient voor de ingebouwde contentserver (zie paragraaf 8 en het kader ‘Inhoudsserver van Calibre gebruiken’). Calibre Web maken we via poort 8083 toegankelijk.

Poort 8083 geeft toegang tot Calibre Web, waarmee je e-books via een browser kunt lezen.

5 Beheer van de containers

Als je alle gewenste aanpassingen hebt gemaakt en de configuratie hebt bewaard, kun je beide containers starten met één opdracht:

docker compose up -d

Om de containers te stoppen, geef je deze opdracht:

docker compose down

Merk op dat er regelmatig updates verschijnen voor Calibre, waar je ook een melding van zult krijgen. Je hoeft dan in Calibre zelf niets te doen. Enkele commando’s vanaf de opdrachtregel volstaan. Stop als eerste de containers met:

docker compose down

Haal dan de nieuwe images op waarop de containers zijn gebaseerd. Dit kan in één keer met:

docker compose pull

Daarna kun je de containers opnieuw starten met:

docker compose up -d

Daarbij zullen de containers op basis van de nieuwe images worden opgebouwd. Controleer eventueel de status met:

docker ps

Dit laat zien welke containers actief zijn en welke poorten ze gebruiken.

Via enkele eenvoudige commando’s kun je de Docker-containers beheren.

6 Eerste stappen in Calibre

We gaan nu verder in de browser en beginnen met het instellen van Calibre. Log in op het ip-adres van het systeem waarop Calibre staat en poort 8080, zoals http://ipadres:8080. Kies in het eerste scherm Nederlands als taal. Kies daarna de locatie voor de bibliotheek voor Calibre. Hier worden alle toegevoegde boeken naartoe gekopieerd. We accepteren de standaardlocatie /config/Calibre Bibliotheek.

In het volgende scherm kies je je type e-reader. We kiezen voor een model van Kobo. Klik op Volgende om verder te gaan en dan Voltooien. Je komt nu direct in Calibre. Als je eerder met deze software hebt gewerkt, zal de gebruikersinterface vertrouwd zijn. Je ziet nog maar één boek in je Calibre-bibliotheek: de snelstartgids voor het werken met Calibre. Tijd dus voor wat extra leesvoer!

Bij het eerste gebruik moet je enkele instellingen aanpassen.

7 Boeken toevoegen

Om een e-book toe te voegen aan Calibre ga je naar Boeken toevoegen. Blader via de bestandsbeheerder vervolgens naar /media. Hier zie je de gemounte map met alle e-books. Wil je ook automatisch boeken aan Calibre kunnen toevoegen? Dit kun je instellen onder Voorkeuren. Kies onder Importeren/Exporteren de optie Boeken toevoegen. Op het tabje Automatisch toevoegen kun je naar de map bladeren waar de automatisch toe te voegen e-books staan. In ons voorbeeld is dat /toevoegen. Alle boeken die je in die map zet, zullen automatisch aan Calibre worden toegevoegd en daarna uit die map worden verwijderd. Kies na deze wijziging voor het herstarten van Calibre.

Boeken in deze speciale map worden automatisch aan Calibre toegevoegd.

8 Calibre Web

Met Calibre Web kun je een Calibre-database via een browser toegankelijk maken, zodat je door je verzameling e-books kunt bladeren en deze kunt lezen of downloaden. Het geeft je meer mogelijkheden dan de contentserver van Calibre (zie kader ‘Inhoudsserver van Calibre gebruiken’). Zo kun je in Calibre Web boekenplanken maken en beheren. Deze kun je vervolgens synchroniseren met een Kobo e-reader.

Open om te beginnen Calibre Web op poort 8083, zoals http://ipadres:8083. Hier log je in met het initiële gebruikersaccount (gebruikersnaam admin en wachtwoord admin123). Eerst wordt gevraagd naar de locatie van de database van Calibre. Blader hiervoor naar /config/Calibre Bibliotheek en kies Select. Bewaar de instelling met Save. Als je naar Books gaat, zie je nu ook de eerdergenoemde gids voor Calibre en de boeken die je mogelijk zelf al had toegevoegd.

Voeg je in het vervolg in Calibre een boek toe, dan verschijnt deze ook direct in Calibre Web, omdat ze de database delen. Het is raadzaam om de taal van de gebruikersinterface op Nederlands te zetten. Klik daarvoor op je naam (admin) om je profiel te openen. Bij Language kies je Nederlands. Klik daarna op Save.

In Calibre Web verwijzen we naar de bibliotheek van Calibre.

Inhoudsserver van Calibre gebruiken

Calibre heeft een ingebouwde contentserver ofwel inhoudsserver. Schakel je deze in, dan kun je met een browser door je bibliotheek bladeren, en e-books te lezen of downloaden. Er is wat functionaliteit betreft wat overlap met Calibre Web. Je kunt ze eventueel naast elkaar gebruiken.

Voor de inhoudsserver hebben we poort 8081 op de host gekoppeld met poort 8081 in de container. Om de inhoudsserver te starten, ga je in Calibre naar Verbinden/delen en kies je Inhoudsserver starten. Open je browser en bezoek het ip-adres met poort 8081. Hier kun je je Calibre-bibliotheek bekijken. Dat kan ook direct vanaf de browser van een e-reader.

Er zijn ook andere, handigere methodes om e-books over te zetten. In dit artikel komt een directe synchronisatie met Kobo aan bod (paragrafen 9 en 10) en het versturen naar een Kindle vanuit Calibre (paragraaf 11).

De inhoudsserver maakt je bibliotheek beschikbaar via een browser.

9 Boekenplanken maken

Calibre Web kent het principe van boekenplanken, waarvan het beheer overigens los staat van Calibre. Begin hiervoor in het menu aan de linkerkant met Boekenplank maken. Open je vervolgens een e-book, dan kun je deze toevoegen aan een of meerdere boekenplanken. Handig aan de e-reader van Kobo is dat hij je boekenplanken met inhoud weergeeft in je bibliotheek als je naar het tabje Verzamelingen gaat. Hiervoor moet je de e-reader synchroniseren met Calibre Web. Je zou bijvoorbeeld een boekenplank kunnen maken voor boeken die je binnenkort wilt lezen. Of een boekplank voor elk genre. Ook kun je voor een specifieke e-reader een boekenplank maken. In de volgende paragrafen leggen we uit hoe je boekenplanken met je Kobo-e-reader kunt synchroniseren.

Je kunt boekenplanken maken voor synchronisatie met je e-reader.

10 Synchronisatie

Je kunt een e-reader van Kobo draadloos synchroniseren met Calibre Web. Hiervoor ga je naar het menu Beheer. Kies onder Instellingen de optie Bewerk basisconfiguratie. Onder het kopje Geavanceerde opties zet je vinkjes bij Zet Kobo sync aan en Proxy onbekende verzoeken naar Kobo winkel. Met die laatste optie zul je op je e-reader bij synchronisatie ook nog steeds boeken ontvangen die je bijvoorbeeld via bol.com hebt gekocht.

Op zoek naar leesvoer?

Koop een e-book bij bol

Controleer of de correcte poort is ingesteld voor Calibre Web (wij gebruiken de standaardpoort 8083). Als je een ander poortnummer hebt gekozen, moet je dat hier wijzigen. Kies daarna Opslaan. Open nu je profiel door op je gebruikersnaam te klikken (standaard is dat admin). Klik bij Kobo Sync Token op Aanmaken/Bekijken. Kopieer nu de regel die er als volgt uitziet:

api_endpoint=http://10.0.10.37:8083/kobo/faa613c4e5d334a3d82210b157bb0e

Sluit je Kobo e-reader aan op de pc. Blader naar de map .kobo/Kobo en open het bestand Kobo eReader.conf. Zoek naar de regel met api_endpoint. De standaardconfiguratie ziet er meestal als volgt uit:

api_endpoint=https://storeapi.kobo.com

Verander deze regel naar de voorgestelde configuratie van Calibre Web. Als de bewuste regel (nog) niet bestaat, moet je deze aanmaken onder de groep [OneStoreServices].

We maken een aanpassing aan de configuratie van Calibre Web.

Selectief boekenplanken synchroniseren

Standaard worden met een Kobo-e-reader alle boekenplanken gesynchroniseerd. Wil je alleen één of enkele boekenplanken synchroniseren? Ga dan naar je profiel (veelal admin). Zet een vinkje bij Synchroniseer alleen boeken op geselecteerde boekenplanken met Kobo en kies Opslaan. Open daarna een boekenplank en kies Bewerk boekenplank eigenschappen. Met een vinkje kun je kiezen of die boekenplank met een boekenplank met een Kobo-apparaat moet worden gesynchroniseerd.

Naar voorkeur kun je ook één of enkele boekenplanken synchroniseren.

11 Kindle-e-reader

De Kindle van Amazon is een populair alternatief voor Kobo, dat wel werkt met een eigen ecosysteem. Heb je e-books in een afwijkend formaat, bijvoorbeeld drm-vrije epub-bestanden, dan kun je deze per e-mail naar een Kindle sturen. Dit gaat via de servers van Amazon, waar ze worden geconverteerd naar een geschikt formaat. Het e-mailadres waar je boeken naar kunt sturen kun je achterhalen door op je Kindle de instellingen te openen. Je ziet het @kindle.com-adres onder E-mail voor versturen naar Kindle. Je kunt hier direct vanuit Calibre e-books naar sturen.

Ga daarvoor in Calibre naar Voorkeuren. Kies onder Delen de optie Deel boeken via e-mail. Vul onder E-mail het e-mailadres van de Kindle in. Vul ook je e-mailadres als afzenderadres in onder Afzender e-mail. Je kunt eventueel een server instellen voor het versturen, maar het werkt meestal ook zonder.

Klik nu in Calibre met rechts op een e-book. Het menu Verbinden/delen geeft de optie voor het versturen per er-mail. Je e-book verschijnt hierna vanzelf op je Kindle. Mislukt de conversie, dan ontvang je een e-mailbericht van Amazon. Het is vrijwel altijd op te lossen met een trucje: converteer het e-book binnen Calibre naar het formaat .mobi. Converteer het daarna terug van .mobi naar .epub. Probeer vervolgens opnieuw het e-book naar je Kindle te sturen.

Je kunt per e-mail boeken delen met bijvoorbeeld een Kindle-e-reader.

Inspiratie voor extra leesvoer

Hebban is een leuke website om inspiratie voor nieuwe boeken op te doen. Je vindt er een enorme catalogus met Nederlandstalige boeken, voorzien van meer dan 5,6 miljoen beoordelingen en recensies. Er zijn ook veel lijstjes, zoals de tiplijst met boeken van de laatste dertig dagen, de Hebban Rank met de duizend populairste boeken van dit moment en een lijst met de duizend mooiste boeken aller tijden. Die laatste lijst wordt samengesteld op basis van de persoonlijke tiplijsten van duizenden leden. Je kunt op de website ook zelf een lijstje bijhouden met boeken die je interessant vindt. De meeste boeken zijn uiteraard ook als e-book verkrijgbaar. Een internationaal alternatief is Goodreads.