1. 准备ESP8266模块一个
2. 刷入Micropython固件,方法 传送门https://blog.csdn.net/zlllg/article/details/90905190?spm=1001.2014.3001.5501
3. 编写自动校时代码,这里我们使用阿里云的时间服务器来实现自动校时,这里我们使用到了TM1637数码管模块
管脚定义
CLK:GPIO12
DIO:GPIO13
VCC:5V电源
GND:电源接地
import time #导入时钟模块
import ntptime #导入联网授时模块
import tm1637 #导入tm1637显示驱动模块
#定义存储时间的变量,方便后面显示时使用
cal_year=0
cal_mon=0
cal_day=0
cal_hour=0
cal_min=0
cal_sec=0
tm = tm1637.TM1637(clk=Pin(12), dio=Pin(13)) #配置tm1637管脚:CLK:GPIO12、DIO:GPIO13
if __name__ == "__main__":
tm.brightness(1) #设置显示亮度为1
ntptime.NTP_DELTA = 3155644800 #可选 UTC+8偏移时间(秒),不设置就是UTC0
ntptime.host = 'ntp1.aliyun.com' #可选,ntp服务器,默认是"pool.ntp.org" 这里使用阿里服务器
ntptime.settime() #获取服务器时间存储在本地
while True:
list_time = time.localtime() #把本地时间读入list_time元组
cal_year = list_time[0] #从list_time元组中取出年份,以下分别是月份、日、时、分、秒
cal_mon = list_time[1]
cal_day = list_time[2]
cal_hour = list_time[3]
cal_min = list_time[4]
cal_sec = list_time[5]
tm.numbers(cal_hour, cal_min,True) #将时、分送给tm1637显示,第3个参数是设置是否开启中间两个点
print(list_time) #打印本地时间
time.sleep(0.5) #延时0.5秒
tm.numbers(cal_hour, cal_min,False) #关闭中间两个点
time.sleep(0.5)