Raspberry Pi – RTC Tijdklok DS1307

Hardware

ds1307 cr2032 onderkantds1307 cr2032 bovenkant

BESTEL NU!

Een RTC tijdklok met batterij, de klok maakt gebruik van de DS1307 chip.

Informatie (ENG)

The DS1307 Serial Real-Time Clock is a low-power, full binary-coded decimal (BCD) clock/calendar plus 56 bytes of NV SRAM. Address and data are transferred serially via a 2-wire, bi-directional bus. The clock/calendar provides seconds, minutes, hours, day, date, month, and year information. The end of the month date is automatically adjusted for months with fewer than 31 days, including corrections for leap year. The clock operates in either the 24-hour or 12-hour format with AM/PM indicator. The DS1307 has a built-in power sense circuit that detects power failures and automatically switches to the battery supply.

Features

  • Real-time clock (RTC) counts seconds,minutes, hours, date of the month, month, day of the week, and year with leap-year compensation valid up to 2100
  • 56-byte, battery-backed, nonvolatile (NV) RAM for data storage
  • Two-wire serial interface
  • Programmable squarewave output signal
  • Automatic power-fail detect and switch circuitry
  • Consumes less than 500nA in battery backup mode with oscillator running
  • Optional industrial temperature range:-40°C to +85°C
  • Available in 8-pin DIP or SOIC Underwriters Laboratory (UL) recognized

Pinout

ds1307 cr2032 onderkant 
Pin (aansluitkant, batterij boven):Functie:
01SQ (optionele temp sensor)
02DS
03SCL (serial clock)
04SDA (serial data)
05VCC (+5v)
06GND
07BATT (batterij)

Aansluiten op de Raspberry Pi

Sluit de module aan zoals aangegeven op onderstaand schema:

Raspberry Pi pin:I2C module pin:
+5v+5v
GNDGND
3 (GPIO2) SDASDA
5 (GPIO3) SCLSCL

Ps. Altijd de pinout van je Raspberry Pi controleren, deze kan verschillen per versie.

Wat moet je doen?

1) I2C aanzetten op de Pi.
2) SMBUS module installeren voor Python:

Om de I2C bus in Python te gebruiken moet je een module installeren, genaamd SMBUS, dit kan via APT-GET met het commando:  sudo apt-get install python-smbus

Je kan dan de module importeren in python door middel van: import smbus

Controleren van de aansluiting

Om de aansluiting van de module te controleren voor je het volgende commando uit: sudo i2cdetect -y 1, je ziet dan 2 adressen staan in de lijst:

0x50 = een klein geheugen op de RTC chip dat je kan gebruiken (wordt vaak niet gebruikt)
0x68 = de RTC module/chip

De RTC module met het systeem verbinden

Om de module met het systeem te verbinden (hardware clock/hwclock) kan het volgende commando worden uitgevoerd:

echo ds1307 0x68 > /sys/class/i2c-adapter/i2c-1/new_device

Maar…. dit commando geeft al snel een “access denied” omdat het alleen als root uitgevoerd kan worden, zelf sudo ervoor mag niet baten, de oplossing is de volgende regel:

echo 'ds1307 0x68' | sudo tee /sys/class/i2c-adapter/i2c-1/new_device

Ps. voor de (oude) Raspberry Pi 1 moet jekan het zijn dat je  i2c-0  moet gebruiken, bij mij lukte het nog met i2c-1

Nu is de klok verbonden, uitlezen kan met het volgende commando (read):  sudo hwclock -r

Datum en Tijd instellen

Om de datum en tijd te zien op de raspberry kan je in de shell date  intikken:

Je kan de datum en tijd automatisch op de RTC instellen met het commando (write):

sudo hwclock -w

Controleer de datum en tijd in de RTC:

RTC klok laden bij opstarten

Voor het automatisch laden van de RTC module bij opstarten moet er een regel toegevoegd worden aan /etc/modules

Bewerk het bestand met het volgende commando:  sudo nano /etc/modules

Je kan al i2c-dev zien staan, voeg daaronder rtc-ds1307 toe:

Of heel simpel met het volgende commando:

sudo bash -c "echo 'rtc-ds1307' >> /etc/modules"

Er moet nog wat ingesteld worden om de RTC te laden/gebruiken bij het opstarten, er moeten nog wat regel toegevoegd worden aan /etc/rc.local

Ps. Het is belangrijk dat je deze regels VOOR exit 0 zet!

Bewerk het bestand met het volgende commando:  sudo nano /etc/rc.local

en voeg deze regels daar aan toe:

Het kan ook vanuit de shell met deze 2 commando’s worden ingesteld:


Bronnen:
thepihut.com
www.linux-ratgeber.de
www.sarawuth.com
raspberrypi.stackexchange.com