
Om de kosten laag te houden, bevat de Raspberry Pi (nog) geen Real Time Clock. In plaats daarvan wordt van de gebruiker verwacht dat de Pi verbonden is met WiFi of Ethernet en daarmee de tijd bijhoudt. Omdat we de Raspberry Pi ook zonder internet van de juiste tijd willen voorzien, moeten we een RTC klokmodule aansluiten. Ze zijn niet duur, vanaf een euro heb je ze al.
Er zijn veel verschillende RTC’s op de markt, de PCF8523 is goedkoop, DS1307 komt het meest voor en DS3231 is het meest precies. Ieder van hen zal het doen! In dit project bespreken we de installatie van de DS3231.
RTC DS3231 module plaatsen
1. Als je iets op de Raspberry Pi aansluit moet de Pi uit zijn. Dit is om beschadigingen te voorkomen.
2. Plaats de RTC module op headerpin 1, 3, 5, 7 en 9. De printplaat wijst naar de binnenkant van de Raspberry Pi.

I2C interface activeren
De module communiceert middels de I2C bus met de Raspberry Pi. Daarvoor moet de I2C bus op de Pi wel geactiveerd worden. Mocht de bus nog niet geactiveerd zijn, klik dan hier om te zien hoe je dit doet. Vergeet de Pi niet te rebooten na het activeren van de bus.
sudo reboot
We controleren of de module door het systeem herkend wordt met:
sudo i2cdetect -y 1
Een tabel verschijnt. Als het goed is zie je de RTC module op 68 (hex) staan.

Mocht je al eerder de installatie gedaan hebben, of heeft een ander I2C apparaat de locatie bezet, zie je op adres 68 “UU” staan, wat betekent “Zoeken is overgeslagen, omdat dit adres momenteel gebruikt wordt.“. Aangezien de kans erg klein is dat dit bij een schone installatie gebeurt, ga ik hier niet verder op in.
Kernel
Nu laden we de RTC-module in de kernel, het centrale deel van het besturingssysteem. Dit doen we met het commando:
sudo modprobe rtc-ds1307
Super-user privileges
Bij de volgende stap hebben we super-user privileges nodig. Geef in:
sudo bash

Om de DS3231 aan te maken, zetten we ds1307 op adres 0x68:
echo ds1307 0x68 > /sys/class/i2c-adapter/i2c-1/new_device
Om de root te verlaten type je:
exit
HWClock
Nu controleren we de tijd van de module met:
sudo hwclock -r
Krijg je de melding: ‘hwclock: Cannot access the Hardware Clock via any known method‘. Dan is de RTC niet geconfigureerd. De Pi ziet ‘m niet.
Als het de eerste keer is dat de module gebruikt wordt, zal er waarschijnlijk een vreemde, onjuiste tijd te zien zijn. Zoals:
2000-01-01 01:04:19.202066 +01:00
Als je met het internet verbonden bent kun je de juiste tijd opvragen door het ingeven van:
date
Date geeft de tijd weer die de Raspberry Pi van het internet (NTP) ingelezen heeft. Om de juiste tijd in de module te zetten type je:
sudo hwclock -w
Om te controleren of de juiste tijd in de module staat type je opnieuw:
sudo hwclock -r
Als het goed is zie je nu de juiste tijd staan.
Module bestand
We moeten de module aan het module-bestand toevoegen met:
sudo nano /etc/modules/
Hierdoor wordt de module bij opstart geladen. Open het bestand met de editor:
nano /etc/modules
Ga helemaal naar beneden en zet de modulenaam erbij: rtc-ds1307, zie onderstaande afbeelding.

Sla vervolgens het bestand op met Ctrl-x en vervolgens ‘ja’ (Y).
Module opstarten bij boot
De module moet nog tijdens het opstarten van de Raspberry Pi opgestart worden. Hiervoor passen we het rc.local-bestand aan door in te geven.
sudo nano /etc/rc.local
Nano opent het bestand. Ga naar beneden en geef de volgende regels in:
echo ds1307 0x68 > /sys/class/i2c-adapter/i2c-1/new_device
sudo hwclock -s
date

Sla vervolgens het bestand op met Ctrl-x en vervolgens ‘ja’ (Y).
Reboot de Raspberry Pi met:
sudo reboot
Controleer de werking
Controleer na de reboot de klok met:
date
Wil je beter testen of het gelukt is? Zet dan de Raspberry Pi uit, verwijder de netwerk kabel en zet de Raspberry Pi pas na een aantal uren, of een dag weer aan en vraag dan weer de tijd (date) op. Je kunt ook de tijd zien in de Raspbian desktop (startx).
Loopt de tijd een uur (of meer) achter of voor?
Controleer of de Raspberry Pi op de juiste tijdzone (‘Europe/Amsterdam’) staat.
Type: sudo raspi-config
Ga naar: Localisation options
Ga naar: Change Timezone
Kies: ‘Europe’ en vervolgens: ‘Amsterdam’, [OK] en [Finish].
Wat het systeem terug geeft ziet er als volgt uit:

Met dank aan Julian #OH8STN
Have A Nice Day!
Laat een reactie achter