标准版
【训练营】基于ESP32-C3的迷你网络时钟+1136228A
6.5k
0
0
1
简介
带有NTP对时功能、时间与日期显示的3*3cm迷你时钟
简介:带有NTP对时功能、时间与日期显示的3*3cm迷你时钟开源协议
:GPL 3.0
创建时间:2021-09-26 21:06:46更新时间:2021-12-11 23:28:10
描述
使用方式
若不使用提供的PCB,参考下述硬件连接和软件配置方案:
- 1、安装并配置好ESP_IDF开发套件。
- 2、将基于SSD1306或SSD1315的OLED模块连接到ESP32/ESP32-C3开发板的IIC引脚(程序默认SDA 32、SCL 33;电路板为SDA 4、SCL 5;使用电路板需自行修改)。
- 3、使用USB转串口工具连接ESP32/ESP32C3
- 4、下载工程文件到指定路径,必须保证文件路径为全英文。
- 5、使用cd命令进入工程文件夹,输入idf.py set-target <芯片型号>选择目标编译的芯片型号。
- 6、输入idf.py menuconfig 进入工程配置选单,在example configure选项下配置连接到的AP名称及其密码。
- 7、输入idf.py build 进行编译
- 8、使用idf.py flash命令进行烧录,该命令的使用方法在不同平台或硬件的使用方法有差异,详见esp_idf开发文档烧录一节。
运行机制
- 1、本时钟基于SNTP协议获取时间,使用内部的RTC走时,校时服务器来自阿里云。由于本时钟依赖于芯片内部的RTC,因此不具备掉电走时的特性,每次掉电后时间信息将重置。
- 2、时钟的程序包含三个事件和一个任务。三个事件分别为WiFi连接事件、WiFi断联事件和SNTP同步事件,它们之间各自负责系统时间和系统状态的更新。任务负责OLED屏幕显示内容的刷新,以1hz的频率运行,其在freertos中的任务优先级1。
- 3、SSD1315的驱动程序为本人杜撰的精简适配版本,基于ESP32的IIC总线API进行的适配。均为线程安全的。
- 4、本时钟上电即尝试连接到AP,在连接到AP后立即向设定的SNTP服务器发送请求,尝试进行校时,后续将按照设定的周期定期对时间进行校正。若在上电时或运行时出现AP断联的情况,程序将每隔5秒尝试重新连接到AP。
文件结构
-esp32clock
-build<输出目录>
-components<组件目录>
- SSD1315
- SNTP_APP
- image <显示数据>
-main<主函数目录>
个性化配置
- 配置WiFi接入点,见上文。
- 修改SNTP校时周期,修改{PROJECT_DIR}/main/main.c中的SNTPSYNCCYCLE宏定义值,默认为10分钟。
- 修改OLED的显示,修改{PROJECT_DIR}/components/SSD1306/SSD1315.c中第24行.display_mode的值(INVERSE_DISPLAY:反转显示、NORMAL_DISPLAY:正常显示)。
- 修改SNTP服务器,修改{PROJECT_DIR}/components/SNTP_APP/include/SNTP_APP.h中NTP_URL的宏定义。
已知问题
- 预留了PCF8563 RTC芯片及其元件的焊位,但由于后续设计方案的改变,未使用该芯片。
- 由于SNTP通知回调函数不返回校时失败的状态,因此SNTP状态标志只能反映时间曾经过SNTP校正。具体的判断参考顶部最近更新的小时数。
版本信息
2021/10/23 初版发布
2021/10/28 硬件错误修正
设计图
未生成预览图,请在编辑器重新保存一次
BOM
暂无BOM
克隆工程
添加到专辑
0
0
分享
侵权投诉
评论