from machine import I2C, Pin, RTC
from i2c_lcd import I2cLcd
import time
# 設定 I2C 腳位(依照您的 ESP32 接線選擇)
i2c = I2C(0, scl=Pin(22), sda=Pin(21), freq=400000)
# LCD 位址和尺寸設定
LCD_ADDRESS = 0x27 # 請確認您的 LCD 位址
LCD_ROWS = 2
LCD_COLS = 16
# 初始化 LCD
lcd = I2cLcd(i2c, LCD_ADDRESS, LCD_ROWS, LCD_COLS)
# 清除 LCD 畫面
lcd.clear()
# 初始化 RTC
rtc = RTC()
# 設定 RTC 時間(假設當前時間是 2024 年 11 月 1 日 10:00:00)
rtc.datetime((2024, 11, 1, 0, 10, 0, 0, 0)) # 格式:(年, 月, 日, 星期, 時, 分, 秒, 毫秒)
while True:
# 取得當前日期和時間
current_time = rtc.datetime()
date_str = "{:04d}-{:02d}-{:02d}".format(current_time[0], current_time[1], current_time[2])
time_str = "{:02d}:{:02d}:{:02d}".format(current_time[4], current_time[5], current_time[6])
# 清除 LCD 並顯示日期和時間
lcd.clear()
lcd.putstr(date_str) # 在第一行顯示日期
lcd.move_to(0, 1) # 移動到第二行
lcd.putstr(time_str) # 在第二行顯示時間
time.sleep(1) # 每秒更新一次