FREE SHIPPING ON ALL ORDERS OVER £20

60 DAY HASSLE-FREE RETURNS

Met behulp van de DS1307 RTC met de Raspberry Pi

Using the DS1307 RTC with the Raspberry Pi

De DS1307 Real-Time Clock (RTC)-module stelt de Raspberry Pi in staat om de tijd bij te houden, zelfs wanneer deze is uitgeschakeld. Deze handleiding leidt je door het instellen van de DS1307 RTC-module op de Raspberry Pi met behulp van het I2C-protocol.


Wat je nodig hebt

  1. Raspberry Pi (elk model met GPIO- en I2C-ondersteuning, bijv. Pi 3, Pi 4)
  2. DS1307 RTC-module
  3. CR2032-batterij (om de tijd bij te houden wanneer het apparaat is uitgeschakeld)
  4. Breadboard en jumperkabels
  5. Python geïnstalleerd op de Raspberry Pi

Stap 1: De DS1307 aansluiten op de Raspberry Pi

De DS1307 communiceert via I2C, dus we sluiten deze aan op de I2C-pinnen van de Raspberry Pi.

Aansluitingen (I2C-modus)

DS1307-pin Raspberry Pi-pin
VCC 3.3V of 5V (pin 1 of 2)
GND Ground (pin 6)
SDA SDA (pin 3, GPIO2)
SCL SCL (pin 5, GPIO3)

Stap 2: I2C inschakelen op de Raspberry Pi

  1. Open het configuratieprogramma van de Raspberry Pi:
    sudo raspi-config
    
  2. Navigeer naar Interface Options > I2C en schakel dit in.
  3. Start de Raspberry Pi opnieuw op:
    sudo reboot
    
  4. Controleer of de DS1307 wordt gedetecteerd op de I2C-bus:
    sudo i2cdetect -y 1
    
    De DS1307 zou moeten verschijnen op adres 0x68.

Stap 3: Vereiste bibliotheken installeren

  1. Update de pakketlijst van je Raspberry Pi:
    sudo apt update && sudo apt upgrade -y
    
  2. Installeer de vereiste I2C-tools en Python-bibliotheken:
    sudo apt install -y i2c-tools python3-smbus python3-pip
    pip3 install adafruit-circuitpython-ds1307
    

Stap 4: De tijd instellen en uitlezen op de DS1307

Python-code om de datum en tijd in te stellen

Voer dit script eenmaal uit om de RTC-klok in te stellen.

import time
import board
import busio
import adafruit_ds1307

# Initialiseer I2C-bus en DS1307
i2c = busio.I2C(board.SCL, board.SDA)
rtc = adafruit_ds1307.DS1307(i2c)

# Stel de datum en tijd in (Jaar, Maand, Dag, Uur, Minuut, Seconde, Weekdag, Zomertijd)
rtc.datetime = time.struct_time((2025, 1, 1, 12, 0, 0, 0, -1, -1))

print("RTC-datum en -tijd ingesteld!")

Python-code om de tijd uit te lezen van de DS1307

Gebruik na het instellen van de tijd dit script om de huidige datum en tijd uit te lezen.

import time
import board
import busio
import adafruit_ds1307

# Initialiseer I2C-bus en DS1307
i2c = busio.I2C(board.SCL, board.SDA)
rtc = adafruit_ds1307.DS1307(i2c)

while True:
    current_time = rtc.datetime
    print(f"Datum: {current_time.tm_year}-{current_time.tm_mon:02d}-{current_time.tm_mday:02d}")
    print(f"Tijd: {current_time.tm_hour:02d}:{current_time.tm_min:02d}:{current_time.tm_sec:02d}")
    time.sleep(1)

Stap 5: De DS1307 synchroniseren met de systeemklok van de Raspberry Pi

Om de DS1307 RTC-tijd te synchroniseren met de systeemtijd van de Raspberry Pi:

  1. Lees de DS1307 RTC-tijd uit en stel deze in als systeemtijd:
    sudo hwclock -r
    sudo hwclock -s
    
  2. Stel de DS1307 RTC-tijd in op basis van de systeemtijd van de Raspberry Pi:
    sudo hwclock -w
    

Stap 6: Toepassingen van de DS1307 RTC-module

  1. Tijd bijhouden op headless Raspberry Pi-apparaten – Handig voor dataregistratie-projecten.
  2. Domoticasystemen – Zorg voor nauwkeurige geplande gebeurtenissen, zelfs na stroomuitval.
  3. IoT-projecten – Gebruik de DS1307 voor het voorzien van tijdstempels in omgevingen zonder netwerkverbinding.
  4. Weerstations – Sla nauwkeurige tijdstempels op voor temperatuur- en vochtigheidsgegevens.

Probleemoplossing

  1. DS1307 niet gedetecteerd (i2cdetect toont geen 0x68)

    • Zorg ervoor dat de SDA/SCL-pinnen correct zijn aangesloten.
    • Controleer of I2C is ingeschakeld via sudo raspi-config.
  2. Onjuiste datum/tijd-waarden

    • Voer sudo hwclock -r uit om de hardwareklok te controleren.
    • Reset de RTC-klok met sudo hwclock -w.
  3. RTC-tijd blijft niet behouden na uitschakelen

    • Zorg ervoor dat de CR2032-batterij correct is geplaatst.
    • Vervang de batterij als deze leeg of bijna leeg is.

Conclusie

De DS1307 RTC-module biedt nauwkeurige real-time tijdregistratie voor Raspberry Pi-projecten, zelfs wanneer deze zijn uitgeschakeld. Door deze handleiding te volgen, kun je RTC-functionaliteit integreren in IoT-, automatiserings- en dataregistratietoepassingen. 🚀

Notice an Issue? Have a Suggestion?
If you encounter a problem or have an idea for a new feature, let us know! Report a problem or request a feature here.

Laat een reactie achter