#-----------------------------------------------------------------------#
# Objectives: #
# #
# - Get and print RTC-Based System time on LCD #
# #
# Author: Markus Pfeil #
# Created Date: 5-12-2025 #
#
# Based on a projec by Drop Bos # #
# ----------------------------------------------------------------------#
from lcd1602 import LCD
from ds1307 import DS1307
from machine import Pin, I2C, RTC
from utime import sleep, time
print("Starting Heart...")
print("...")
# 1. set up heartbeat
led_one = Pin(5, Pin.OUT)
led_one.high()
# 2. set up I2C
i2c = I2C(0, scl = Pin(1), sda = Pin(0), freq = 100000) # default values: scl=Pin(9), sda=Pin(8), freq=400000
# 3. LCD setup
# https://toptechboy.com/lcd1602-display-library-for-micropython-and-the-raspberry-pi-pico-w/
lcd = LCD(bus = i2c)
# 4. setup rtc
# https://github.com/peter-l5/DS1307/blob/main/ds1307.py
sys_clock = DS1307(scl=Pin(7), sda=Pin(6))
print("...")
def system_time_display():
# Get time and write to LCD
lcd.clear()
sys_time_now = sys_clock.datetime
now = sys_time_now
lcd.write(0, 0, f"Date: {now[2]:02}-{now[1]:02}-{now[0]:0}")
lcd.write(0, 1, f"Time: {now[3]:02}:{now[4]:02}:{now[5]:02}")
while True:
#Create the 1s rythm
system_time_display()
led_one.low()
sleep(0.5)
led_one.high()
sleep(0.5)