功能
- 带NTP校准的时钟日期显示
- 获取本地实时天气信息
- DLNA局域网音乐投放
- 温湿度,二氧化碳传感器监测
- 倒计时功能
- Windows性能监视器
- 同步ToDoist代办事项
准备一张SD卡,将SD卡资源文件夹拷贝到SD卡根目录
修改SD卡ToDoList_cfg/sys_cfg.txt文件,并按以下格式填入信息
- WIFI_SSID(WiFi 名称)
- WIFI_PWD(WiFi 密码)
- TODOIST_AUTH(ToDoist API口令)
- TODOIST_PROID(ToDoist 同步的项目ID)
- XINGZHI_AUTH(心知天气 API口令)
- XINGZHI_CITY(心知天气对应的城市拼音)
- 进入ToDoist官网,注册账户后,打开设置,关联应用,顶部找到开发者选项,复制API口令,填入TODOIST_AUTH
- 进入ToDoist官网,在左侧我的项目下,选择添加项目,在浏览器登录ToDoist的情况下,访问此链接,根据json信息找到刚才新建的项目名称,找到对应的id,填入TODOIST_PROID
- 进入心知官网,注册账户后创建免费计划,进入控制台,找到产品,复制私钥,即可填入XINGZHI_AUTH
- 进入心知天气文档,将本地城市名称拼音填入XINGZHI_CITY
在上述就绪后,根据烧录说明烧录程序,即可在无搭建开发环境的情况下使用本项目,enjoy it😋!
性能监视器只支持Windows,基于LibreHardwareMonitor动态库实现的二次开发的CmdMonitor软件实现将对应信息打印到控制台上,再由QT开发的上位机软件捕捉控制台输出,将其通过串口发送给下位机,虽然看着十分繁琐,但好在CPU占用在0.1%左右,内存占用10M以内。LibreHardwareMonitor是由C#编写的,我尝试在QT中调用它的动态库,但是没成功,只能绕个圈圈用C#二次开发的CmdMonitor。
在AMD更新24.12.1版驱动后,AMD显卡的很多信息无法被LibreHardwareMonitor所输出,即使LibreHardwareMonitor软件也是一样,之前22.x版本是正常的,等LibreHardwareMonitor更新后可能会修复。
由于ESP32S3的外部IO接口有限,因此使用IDF默认的串口进行和上位机通讯,如果需要调试,请关闭下位机的性能监视器任务,或多插两个串口使用端口转发进行调试。
OTA组件修改esp_ghota,将Github的相关API改为Gitee。使用该组件可以使得下位机自动监测仓库地址的release是否有新的固件,若有则会从仓库release下载并执行更新,免去了搭建服务器的麻烦,由于总所周知的问题,国内并不能稳定的访问Github服务器,这也是为什么改为Gitee和建立Gitee镜像仓库的原因。
天气使用心知天气提供的免费API,通过HTTP的get方法获取到json信息后使用cJSON库进行解析,但目前无法做到根据IP自动获取地区,需要手动设置地区
局域网音乐投放目前只做了单声道,使用解码板附带的喇叭效果实在难以恭维,后期可能会升级双声道并换上MacBook的扬声器
使用SGP30和SHT30两款I2C接口的传感器监测温湿度和二氧化碳信息,使用I2C接口可以有效的节省下位机IO口资源,但SGP30似乎需要连续运行30个小时以上才准确,并使用的动态基准线技术实现校准,后续在开发NVS功能时会把这个缺点补上
原本打算使用ESP32做一个网页服务器实现代办功能,但实用性实在有限,不如找一个可以提供外部API的代办清单,通过同步获取代办显示到下位机上
通过Todoist的API,通过https的get方法实现获取待办,下位机勾选后,通过post方法实现删除待办
用于存放ESP32的代码
SquareLineProject是LVGL的图形化UI生成工具,此文件夹用于存放SquareLine工程文件及其导出的文件
用于前期验证备忘录的存储及其存储结构
./publish 上位机软件,支持windows,64位软件可以直接运行
./HxMonitor QT工程文件
./publish 编译后的软件,可以直接运行
Q:为什么IDF无法成功编译
A:1.如果使用了clash获取其他代理软件,尝试关闭代理后编译
Q:为什么烧录失效
A:请查看烧录说明
A:无法进入烧录模式请拔除外设电源线后重试