技術宅硬核跨年,DIY墨水屏日曆:自動重新整理位置、天氣,隨機播放2000多條「毒雞湯」| 開源

量子位發表於2021-01-04
賈浩楠 魚羊 發自 凹非寺
量子位 報導 | 公眾號 QbitAI

自制一個電子墨水屏日曆,需要幾步?

是能自動重新整理位置、天氣情況,還能隨機播放2000多條毒雞湯的那種。

技術宅硬核跨年,DIY墨水屏日曆:自動重新整理位置、天氣,隨機播放2000多條「毒雞湯」| 開源

↑↑↑就像這樣:如果我的人生是一部電影,那你就是一個彈出來的廣告。每10分鐘會重新整理一條。

配上相框,相比於網購平臺上售價299元的這一款,你覺得能打幾分?

技術宅硬核跨年,DIY墨水屏日曆:自動重新整理位置、天氣,隨機播放2000多條「毒雞湯」| 開源

這樣的一款新“產品”,來自微博博主@張欣 | Kenn。

並且,他還把製作方法開源了。

不妨一起來看個究竟~

硬體準備

@張欣 | Kenn決定製作這樣一款電子墨水屏,緣起是看到了網路購物平臺上出售的類似產品。

技術宅硬核跨年,DIY墨水屏日曆:自動重新整理位置、天氣,隨機播放2000多條「毒雞湯」| 開源

產品挺有意思,但想要點毒雞湯那個味兒,還是得自己動手DIY一下。

直接來看方案。

螢幕,231元

首先是是螢幕。類似手機、智慧屏這類的硬體中,螢幕一般是最貴的部分。

張欣參考了網售產品的方案,選擇了單價不太高的微雪電子5.38寸黑白電子墨水屏。

技術宅硬核跨年,DIY墨水屏日曆:自動重新整理位置、天氣,隨機播放2000多條「毒雞湯」| 開源

這款螢幕型號叫e-paper,648×480解析度,SPI介面,售價231元

技術宅硬核跨年,DIY墨水屏日曆:自動重新整理位置、天氣,隨機播放2000多條「毒雞湯」| 開源

同時,這款螢幕也採用了當下比較流行的串列埠形式。與並口連線相比,串列埠屏只需要2根線連結通訊,且控制程式簡單,比並口屏少90%。

有的串列埠屏甚至不再需要MCU,可以直接控制。

對於DIY電子產品來說,串列埠屏比較合適。

如果你打算用樹莓派或者其他Arduino裝置來驅動,可以選擇帶有適配板的套裝,價格為283.5元。

此外,類似型號電子屏還有彩色版本,不過成本也更高。

假如你真的採用了彩色屏,可能需要修改原作者的程式碼才能適用。

計算單元,78.75元

張欣採用了樂鑫的ESP32晶片

ESP32晶片自帶2.4G無線網路和藍芽,有充足的引腳。

技術宅硬核跨年,DIY墨水屏日曆:自動重新整理位置、天氣,隨機播放2000多條「毒雞湯」| 開源

並且,當前市場上能買到很多成熟的ESP32開發板。

當然,要是夠硬核,可以自己買基於ESP32的模組,然後整合到板子裡。

技術宅硬核跨年,DIY墨水屏日曆:自動重新整理位置、天氣,隨機播放2000多條「毒雞湯」| 開源

要注意的是,這兩種方式都需要買螢幕時順便買適配板,好將螢幕的軟排線轉換為SPI介面。

作者為了快速做出成品,選用微雪自帶軟排線介面、基於ESP32的墨水屏開發板,價格78.75元。

技術宅硬核跨年,DIY墨水屏日曆:自動重新整理位置、天氣,隨機播放2000多條「毒雞湯」| 開源

電源,50元以內

其實,在開發時,可以透過電腦上的USB介面用micro USB線直接供電,同時進行除錯工作。

但如果要在實際使用中擺脫電源線的話,可以直接購買一塊自帶micro USB充放介面的鋰電池。

電池的容量不同價格也不一樣,不過一般都在50元以下。

技術宅硬核跨年,DIY墨水屏日曆:自動重新整理位置、天氣,隨機播放2000多條「毒雞湯」| 開源

最後計算一下,DIY相同墨水屏的成本最多為231+78.75+50=359.75元

