ESP822刷MicroPython实现自动校时时钟

1. 准备ESP8266模块一个

2. 刷入Micropython固件,方法 传送门icon-default.png?t=LA92https://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)

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值