Skip to content

Instantly share code, notes, and snippets.

@neosarchizo
Last active August 2, 2022 06:02
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save neosarchizo/1811ac5879ef767f15e9cf6cac79c029 to your computer and use it in GitHub Desktop.
Save neosarchizo/1811ac5879ef767f15e9cf6cac79c029 to your computer and use it in GitHub Desktop.
MicroPython - ESP32 RTC 제어
from machine import Pin, SoftI2C, RTC, Timer
from ssd1306 import SSD1306_I2C
week = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
# MON ~ SUN : 0 ~ 6
time = ['', '', '']
i2c = SoftI2C(sda=Pin(13), scl=Pin(14))
display = SSD1306_I2C(128, 64, i2c, addr=0x3C)
rtc = RTC()
if rtc.datetime()[0] != 2022:
rtc.datetime((2022, 8, 2, 14, 46, 0, 0, 0))
def on_timeout(_):
datetime = rtc.datetime()
display.fill(0)
display.text('DeviceMart', 0, 0)
display.text('RTC Clock', 0, 15)
display.text(
str(datetime[0]) +
'-' +
str(datetime[1]) +
'-' +
str(datetime[2]) +
' ' +
week[datetime[3]],
0,
40
)
for i in range(4, 7): # 4 ~ 6 : Hours Mins Secs
if datetime[i] < 10:
time[i - 4] = '0'
else:
time[i - 4] = ''
display.text(
time[0] +
str(datetime[4]) +
':' +
time[1] +
str(datetime[5]) +
':' +
time[2] +
str(datetime[6]),
0,
55
)
display.show()
timer = Timer(-1)
timer.init(period=300, mode=Timer.PERIODIC, callback=on_timeout)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment