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