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