第1步:什么是TTGO T-Watch?
TTGO T-Watch是基于ESP32的手表形狀開發(fā)套件。 16 MB閃存和8 MB PSRAM都是最高規(guī)格。它還內(nèi)置一個240x240 IPS LCD,觸摸屏,micro-SD卡端口,I2C端口,RTC,3軸加速度計和一個自定義按鈕。背板也可以切換到其他模塊,如LORA,GPS和SIM。
但最重要的是它可以成為一個可用的手表是電力系統(tǒng)。它集成了AXP202多通道可編程電源管理芯片。這是我第一次看到具有I2C可控電源芯片的開發(fā)套件!
根據(jù)AXP202X_Library接口,您可以控制每個電源通道的開啟和關(guān)閉,讀取電池電量,充電狀態(tài)甚至直接關(guān)閉電源,就像按下電源按鈕一樣。
參考:
https://github.com/Xinyuan-LilyGO/TTGO-T-Watch
步驟2:簡單觀看PoC
電源芯片看起來不錯,但內(nèi)置180 mAh的持續(xù)時間有多長電池?
由于它設(shè)計為手表外觀,讓我們從一個簡單的手表示例開始,作為PoC來檢查功率芯片的工作方式。
第3步:設(shè)計Watch Face
ESP32是一款功能非常強大的芯片,240 Mhz雙核CPU和80 Mhz SPI速度可以設(shè)計出非常流暢的顯示布局。所以我設(shè)計了一個不錯的手表面,連續(xù)掃描秒針。
然而,設(shè)計難度出乎意料的高,不容易在沒有眨眼的情況下取下最后一只秒針。我已經(jīng)嘗試了4種額外的方法來制作它。上面的圖片顯示失敗的重繪,仍然是屏幕上未刪除的最后一秒像素。設(shè)計表面工作有很多話可以說,但在這個項目之外。我可以在下一個教程中詳細(xì)說明設(shè)計之旅,它應(yīng)該被稱為“Arduino Watch Core”。
第4步:設(shè)置時間
T-Watch內(nèi)置RTC芯片,這意味著它可以在開發(fā)時保持復(fù)位之間的時間。在它可以保留時間之前,我們應(yīng)該先設(shè)置時間。
有多種方式設(shè)置時間:
ESP32具有WiFi功能,因此您可以同步時間與NTP
類似于其他電子設(shè)備,如數(shù)碼相機,你可以編寫一個用戶界面來設(shè)置時間
你可以使用GPS背板,那么你可以從衛(wèi)星獲取時間
為了簡單起見,它仍然是一種不同的懶惰方式來設(shè)置時間,你可以在某個TFT時鐘示例中找到這種方式。在Arduino中編譯程序時,預(yù)處理器定義了2個變量“__DATE__”和“__TIME__”來記錄編譯時間。我們可以利用這些信息制作一個非常簡單的程序來設(shè)置RTC時間。
注意:
這個簡單的程序總是設(shè)置啟動時間。但編譯時間僅在首次啟動時有效,因此一旦設(shè)置時間成功,您應(yīng)該用其他程序覆蓋。
參考:
https://gcc.gnu .org/onlinedocs/cpp/Standard-Predef 。..
步驟5:功耗
當(dāng)手表運行時,顯示連續(xù)掃描秒針,它消耗的電量略高于60 mA。出于省電原因,它應(yīng)在一段時間后進(jìn)入睡眠模式。
如果我關(guān)閉LCD背光并呼叫ESP32深度睡眠,則會降至7.1 mA左右。對于180 mAh電池,它只能持續(xù)約1天。
我知道LCD芯片消耗的電流約為6 mA。根據(jù)ST7789數(shù)據(jù)手冊,有一個進(jìn)入睡眠模式的命令。但是目前的TFT_eSPI庫還沒有睡眠模式API。
而且某處還有大約1 mA的耗電量。
步驟6:可編程電源管理芯片
開發(fā)套件中有許多芯片,根據(jù)他們的數(shù)據(jù)表,大多數(shù)芯片都支持省電模式。但是,并非所有庫都暴露了省電模式API。通過檢查并調(diào)用每個模塊進(jìn)入睡眠模式,這是一個長時間的省電編碼。
直接關(guān)閉電源如何直接按下電源按鈕怎么樣? AXP202X_Library可以通過簡單地調(diào)用shutdown()函數(shù)來實現(xiàn)。在關(guān)斷模式下,它僅消耗略低于0.3 mA。 180毫安時電池可以持續(xù)25天!
注意:
我剛剛在6月28日為電池充電,您可以關(guān)注我的推文,了解最新的電池狀態(tài)。
更新:
7月18日電池耗盡,電池可以持續(xù)20天。在此期間我每天檢查幾次,我認(rèn)為手表在正常使用中可以持續(xù)1-2周。
參考:
https://github。 com/lewisxhe/AXP202X_Library/pull/2
步驟7:程序
關(guān)注https://github.com/Xinyuan-LilyGO/TTGO-T-手冊頁安裝軟件和庫的說明。
在GitHub下載源代碼:https://github.com/moononournation/TTGO-T-Watch
打開,編譯并上傳 Set_RTC.ino 更新RTC日期和時間
打開,編譯和上傳 Arduino-T-Watch-simple.ino
完成!
簡單的監(jiān)視程序?qū)?zhí)行:
讀取RTC日期和時間
繪制時鐘標(biāo)記(您可以選擇循環(huán)或方形時鐘標(biāo)記)
顯示連續(xù)掃描秒針
60秒后關(guān)閉電源(或者您可以按住電源按鈕以便立即關(guān)機)
按電源按鈕再次打開
第8步:快樂編程!
TTGO T-手表可以做更多的簡單手表,例如
ESP32可以使WiFi和BT無線通信
使用觸摸屏面板可以開發(fā)更實用的UI
板載三軸加速度計(BMA423),內(nèi)置步進(jìn)計數(shù)器算法和其他多功能GS ensor
可更換的背板可以添加LORA,GPS,SIM功能
I2C端口可以擴展更多功能
步驟9: Arduino-T-Watch-GFX
Arduino-T-Watch簡單需要按住微小的電源按鈕才能喚醒并且LCD初始介紹很少秒延遲。所以用戶體驗不太好。
我已經(jīng)添加了另一個名為Arduino-T-Watch-GFX的程序來改善這一點。此程序更改為使用Arduino_GFX顯示庫,它可以告訴顯示器進(jìn)入睡眠模式以節(jié)省電量。因此,當(dāng)ESP32進(jìn)入輕度睡眠狀態(tài)時,它現(xiàn)在消耗的電流低于3 mA。此外,它現(xiàn)在可以觸摸屏幕觸發(fā)喚醒。 ESP32喚醒和顯示睡眠比整個重啟過程快得多,你可以看到上面的視頻幾乎是即時響應(yīng)。
-
手表
+關(guān)注
關(guān)注
1文章
140瀏覽量
24741
發(fā)布評論請先 登錄
相關(guān)推薦
評論