ESP32开发板的RTC时钟,利用0.91寸oled显示(ssd1306),MicroPython编写

  • Post author:
  • Post category:python


又入手了一个ESP32的开发板,主要是便宜,四舍五入约等于不要钱,哈哈,再配上一个0.91寸的OLED,马上就能看见程序输出的内容,十分激动!赶紧copy一个代码过来学习下,毕竟自己是肯定研究不出来的,哈哈哈,但是并不是无脑copy,每次都会根据自己的实际情况修改下,消化吸收后自己以后也能照猫画虎的用一用了。

在这记录一下,总算是能显示出来了,做的这些东西都十分鸡肋,主要就是学习过程,哈哈哈!

import machine
from machine import Pin, I2C, RTC,Timer
from ssd1306 import SSD1306_I2C

week = ['Monday', 'Tuesday', 'Wednesay', 'Thursday', 'Friday', 'Saturday', 'Sunday']
time_list = ['', '', '']
i2c = machine.SoftI2C(sda=Pin(23), scl=Pin(19)) 
oled = SSD1306_I2C(128, 32, i2c, addr=0x3c)
rtc = RTC()
if rtc.datetime()[0] != 2022:
    rtc.datetime()

def RTC_Run(tim):
    datetime = rtc.datetime() # 获取当前时间
    oled.fill(0) # 清屏显示黑色背景
    oled.text('CLOCK!',0,0)
    
    oled.text(str(datetime[0]) + '-' + str(datetime[1]) + '-' + 
    str(datetime[2]) + '' + week[datetime[3]], 0, 12)
    # 显示时间需要判断时、分、秒的值否小于 10,如果小于 10,则在显示前面补“0”以
    # 达到较佳的显示效果
    for i in range(4, 7):
        if datetime[i] < 10:
            time_list[i - 4] = "0"
        else:
            time_list[i - 4] = ""
    # 显示时间
    oled.text(time_list[0] + str(datetime[4]) + ':' + time_list[1] + str(datetime[5]) + ':' + time_list[2] + str(datetime[6]), 0, 25)
    oled.show()
#开启 RTOS 定时器
tim = Timer(-1)
tim.init(period=300, mode=Timer.PERIODIC, callback=RTC_Run) #周期 300ms



版权声明:本文为micro_python原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。