咋還比網購平臺上的貴了呢技術宅硬核跨年,DIY墨水屏日曆:自動重新整理位置、天氣,隨機播放2000多條「毒雞湯」| 開源

其實很好理解,所有部件按零售價購買,自然比廠家進貨價貴。

但技術宅享受的,不就是自己動手的樂趣嗎?

軟體方案

準備好了硬體,軟體部分又要如何實現?

框架部分,張欣選擇了Arduino,因為裡面有大量現成的第三方庫可以使用。

開發工具方面,他則推薦使用Visual Studio Code。

具體而言,該專案的程式碼主要實現了以下幾個功能。

首先,規劃螢幕佈局,並且每10分鐘重新整理一次螢幕,實時更換毒雞湯的口味。

技術宅硬核跨年,DIY墨水屏日曆:自動重新整理位置、天氣,隨機播放2000多條「毒雞湯」| 開源

圖源:微博博主@張欣 | Kenn

現成的毒雞湯,一共有2000+款,像是:

生活不只眼前的苟且,還有未來的苟且

祝你瘦成一道閃電,閃電直徑兩米。

……

完整內容,在該專案的toxicsoul.h檔案中可以看到。

技術宅硬核跨年,DIY墨水屏日曆:自動重新整理位置、天氣,隨機播放2000多條「毒雞湯」| 開源

日期使用的是ESP32系統自帶的時鐘。

位置則透過查詢當前裝置的IP地址來獲得。

技術宅硬核跨年,DIY墨水屏日曆:自動重新整理位置、天氣,隨機播放2000多條「毒雞湯」| 開源

部分程式碼

實時天氣資訊,來自和風天氣開發平臺的服務。在具體實現的時候,需要自己註冊賬號,獲取應用程式Key。

const String QWEATHER_API_KEY = “**“;

其中涉及的第三方庫主要包括:

  • Adafruit GFX:影像圖形引擎,實現顯示輸出

  • GxEPD2:基於Adafruit_GFX庫驅動各種電子墨水屏

  • U8g2 for Adafruit GFX:顯示文字

  • u8g2_fontmaker:一個用於生成u8g2字型原始碼的一鍵懶人指令碼工具,同樣出自專案作者之手

  • ArduinoJSON:處理JSON字串

一切準備就緒,把程式燒錄到開發板裡,再用熱熔膠等DIY必備工具組裝一番,接上電源,毒雞湯電子墨水屏日曆就誕生了。

技術宅硬核跨年,DIY墨水屏日曆:自動重新整理位置、天氣,隨機播放2000多條「毒雞湯」| 開源

網友:搞起來

這個毒雞湯電子墨水屏日曆在元旦當天初步完成施工,就收穫了網友們熱烈的點贊。

技術宅硬核跨年,DIY墨水屏日曆:自動重新整理位置、天氣,隨機播放2000多條「毒雞湯」| 開源

不少網友當場表示,奈斯啊,搞起來。

還有網友當場提起了新需求(手動狗頭):

想把前一天的日報統計顯示出來。

技術宅硬核跨年,DIY墨水屏日曆:自動重新整理位置、天氣,隨機播放2000多條「毒雞湯」| 開源

有關續航方面的資訊,作者也在評論區做出瞭解答:

還沒有時間或者說條件測功率消耗,其實程式碼最佳化點,重新整理後就把螢幕和ESP32休眠,重新整理時間間隔拉長,耗電量會很低很低……

關於作者

張欣,本科就讀於北京化工大學計算機系,碩士在中國科學院大學就讀。

技術宅硬核跨年,DIY墨水屏日曆:自動重新整理位置、天氣,隨機播放2000多條「毒雞湯」| 開源  

曾供職微軟高階產品顧問,一直從事與微軟平臺下的專案開發,對於.NET平臺、資料庫、多層架構設計有著豐富經驗,參與並主導過多個大型應用系統的架構設計以及研發、實施工作。

他還是微軟的MVP(微軟最有價值專家)

張欣現在是專注無人機的創業公司新蜂智慧合夥人、產品主管。

以上,傳送完畢。看完這些,你是否也有一絲心動?

那麼,動手搞起來?畢竟——

只要我肯努力,沒什麼事情是我搞不砸的。

(手動狗頭)

專案地址


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69971123/viewspace-2747166/,如需轉載,請註明出處,否則將追究法律責任。

相關文章