自修伴侣(self-study planner)是基于物联网操作系统TencentOS tiny和CH32V_EVB RISC-V开发套件开发一款物联网化的番茄时钟、喝水提醒、to-do list 清除为一体的自修伴侣。
1. IDEA
这些功能手机都能实现,而且没有额外成本。但是,手机是万恶之源,时间黑洞;自修这么神圣的事情,自然走极简风格。此外”自修伴侣“如实记录你番茄时钟启停,喝水以及清任务的时间,后续可以用数据处理模板分析比较,一方面有成就感,一方面量化了自己的努力,不亦说乎。
2. 硬件框图
3. 系统设计及技术实践
这个项目一方面实现了好玩的”自修伴侣“的idea,更重要的一方面是对新平台(risc-v ch32v307)和TencentOS-tiny以及腾讯物联网平台的能力的探索、组合创新体验。就我个人来说,稍微值得称道的是4个技术实践:
1) TencentOS-Tiny元素的使用
比如多任务架构:mqtt、显示、按键交互‒同步,还有FIFO、Sem的使用,还有systick的使用;
2) 基于IoT NTP 服务的实时时钟实现
偶然发现IOT平台的设备对象的系统Topic种提供NTP Time的接口,精度还算可以(估计100ms内);为了使用这个接口,端末设备多需要多pub一个信息,以及sub一个回复的主题;为了解析回来json str种的长整形(64bit),需要对CJson的类库做些微修改。
3)IOT平台便捷的物模型及数据流
简便的物模型设计、加上数据流配置、腾讯连连,毫无门槛的实现了设备端和手机端(公众号、小程序)互通;加上规则引擎更能实现设备互通,
4)作为mqtt客户端的内容服务器设计
小范围应用创新,将这个互通的设备概念扩展到内容服务器,接受规则引擎转发设备端数据,一方面存储,一方面根据其状态,拉取公网内容(这里是Google Calendar的Event)同步给设备端,设备端完成后,记录整个时间周期,适当时机修改公网内容。这个内容服务,可以扩展到天气,外卖,图书馆抢位置...
4. 技术实践
1) RTOS的多任务设计
2)IoT NTP Time Sync
3) 基于规则引擎的设备互通
4)内容服务器设计
5. ppt
6. 演示视频
7. 源码地址
github: https://github.com/flavorfan/tencentOSTiny-ch32v307-self-study-planner.git
8.Refrence
1) 开发笔记:基于IoT NTP实现实时时钟
2) 开发笔记:最简步骤移植LVGL