我喜歡將電子產(chǎn)品與設(shè)計相結(jié)合,這個項目是我最喜歡的項目之一。它看起來像一個經(jīng)典的溫度計,但由一個ESP32微控制器和一個三色電子紙顯示器供電。這個箱子是用木絲3d打印的,給它一個真正的復(fù)古外觀。雖然它有一種老派的魅力,但它內(nèi)置的實時儀表板可以讓你通過一個干凈、現(xiàn)代的界面跟蹤溫度、濕度和壓力。讓我給你展示一下我是怎么做的!
如果你關(guān)注我的Hackster項目,你就會知道我有多喜歡老式設(shè)備。當我發(fā)現(xiàn)這些三色電子紙顯示器時,我立即想到重現(xiàn)經(jīng)典溫度計的優(yōu)雅簡約。電子紙技術(shù)是完美的選擇。
電子紙顯示器提供出色的對比度,使其易于閱讀,并且僅在更新時才耗電。所以,這就是結(jié)果——一個模擬外觀的溫度計,使用了制造商可以獲得的最新電子元件。我喜歡簡單,正如列奧納多·達·芬奇曾經(jīng)說過的,“簡單是終極的成熟?!边@就是為什么我設(shè)計這個溫度計只顯示當前溫度的原因。
我認為這種簡單使它看起來很漂亮。溫度讀數(shù)每五分鐘更新一次,但如果我們需要更頻繁和詳細的信息,網(wǎng)絡(luò)儀表板提供溫度、濕度和氣壓的實時監(jiān)測。
無論你是在辦公桌前還是在另一個房間,你都可以通過手機或電腦查看實時讀數(shù)。數(shù)據(jù)存儲在本地,所以沒有離開你的網(wǎng)絡(luò),確保充分的隱私。通過48小時的日志記錄,您還可以回顧并查看溫度、濕度和壓力隨時間的變化情況,從而輕松發(fā)現(xiàn)環(huán)境中的趨勢。
有了它,我們就擁有了兩全其美的東西——一個擁有豐富信息的優(yōu)雅小工具。
供應(yīng)
總組件成本低于40美元,使其成為一個負擔得起的DIY項目。讓我們復(fù)習(xí)一下需要的部分。
步驟1:墨版三色電子紙顯示
那么,讓我們來談?wù)勈鞘裁醋屇P2如此有趣。它采用2.13英寸的三色電子紙顯示屏,我認為這對于小型項目來說是完美的。
屏幕可以顯示紅、黑、白三種顏色,分辨率為212x104像素。雖然與現(xiàn)代高清屏幕相比,它的分辨率確實很低,但對于電子紙顯示器來說,它仍然很好。11dpi的屏幕足夠清晰,可以顯示簡單的圖形和文本。
不過,更棒的是,電子紙只在屏幕更新時才耗電。這意味著一旦圖像出現(xiàn)在顯示器上,它就會保持在那里而不消耗任何電力,這使得它非常適合電池供電的項目。刷新率約為15秒,這是這類電子紙技術(shù)的標準。這意味著它不適合任何需要快速更新的東西,比如動畫或?qū)崟r顯示。但是,它可以很好地用于靜態(tài)內(nèi)容,例如顯示溫度、待辦事項列表或其他不經(jīng)常更改的信息。
該板使用ESP32微控制器,這是一個功能強大的芯片,具有兩個32位內(nèi)核,運行頻率為160 MHz。它有320kb的RAM, 8MB的PSRAM和4mb的閃存,足以處理高級任務(wù)。它還內(nèi)置了Wi-Fi和藍牙,可以很容易地連接到其他設(shè)備或互聯(lián)網(wǎng)。此外,該板有一個外部天線,提高了信號強度和范圍,以獲得更好的無線性能。
這種板在節(jié)約能源方面也很出色。在低功耗模式下,它僅使用8μA,這意味著它可以在鋰離子電池上運行數(shù)月。它還有一個內(nèi)置的電池充電器,所以你可以直接連接電池,并使用USB-C端口輕松充電。憑借其電源,無線功能和能效的結(jié)合,該板非常適合便攜式或長期項目,如傳感器,時鐘或任何不需要經(jīng)常更新顯示器的項目。
步驟2:BME280傳感器
BME280是一款來自博世的新型傳感器。到目前為止,我使用的是可以測量溫度和氣壓的BMP180傳感器。BME280傳感器可以測量溫度、濕度和氣壓!這太酷了!我們只需要一個傳感器就能建立一個完整的氣象站!
除此之外,傳感器的尺寸非常小,非常容易使用。我們今天要使用的模塊使用I2C接口,因此它使與Arduino的通信非常容易。我們只需要連接電源和另外兩根電線就可以使它工作。
已經(jīng)為這個傳感器開發(fā)了許多庫,所以我們可以很容易地在我們的項目中使用它!
注意:我們需要BME280傳感器。還有一個不提供濕度測量的BMP280傳感器。注意訂購你需要的傳感器。
步驟3:MicroUSB分插板
Micro USB分插板是一種小型電路板,提供了一種簡單的方法將Micro USB端口集成到DIY電子項目中。它將電源(VCC, GND)和數(shù)據(jù)(D+, D-)引腳從Micro USB連接器分離到可訪問的焊盤或頭引腳,從而輕松連接到微控制器,傳感器或其他組件。一些分線板還包括IO引腳,可用于設(shè)備識別或其他配置。這些電路板通常用于為設(shè)備供電,為電池充電,或與ESP32或Arduino等微控制器進行USB通信。通過消除對微型USB連接器復(fù)雜焊接的需要,它們?yōu)榍度胧较到y(tǒng)中的電源和數(shù)據(jù)連接提供了方便可靠的接口。
步驟4:連接部件
這個構(gòu)建最好的地方之一是布線非常簡單—您只需要四個連接!BME280傳感器測量溫度,濕度和氣壓,它使用I2C接口,因此非常容易使用。
我焊接了4根電線到電路板上,并將傳感器連接到它們。我們必須將電源和另外兩根電線連接到電路板的SCL和SDA引腳?,F(xiàn)在讓我們看看我們需要的軟件。
步驟5:項目代碼
這個項目的軟件是用面向?qū)ο蟮木幊谭椒ńM織的。每個功能都有自己的類,使代碼庫更加模塊化和可維護。
我還為代碼準備了一個完整的文檔文件。你可以在這里下載。
該文件包含了您需要了解的有關(guān)代碼的所有內(nèi)容。
為了使項目編譯,我們需要3個庫,Inkplate庫用于顯示,Adafruit_BME280庫用于傳感器和ArduinoJson庫。你可以直接從Arduino IDE下載所有的庫。
因此,我們有了Sensor類,它處理與BME280傳感器的通信,檢索溫度、濕度和壓力讀數(shù)。然后我們有SensorData類,它管理數(shù)據(jù)存儲和歷史記錄,允許系統(tǒng)跟蹤過去48小時內(nèi)的環(huán)境讀數(shù)。最后,我們有Display類,它負責(zé)在電子紙顯示器上呈現(xiàn)信息。這種模塊化的方法可以很容易地調(diào)整項目—如果想使用不同的顯示,只需要創(chuàng)建一個新的display類。類似地,如果您想使用不同的傳感器,您只需要修改sensor類。其余的代碼保持不變,確保了無縫的功能。你可以在視頻描述中找到代碼的鏈接。它是完全開源的,您可以自由地使用其他功能對其進行擴展。我很想看看您使用此代碼作為起點創(chuàng)建了什么!
我沒有花很多時間優(yōu)化這款設(shè)備的電源效率,因為它的設(shè)計是保持插電狀態(tài)。不過,我確實在可能的情況下實現(xiàn)了一些節(jié)能措施。例如,電子紙顯示只在必要時更新——如果溫度讀數(shù)發(fā)生變化,但差異不足以明顯影響顯示,則不會刷新。這意味著,即使設(shè)備每五分鐘讀取一次溫度,顯示屏也只在明顯變化時更新,從而減少了不必要的功耗。
我不會深入討論這段代碼是如何工作的或它的確切功能。如果你有興趣了解更多,我已經(jīng)創(chuàng)建了一個詳細的10頁PDF解釋每個文件的作用。您可以在此步驟中找到附加的文件。
在主項目文件中,我們需要設(shè)置兩個值:我們的WiFi網(wǎng)絡(luò)的SSID和密碼。這允許董事會為儀表板建立一個web服務(wù)器。此外,如果您更喜歡英制單位而不是公制單位,請將metric變量設(shè)置為false。
就是這樣!代碼現(xiàn)在已經(jīng)準備好上傳到板上了。
步驟6:測試軟件48小時
該設(shè)備現(xiàn)在在電子紙屏幕上顯示溫度,并建立了一個網(wǎng)絡(luò)服務(wù)器。如果我們檢查控制臺,我們可以看到它的IP地址。通過在瀏覽器中輸入這個IP地址,我們可以訪問我們的儀表板。
太酷了!現(xiàn)在我們可以看到當前的溫度、濕度和氣壓讀數(shù)。
但是,由于沒有可用的歷史數(shù)據(jù),這些圖還不可見。圖表需要48小時才能完全填充歷史數(shù)據(jù)。因此,我讓這臺設(shè)備整個周末都在運行,由一個充電寶供電,并使用一個電表來測量它的能耗。
48小時后,我回到了辦公室。充電寶仍然有電,儀表板現(xiàn)在顯示周末收集的所有數(shù)據(jù)。代碼運行無崩潰,證明了系統(tǒng)的可靠性。注意我不在的時候氣溫明顯下降了?,F(xiàn)在我們來看一下耗電量,在過去的48小時內(nèi),項目消耗了2400mAh的電量。
這意味著該設(shè)備每天需要大約1200毫安時的電量才能運行,因此使用電池供電是不切實際的。高功耗是由于web服務(wù)器持續(xù)運行并等待傳入請求。如果我們不需要儀表盤,我相信我們可以通過優(yōu)化功耗來修改項目,使其在電池供電的情況下運行幾個月。
步驟7:3D打印外殼
為了提高設(shè)備的美觀性和功能性,我決定把它裝在一個定制的3d打印盒里。我用Fusion 360稍微修改了板廠提供的原始3D文件。我做了兩個關(guān)鍵的調(diào)整。首先,我在背面增加了一個小切口,以暴露傳感器,確保更準確的環(huán)境讀數(shù)。其次,我為USB迷你分線板創(chuàng)建了一個開口,允許更方便的電源連接。內(nèi)置的用于編程和供電的USB端口的位置不能讓設(shè)備直立。
接下來,我從USB插線板焊接了兩根電線到板的VIN和GND引腳。這種修改使我們可以方便地從這個連接器為電路板供電。所有部件組裝好后,工程就完成了。我很喜歡最后的結(jié)果。完成的項目放在我桌上看起來棒極了。電子紙顯示器提供了巨大的對比度,給溫度計一個經(jīng)典的,模擬的外觀。
步驟8:最后的想法
我希望你喜歡這個項目;這是我一直以來的最愛之一。我一直想要一個這樣設(shè)計的電子紙氣象站。由于沒有這樣的商業(yè)產(chǎn)品存在,我決定自己做一個。我們很幸運地生活在這樣一個時代,我們可以在短短幾天內(nèi)創(chuàng)造出任何我們想象的東西。多虧了互聯(lián)網(wǎng),我們可以獲得無盡的知識,并有能力與志同道合的人聯(lián)系。
本文編譯自hackster.io