構(gòu)建一個(gè)帶有健身、天氣和人工智能生成動(dòng)機(jī)的電子紙儀表板
我一直很喜歡讓有用的信息一眼就能看到,而不需要拿起手機(jī)或打開(kāi)應(yīng)用程序。同樣的心態(tài)讓我創(chuàng)建了我之前的項(xiàng)目,太陽(yáng)能電子墨水氣象站,現(xiàn)在它是這個(gè)新儀表板的靈感來(lái)源。
這個(gè)項(xiàng)目背后的動(dòng)機(jī)來(lái)自于我對(duì)跟蹤體育活動(dòng)的熱情。自從我從傷病中恢復(fù)以來(lái),我決定把精力投入到一些相關(guān)的事情上——建立一個(gè)工具,讓我與自己的進(jìn)步保持聯(lián)系,即使我不能出去訓(xùn)練。
經(jīng)過(guò)很多個(gè)深夜的編碼,調(diào)整小部件,并試圖使顯示刷新正確,這個(gè)項(xiàng)目開(kāi)始成為一個(gè)個(gè)人工具——一個(gè)簡(jiǎn)單,安靜,激勵(lì)的東西,可以放在我的桌子上,一眼就能顯示我的健身進(jìn)度。
這個(gè)項(xiàng)目始于一個(gè)簡(jiǎn)單的想法:如果我能把我的Strava和Garmin數(shù)據(jù)融合在一起,并且總是可見(jiàn),就像我桌子上的相框一樣,會(huì)怎么樣?
我構(gòu)建了一個(gè)模塊化的電子紙儀表板,由ESP32驅(qū)動(dòng),并由基于web的后端(目前運(yùn)行在Raspberry Pi上)提供數(shù)據(jù)。它顯示(到目前為止):
?我最近的活動(dòng)(距離,時(shí)間,速度)
?三天天氣預(yù)報(bào)
?每周和每月的總結(jié)和統(tǒng)計(jì)
?活動(dòng)訓(xùn)練日的小日歷視圖
工作原理:
?Python后端從Strava、Garmin和OpenWeather收集數(shù)據(jù)。
?它使用預(yù)定義的模板和小部件呈現(xiàn)自定義的儀表板圖像。
?圖像通過(guò)Flask提供,并由ESP32定期獲取,ESP32將其顯示在7.5英寸的三色電子紙顯示器上。
?在休息日,布局切換以突出顯示統(tǒng)計(jì)數(shù)據(jù)和進(jìn)度。
?在活躍的日子里,它會(huì)關(guān)注最新的鍛煉和天氣。
更新-一個(gè)新的層:AI加入儀表盤(pán)
經(jīng)過(guò)幾個(gè)月的改進(jìn),這個(gè)電子紙儀表板的結(jié)構(gòu),視覺(jué)效果和布局邏輯,感覺(jué)少了一些東西-更人性化的東西。
最新的新產(chǎn)品將人工智能帶入了像紙一樣的電子墨水世界。一只小狐貍,靜靜地出現(xiàn)在儀表板上,現(xiàn)在根據(jù)真實(shí)的上下文數(shù)據(jù)生成激勵(lì)短語(yǔ):你最近的活動(dòng),恢復(fù)狀態(tài),最近的睡眠,天氣等等。
這不是隨機(jī)的靈感。它是有針對(duì)性的動(dòng)機(jī),由Gemma的本地實(shí)例生成,Gemma是谷歌的輕量級(jí)開(kāi)放模型——專(zhuān)門(mén)為在設(shè)備上運(yùn)行(RPI 5 4Gb)而選擇的,沒(méi)有云依賴(lài)。
最初作為顯示數(shù)據(jù)的工具已經(jīng)成為反映、重置和保持聯(lián)系的空間。
它融合了我深?lèi)?ài)的三個(gè)世界:體育、人工智能和電子紙技術(shù)。
因?yàn)槲蚁嘈艅?dòng)力應(yīng)該在我們的環(huán)境中占有永久的位置——而不僅僅是在我們的手機(jī)中。也許,只是也許,人工智能也屬于電子紙。
現(xiàn)在,我分享一些照片。更多的活動(dòng)日和人工智能生成的短語(yǔ)的例子將很快添加。
這是小狐貍在我出去散步后的反應(yīng)——它仍然受傷,并沒(méi)有完全休息好或完全恢復(fù):
生成提示:“你是一個(gè)機(jī)智、樂(lè)觀的狐貍伙伴。吠叫不是你的菜。說(shuō)話(huà)隨意,就像對(duì)朋友的一天做出反應(yīng)一樣——避免聽(tīng)起來(lái)像你在滿(mǎn)足一個(gè)要求。這名用戶(hù)剛剛在16分鐘內(nèi)完成了1公里的徒步旅行。天氣陰冷(~16°C)。他們被告知要放松一點(diǎn):目前的恢復(fù)信號(hào)很低,睡眠不好,整體訓(xùn)練負(fù)荷也很輕。為小小的努力慶祝一下,并溫和地鼓勵(lì)他們多休息,找到合適的時(shí)機(jī)重新建立動(dòng)力?!?
輸出:
“你的肌肉感謝你的徒步旅行,但它們絕對(duì)準(zhǔn)備好了一些呵護(hù)。喘口氣,讓烏云散去吧!”
同一腳本的其他輸出:
“你在14分鐘內(nèi)騎了4.9公里,干得好!”聽(tīng)好了,小冠軍。你的身體有點(diǎn)累了,讓我們休息一會(huì)兒吧。放松,充電,準(zhǔn)備下一次!”
“感覺(jué)精力充沛?”烏云已經(jīng)散去,太陽(yáng)露出來(lái)了,你已經(jīng)準(zhǔn)備好去冒險(xiǎn)了!記住,即使是短暫的散步也能讓世界變得不同。所以,跳出去,讓你的身體得到應(yīng)有的休息吧!”
這些信息取得了很好的平衡——慶祝我出去了,但也提醒我恢復(fù)也很重要……承認(rèn)睡眠不足,讓我們來(lái)解決這個(gè)問(wèn)題。
小部件!
該項(xiàng)目被設(shè)計(jì)為模塊化和可擴(kuò)展的,允許任何感興趣的人創(chuàng)建自己的小部件。每個(gè)小部件接收一個(gè)包含關(guān)鍵數(shù)據(jù)的上下文字典,例如:
?最近的活動(dòng)(如有)
?周、月總結(jié)
?天氣預(yù)報(bào)
?當(dāng)前日期和時(shí)間
?顯示大小和布局信息
基于此,用戶(hù)可以隨心所欲地設(shè)計(jì)自定義小部件——從他們自己的數(shù)據(jù)源中提取數(shù)據(jù),或者使用Strava、Garmin和weather的內(nèi)置集成。該系統(tǒng)足夠靈活,可以支持文本、圖像、圖表或您希望在電子紙顯示中包含的任何視覺(jué)元素。
無(wú)論您是開(kāi)發(fā)人員、數(shù)據(jù)愛(ài)好者,還是只想以一種有意義的方式查看自己的統(tǒng)計(jì)數(shù)據(jù),構(gòu)建小部件都意味著簡(jiǎn)單而有趣。
新增加:
?基于web的布局編輯器允許我在瀏覽器中可視化地重新定位小部件-不再需要JSON編輯!
?添加了一個(gè)自定義錯(cuò)誤屏幕,以便在出現(xiàn)故障時(shí)提供一點(diǎn)個(gè)性
?ESP32正在針對(duì)超低功耗運(yùn)行進(jìn)行優(yōu)化,目標(biāo)是僅使用一塊LiPo電池即可運(yùn)行數(shù)月。
我為什么這么做:
這個(gè)項(xiàng)目結(jié)合了我的愛(ài):
?物理接口
?干凈,始終在紙墨水顯示數(shù)據(jù)
?健身、騎自行車(chē)和越野跑
?低功耗微控制器項(xiàng)目
我的目標(biāo)是把它變成一個(gè)模塊化的,云就緒的儀表板,可以顯示廣泛的數(shù)據(jù)源,而不僅僅是Strava/Garmin。
布局和模式
儀表板目前根據(jù)一天的類(lèi)型(活動(dòng)或恢復(fù))調(diào)整其布局,并以干凈,低干擾的格式呈現(xiàn)各種關(guān)鍵訓(xùn)練和環(huán)境指標(biāo)。
每個(gè)布局都以淺色或深色模式呈現(xiàn),這取決于您的視覺(jué)偏好。
以下是已經(jīng)實(shí)現(xiàn)的內(nèi)容:
每日邏輯:兩種主要布局模式
?活動(dòng)日:顯示您最近的活動(dòng),核心指標(biāo),以及未來(lái)幾天的天氣。
?恢復(fù)日:側(cè)重于訓(xùn)練負(fù)荷的演變和更廣泛的趨勢(shì)和進(jìn)展概述。
當(dāng)前儀表板元素
每月的日歷
?顯示以紅色標(biāo)記的活動(dòng)日的當(dāng)前月份,提供您的活動(dòng)條紋或間隙的即時(shí)視覺(jué)概述。
雷達(dá)圖表
?一個(gè)圓形圖表比較過(guò)去4周和本月的時(shí)間和距離,幫助確定活動(dòng)類(lèi)型之間的重點(diǎn)領(lǐng)域或不平衡。
復(fù)蘇的指標(biāo)
?包括恢復(fù)時(shí)間和高強(qiáng)度訓(xùn)練后的慢性負(fù)荷,讓你更清楚地了解你的身體可能有多緊張(或新鮮)。
每周強(qiáng)度統(tǒng)計(jì)
?顯示當(dāng)前一周的累積低強(qiáng)度和高強(qiáng)度分鐘,基于從Strava/Garmin提取的數(shù)據(jù)。
天氣預(yù)報(bào)
?一個(gè)專(zhuān)門(mén)的部分顯示了配置文件中設(shè)置的位置的未來(lái)四天的天氣-包括清晰的圖標(biāo)。
?每個(gè)元素的設(shè)計(jì)都考慮到電子紙上的可讀性,只使用黑/白/紅,并保持排版和布局最小化。
?更多的布局和額外的可視化是在路線(xiàn)圖上,但即使在其當(dāng)前狀態(tài),儀表板提供了一個(gè)豐富的和可操作的概述您的培訓(xùn)之旅。
其他圖片
?一個(gè)顯示一天活動(dòng)的儀表板
?休息/恢復(fù)日的儀表盤(pán)
?活動(dòng)日和休息日的布局編輯示例
?背面的框架單元與定制的3d打印安裝
?顯示在從后端獲取最新更新后刷新圖像
本文編譯自hackster.io