网络时钟部分类似于我之前的项目Very Simple MicroPython ESP8266/ESP-12 Web Clock 。主要区别在于它通过 NTP(网络时间协议)查询时间,而不是使用第三方 API。
ntptime是MicroPython的内置库,只需调用ntptime.settime() 即可轻松用于更新 ESP8266/ESP32 板的系统时间(本地时间)。(请注意,您的 NTP 查询可能并不总是成功,具体取决于您的 WiFi 连接质量。)
你从NTP得到的时间是UTC+0;在代码中,变量timezone_hour可用于设置时区调整。例如,如果您的时区是 UTC+8,则设置 timezone_hour = 8。
本项目还使用了一个非阻塞的web服务器来提供闹钟设置界面(不会阻塞循环过程等待新的客户端连接,因此时钟时间仍然可以正常显示)。我写了一段代码,可以将任意名称的任意数量的参数解析为来自 URL的列表para_array 。这可能对想要构建类似项目的人有用。
REPL 输出示例:
Connecting to WiFi...
Connected.
Web server is now online on xxx, IP: 192.168.100.155
NTP server query successful.
System time updated: (2019, 12, 4, 7, 56, 25, 2, 338)
New client connected, IP: ('192.168.100.164', 54551)
Alarm has been set to 7:30
Alarm enabled
Sending web page...
Client connection ended.
有源压电蜂鸣器用作闹钟,倾斜开关(我使用的是 SW-520D)可用于通过摇动来关闭闹钟。0.96" OLED 显示屏显示时钟时间和闹钟时间、闹钟状态(“o”已启用,“x”未启用)以及服务器 IP(在您的本地 WiFI 网络上)。
如果没有人摇动倾斜开关,警报会在一分钟后自行关闭。
该代码已在带有 WeMos D1 mini 的 MicroPython 固件 v1.11 上进行了测试。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
全部0条评论
快来发表一下你的评论吧 !