物聯網學習之時鐘天氣小物件

最近心血來潮,想自己DIY一些小物件,順便學習一下嵌入式開發相關知識。於是,購買了ESP32和1。54英寸的TFT液晶屏,先從簡單的MicroPython入手,實現一個時鐘加天氣預報的桌面小擺件。

物聯網學習之時鐘天氣小物件

到目前為止,主要實現了以下功能:

開機自動連線Wi-Fi

顯示時間和日期,並透過NTP自動校準時間

顯示實時的氣溫,以及當天的天氣狀況

根據IP地址定位所在的區域,精確到區級位置

顯示Wi-Fi的圖示

在製作過程中,遇到了許多的問題,其中,以下問題花費的時間比較多,簡單總結一下。

由於顯示屏驅動的功能侷限,不支援透明字型,如果使用背景圖片,字型無法呈現透明效果,視覺效果很差。以下是一開始的設計,本打算採用美觀一點的背景圖片。

物聯網學習之時鐘天氣小物件

還是顯示屏驅動的功能侷限,只支援jpg格式的圖片,不支援透明背景的png格式圖片。因此,只能採用“笨辦法”,修改圖片背景顏色,保持與螢幕顯示顏色一致。

購買的兩塊TFT螢幕,大小分別為1。3和。154英寸。除了尺寸的區別,前者不包含CS引腳(注:1。54英寸屏的CS引腳必須接地GND)。帶來的問題就是,

1.54寸屏的初始化波特率最高只能達到23Mhz

,而1。3寸屏的初始化波特率能達到40Mhz。另外,

1.54英寸屏每次上電後,螢幕無法顯示畫面,或者顯示畫面幾秒後,畫面就會消失

,重置後能恢復。1。3寸屏沒有這樣的問題。目前還沒有找到原因,猜測可能跟顯示屏驅動有關。

為了顯示中文字型,需要將字型庫檔案透過工具轉換成bitmap模組。

下一步,需要再進一步最佳化,並增加新的功能:

開機動畫

微信掃描後,配置Wi-Fi賬號和密碼

Wi-Fi圖示顯示網路的通斷

手機資訊傳送到螢幕

顯示股票資訊