ESP32+时钟、闹钟、温度+microPython程序 (2020-10-09)

ESP32+时钟、闹钟、温度+microPython程序 (2020-10-09),第1张

【硬件】:ESP32芯片、DS3231时钟芯片、五方向按键(带set和rst按键)、有源蜂鸣器、 LCD1602液晶屏(带PCF8574芯片,注意不是背光可调多种颜色的那种RGB1602)

【软件】:microPython

1、开始自动检测WIFI,检测到之后,自动从网络获取时间,并写入esp8266/esp32、同时写入ds3231时钟芯片中

2、如果不能联网,则自动从ds3231芯片获取时间

3、按中键,可以开启关闭屏幕背光

4、按set键,可以进入菜单,可以设置日期、时间、闹钟以及闹钟是否开启(默认每天循环)

5、液晶屏幕上,时间与温度中间,如果有个.显示,表示闹钟是开启状态。 如果没有,则表示闹钟关闭

DS3231micro.py : 从 https://www.jianshu.com/p/93af7d173f98 可以复制

esp8266_i2c_ lcd.py 与 lcd_ api.py : 从 https://www.jianshu.com/p/7798d0c06c69 可以复制

使用 time 模块:

这些延时是阻塞式延时, 后续程序需要等待其完成

ESP32端口有四个硬件计时器。使用 machine.Timer 类,其计时器ID为0到3(包括3):

这些延时是计数器延时, 不会阻塞其他程序

下面这个例子能够很好的看出这一点

值得注意的是, 回调函数必须有一个形参t来接收定时器本身 ,这样可以从回调中停止定时器了

使用 machine.Pin 类:

可用的引脚来自以下范围(包括以下范围):0-19、21-23、25-27、32-39。这些对应于ESP32芯片的实际GPIO引脚号。

引脚1和3分别是REPL UART TX和RX

引脚6、7、8、11、16和17用于连接嵌入式闪存,不建议用于其他用途

引脚34-39仅用于输入,也没有内部上拉电阻

可以设置某些引脚的上拉值Pin.PULL_HOLD以降低深度睡眠期间的功耗。

如果按下按键, 则暂停/重启 闪灯

下面的例子做了一个简易呼吸灯效果:


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11558657.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存