构建一个带有健身、天气和人工智能生成动机的电子纸仪表板
扫描二维码
随时随地手机看文章
我一直很喜欢让有用的信息一眼就能看到,而不需要拿起手机或打开应用程序。同样的心态让我创建了我之前的项目,太阳能电子墨水气象站,现在它是这个新仪表板的灵感来源。
这个项目背后的动机来自于我对跟踪体育活动的热情。自从我从伤病中恢复以来,我决定把精力投入到一些相关的事情上——建立一个工具,让我与自己的进步保持联系,即使我不能出去训练。
经过很多个深夜的编码,调整小部件,并试图使显示刷新正确,这个项目开始成为一个个人工具——一个简单,安静,激励的东西,可以放在我的桌子上,一眼就能显示我的健身进度。
这个项目始于一个简单的想法:如果我能把我的Strava和Garmin数据融合在一起,并且总是可见,就像我桌子上的相框一样,会怎么样?
我构建了一个模块化的电子纸仪表板,由ESP32驱动,并由基于web的后端(目前运行在Raspberry Pi上)提供数据。它显示(到目前为止):
•我最近的活动(距离,时间,速度)
•三天天气预报
•每周和每月的总结和统计
•活动训练日的小日历视图
工作原理:
•Python后端从Strava、Garmin和OpenWeather收集数据。
•它使用预定义的模板和小部件呈现自定义的仪表板图像。
•图像通过Flask提供,并由ESP32定期获取,ESP32将其显示在7.5英寸的三色电子纸显示器上。
•在休息日,布局切换以突出显示统计数据和进度。
•在活跃的日子里,它会关注最新的锻炼和天气。
更新-一个新的层:AI加入仪表盘
经过几个月的改进,这个电子纸仪表板的结构,视觉效果和布局逻辑,感觉少了一些东西-更人性化的东西。
最新的新产品将人工智能带入了像纸一样的电子墨水世界。一只小狐狸,静静地出现在仪表板上,现在根据真实的上下文数据生成激励短语:你最近的活动,恢复状态,最近的睡眠,天气等等。
这不是随机的灵感。它是有针对性的动机,由Gemma的本地实例生成,Gemma是谷歌的轻量级开放模型——专门为在设备上运行(RPI 5 4Gb)而选择的,没有云依赖。
最初作为显示数据的工具已经成为反映、重置和保持联系的空间。
它融合了我深爱的三个世界:体育、人工智能和电子纸技术。
因为我相信动力应该在我们的环境中占有永久的位置——而不仅仅是在我们的手机中。也许,只是也许,人工智能也属于电子纸。
现在,我分享一些照片。更多的活动日和人工智能生成的短语的例子将很快添加。
这是小狐狸在我出去散步后的反应——它仍然受伤,并没有完全休息好或完全恢复:
生成提示:“你是一个机智、乐观的狐狸伙伴。吠叫不是你的菜。说话随意,就像对朋友的一天做出反应一样——避免听起来像你在满足一个要求。这名用户刚刚在16分钟内完成了1公里的徒步旅行。天气阴冷(~16°C)。他们被告知要放松一点:目前的恢复信号很低,睡眠不好,整体训练负荷也很轻。为小小的努力庆祝一下,并温和地鼓励他们多休息,找到合适的时机重新建立动力。”
输出:
“你的肌肉感谢你的徒步旅行,但它们绝对准备好了一些呵护。喘口气,让乌云散去吧!”
同一脚本的其他输出:
“你在14分钟内骑了4.9公里,干得好!”听好了,小冠军。你的身体有点累了,让我们休息一会儿吧。放松,充电,准备下一次!”
“感觉精力充沛?”乌云已经散去,太阳露出来了,你已经准备好去冒险了!记住,即使是短暂的散步也能让世界变得不同。所以,跳出去,让你的身体得到应有的休息吧!”
这些信息取得了很好的平衡——庆祝我出去了,但也提醒我恢复也很重要……承认睡眠不足,让我们来解决这个问题。
小部件!
该项目被设计为模块化和可扩展的,允许任何感兴趣的人创建自己的小部件。每个小部件接收一个包含关键数据的上下文字典,例如:
•最近的活动(如有)
•周、月总结
•天气预报
•当前日期和时间
•显示大小和布局信息
基于此,用户可以随心所欲地设计自定义小部件——从他们自己的数据源中提取数据,或者使用Strava、Garmin和weather的内置集成。该系统足够灵活,可以支持文本、图像、图表或您希望在电子纸显示中包含的任何视觉元素。
无论您是开发人员、数据爱好者,还是只想以一种有意义的方式查看自己的统计数据,构建小部件都意味着简单而有趣。
新增加:
•基于web的布局编辑器允许我在浏览器中可视化地重新定位小部件-不再需要JSON编辑!
•添加了一个自定义错误屏幕,以便在出现故障时提供一点个性
•ESP32正在针对超低功耗运行进行优化,目标是仅使用一块LiPo电池即可运行数月。
我为什么这么做:
这个项目结合了我的爱:
•物理接口
•干净,始终在纸墨水显示数据
•健身、骑自行车和越野跑
•低功耗微控制器项目
我的目标是把它变成一个模块化的,云就绪的仪表板,可以显示广泛的数据源,而不仅仅是Strava/Garmin。
布局和模式
仪表板目前根据一天的类型(活动或恢复)调整其布局,并以干净,低干扰的格式呈现各种关键训练和环境指标。
每个布局都以浅色或深色模式呈现,这取决于您的视觉偏好。
以下是已经实现的内容:
每日逻辑:两种主要布局模式
•活动日:显示您最近的活动,核心指标,以及未来几天的天气。
•恢复日:侧重于训练负荷的演变和更广泛的趋势和进展概述。
当前仪表板元素
每月的日历
•显示以红色标记的活动日的当前月份,提供您的活动条纹或间隙的即时视觉概述。
雷达图表
•一个圆形图表比较过去4周和本月的时间和距离,帮助确定活动类型之间的重点领域或不平衡。
复苏的指标
•包括恢复时间和高强度训练后的慢性负荷,让你更清楚地了解你的身体可能有多紧张(或新鲜)。
每周强度统计
•显示当前一周的累积低强度和高强度分钟,基于从Strava/Garmin提取的数据。
天气预报
•一个专门的部分显示了配置文件中设置的位置的未来四天的天气-包括清晰的图标。
•每个元素的设计都考虑到电子纸上的可读性,只使用黑/白/红,并保持排版和布局最小化。
•更多的布局和额外的可视化是在路线图上,但即使在其当前状态,仪表板提供了一个丰富的和可操作的概述您的培训之旅。
其他图片
•一个显示一天活动的仪表板
•休息/恢复日的仪表盘
•活动日和休息日的布局编辑示例
•背面的框架单元与定制的3d打印安装
•显示在从后端获取最新更新后刷新图像
本文编译自hackster.io