想要擴展性強,易用易開發(fā),功能全且成本低的墨水屏天氣時鐘……尋尋覓覓難合意,那就自己做一個!
LiClock多功能墨水屏天氣時鐘
- 開源分享 -
今天特別分享@小李電子實驗室大佬的開源佳作——LiClock多功能墨水屏天氣時鐘,一款DIY過程對新手友好,功能全且成本低的墨水屏天氣時鐘。
基于ESP32的2.9寸墨水屏天氣時鐘,使用PlatformIO/Arduino開發(fā),內(nèi)嵌圖形化編程環(huán)境(Lua語言解釋器和Google Blockly開發(fā)環(huán)境),兼具易用性與擴展性。
1
當前主要功能
主要設(shè)計功能如下:
通過彩云天氣API獲取本地天氣并顯示;
使用ESP32內(nèi)部RTC提供時鐘信號,經(jīng)過兩次NTP同步進行線性偏移補償,可做到日誤差小于2秒;
內(nèi)置Web服務器用于配置天氣位置,管理內(nèi)部文件等;
內(nèi)置GUI框架,包括對話框、菜單等;
簡易電子書功能;
Bilibili粉絲顯示器;
完善的設(shè)置菜單;
通過蜂鳴器播放經(jīng)過轉(zhuǎn)碼的Midi音樂;
簡易的鬧鐘;
內(nèi)置Blocky圖形化開發(fā)環(huán)境,只要有瀏覽器就能為它添加功能。
2
項目特色要點
此項目以易用性和可二次開發(fā)為核心目標,兼顧節(jié)能高效等應用特性。
2.1自動識別
系統(tǒng)框架與APP解耦,每個“APP”源碼為單個CPP文件,復制到APP目錄后自動識別編譯并添加到APP列表,無需其它修改操作。
TF卡、傳感器等外設(shè)在第一次開機時自動識別,由系統(tǒng)統(tǒng)一管理,不使用時自動斷電(傳感器進入省電模式)。
2.2易用節(jié)能
APP為事件驅(qū)動,有較為完善的GUI框架,可以快速實現(xiàn)想要的功能。另外,電子書等內(nèi)置APP在不刷新屏幕時和關(guān)機狀態(tài)耗電量相同(注意:GUI框架在等待用戶輸入時,不會進入休眠模式)。
2.3便捷設(shè)置
無需配置API KEY,無需手動設(shè)置時鐘誤差修正,無需手動配置Bilibili UID(手機掃碼登錄),只需填寫天氣GPS坐標(GCJ-02)和WiFi密碼。
2.4快速上手
對于不會配置環(huán)境的小伙伴,提供全功能二進制文件,直接燒錄運行也可體驗所有功能。
2.5高效開發(fā)
內(nèi)置Lua語言解釋器和Google Blockly開發(fā)環(huán)境,可通過Lua語言編寫APP,網(wǎng)頁端上傳后直接運行,同時可以無縫添加到APP列表,設(shè)置為主屏幕APP等。
3
Blockly IDE簡介
開發(fā)這個功能也是為了解決自定義表盤的問題:
可以隨時修改代碼、互相分享工程、減少調(diào)試所需的編譯上傳時間;網(wǎng)頁端(可以在左邊使用“積木”編程,或者直接編輯Lua代碼,但不支持Lua反向轉(zhuǎn)化為Blockly);使用WebSocket實現(xiàn)終端功能,Lua的輸出和報錯將被重定向到這里。
3.1 Lua運行結(jié)果:
3.2 APP創(chuàng)建:
創(chuàng)建的APP,除了能卸載或從TF卡安裝,用起來和內(nèi)置APP完全沒有區(qū)別(內(nèi)置APP是基于C++的)。
詳細程序編寫說明請看Github Readme:
3.3 文件管理:
預覽“l(fā)bm”圖像文件(實質(zhì)上是xbm二進制版,可用GIMP保存為xbm格式,然后使用GitHub倉庫tools目錄下xbm轉(zhuǎn)lbm工具)。
3.4其他功能
Lua已實現(xiàn)相對目錄(如果需要訪問資源文件,請將其放在webtmp文件夾下,創(chuàng)建APP時會一并復制,支持.表示當前目錄,不支持..文件夾);SD卡掛載到/sd/,內(nèi)置littlefs掛載到/littlefs;蜂鳴器支持播放.buz文件(midi轉(zhuǎn)buz的python程序同樣放在GitHub的tools目錄下)。
-
編程
+關(guān)注
關(guān)注
88文章
3592瀏覽量
93594 -
開源
+關(guān)注
關(guān)注
3文章
3249瀏覽量
42402 -
電墨水屏
+關(guān)注
關(guān)注
0文章
7瀏覽量
4104
發(fā)布評論請先 登錄
相關(guān)推薦
評論