月相跟蹤器是一種小巧的半便攜式設(shè)備,允許你收集有關(guān)月球的重要信息。該設(shè)備報告了諸如可見光照,相位,月亮升高和設(shè)定時間等參數(shù)。
此設(shè)備對于對科學(xué)或天文學(xué)感興趣并提供出色的桌面辦公室裝飾的任何人都是必不可少的。
該項目相當(dāng)簡單,需要連接互聯(lián)網(wǎng)的設(shè)備,如ESP32,但您可以隨時調(diào)整代碼,使用WiFi屏蔽,以太網(wǎng)屏蔽或任何其他互聯(lián)網(wǎng)連接您可能擁有的設(shè)備。 Lunar Phase Tracker設(shè)計用于處理鋰聚合物電池和非常省電的電子墨水顯示屏,它不僅可以提供精彩的屏幕,而且即使斷電也可以保留最后的圖像!
第1步:注冊天文信息
這一步絕對必要(雖然很無聊)因為我們正在使用在線API收集我們的信息。雖然可以計算月相,照明等,但這樣做是一項繁瑣的工作。我們使用的API提供來自實時氣象站和監(jiān)測系統(tǒng)的最新信息,因此我們收到的數(shù)據(jù)是真實世界的結(jié)果,而不是計算值的結(jié)果。
前往Weather Underground,點擊“注冊”并填寫您的所有信息。該帳戶完全免費,您的API調(diào)用也是如此,只要您每分鐘不要求太多結(jié)果或每天超過500個請求。請務(wù)必將此頁面添加為書簽,您可以隨時返回并使用API進行天氣統(tǒng)計和其他重要信息。創(chuàng)建帳戶后,轉(zhuǎn)到API站點,單擊“購買密鑰”并選擇免費計劃,您只需輸入一些詳細(xì)信息,您就會遇到devoloper 密鑰ID的問題。 此ID對您而言是唯一的,應(yīng)保密。我在示例Arduino代碼中提供了我的密鑰,稍后我們將對此進行介紹。我們非常歡迎您使用我的密鑰ID進行測試,但我強烈建議您自己注冊。
獲得您的唯一ID后,您可以繼續(xù)查看Astronomy API信息,即老實說非常光鮮您將找到一個如下所示的簡單示例:
http://api.wunderground.com/api/8c6dc2e5c6f36de9/a 。..
此URL非常重要,因為這個是我們提供制作項目所需的所有信息的原因。來吧,點擊鏈接,你會看到悉尼的結(jié)果,如月相,照明和其他好的信息??匆幌耈RL,我們將看到悉尼,澳大利亞以及以“8c6dcwe 。..”開頭的長代碼。該代碼是我們之前提到的密鑰ID。使用您的唯一ID更改該代碼并查看其工作原理,您應(yīng)該得到完全相同的結(jié)果。嘗試游玩地點。對于我自己在南非,我使用約翰內(nèi)斯堡和ZA。
第2步:組件
所以現(xiàn)在有趣的東西。我們需要一些組件,而不是很多組件,并且它們都不是非常昂貴的,我已經(jīng)為我使用的組件提供了Amazon鏈接。請記住,如果您喜歡編程,請隨意使用您可用的任何顯示器或互聯(lián)網(wǎng)設(shè)備。對于我的構(gòu)建,我使用了以下內(nèi)容:
Waveshare E-Ink SPI 4.2“SPI顯示器
ESP32開發(fā)板(通用)
Adafruit Power Boost 500
5000mAh Lipo電池組
Stripboard(Protoboard)
您將需要基本工具,例如:
烙鐵
焊料
卡尺
鉆頭用于分隔原型板上的軌道
電線
線夾
膠水(熱膠將起作用)
安裝了Arduino IDE的筆記本電腦
唯一的高級您可能需要的工具是制作外殼的3D打印機。如果您沒有,那就好了,用木頭和手鋸或任何可用的東西制作外殼。是的,我的3D打印機老了,塵土飛揚。/p》
第3步:計算機軟件
在我們開始研究電路和編程之前,我們首先需要最新版本的Arduino IDE,可以在這里找到。
由于我們使用帶有Arduino核心的ESP32,w e需要在Arduino IDE上安裝此核心。按照Github的這個簡單指南,它向您展示了您需要使用的軟件和配置,以便在Arduino IDE中使用您的ESP32開發(fā)板。
我們還需要兩個額外的庫來使我們的系統(tǒng)正常工作。第一個是Arduino JSON庫,它允許我們讀取和解析JSON請求,這正是我們從Weather Underground獲得的。您可以從我的個人Dropbox或下面的下載這兩個庫。獲得文件后,將其解壓縮并放入Arduino庫文件夾中。它通常位于C: Users YOUR_NAME Documents Arduino libraries。確保你重新啟動你的IDE,否則Arduino不會拿起新的添加。主要的Arduino SRC代碼也在該文件夾中。該庫還包含Waveshare顯示提供的樣本的修改版本。這些文件已被改變?yōu)樵贓SP32模塊上運行其GPIO,我已經(jīng)實現(xiàn)了一個新的“字體”,其中包含了月亮各個階段的所有圖像。
第4步:電路
好的,所以這個電路非常簡單,只需要幾個元件和電線。
一般的想法是我們有一個Lipo充電器電路,一個升壓轉(zhuǎn)換器給我們5V,然后是ESP32開發(fā)套件,它將電壓降至3.3V。此3.3V也用于Waveshare電子墨水顯示屏。是的,由于升壓然后用線性穩(wěn)壓器降壓,但效率稍低,但ESP32工作在非??膳碌碾妷悍秶鷥?nèi)。大約2.5 - 3.6V。這不適用于電池項目,特別是那些使用鋰聚合物電池的項目。
基本接線如下:
升壓轉(zhuǎn)換器 5V輸出 - 》 Vin ESP32開發(fā)套件上的&GND
ESP32 3.3V - 》 3.3V&GND 電子墨水顯示器
ESP32 PIN 18 - 》 CLK 電子墨水顯示器
ESP32 PIN 23 - 》 DIN/MOSI 電子墨水顯示器
ESP32 PIN 5 - 》 CS/SS 電子墨水顯示器
ESP32 PIN 32 - 》 DC 電子墨水顯示器
ESP32 PIN 33 - 》 RST 電子墨水顯示
ESP32 PIN34 - 》忙》 電子墨水顯示
你可以看到接線非常簡單,我的DIY板只需要大約15分鐘的時間來構(gòu)建。在供電之前一定要用萬用表檢查是否有短路。
我還從我的ESP32和Lipo升壓板上取下了LED,以便在睡眠模式下節(jié)省大約40mA的電量。這將有助于電池持續(xù)更長時間。如果您愿意,可以實現(xiàn)電源開關(guān),省電電路,自動斷開等。您可以擴展此項目并使其盡可能復(fù)雜。
第5步:代碼
可以在步驟3 期間在提供的文件夾中找到代碼,也可以從下面下載.ino文件。您將需要安裝步驟3中提到的關(guān)聯(lián)庫,以使所有內(nèi)容協(xié)同工作。由于代碼是在工作條件下提供的,因此對于此步驟沒有太多要說的。確保在測試程序之前輸入您的SSID和網(wǎng)絡(luò)密碼,您始終可以運行ESP32 WiFi掃描以檢測附近的任何無線網(wǎng)絡(luò),但在我的程序中,網(wǎng)絡(luò)信息僅在代碼和代碼中設(shè)置。也許你可以修改它來詢問你想要連接到哪個網(wǎng)絡(luò):)
代碼非常簡單,我會花一些時間在接下來的幾周內(nèi)對它進行評論和改進。我們基本上連接到網(wǎng)絡(luò),在我的情況下,我的家庭網(wǎng)絡(luò)。然后,我們嘗試連接到Weather Underground并從網(wǎng)頁接收J(rèn)SON文本。然后使用ArduinoJSON庫進行提取。或者將JSON代碼解析為char數(shù)組或字符串,允許我們在將值顯示給用戶之前對其進行操作。最后一段代碼嚴(yán)格用于編程GUI,并通過反復(fù)試驗完成。我查看了顯示,增加或減少了資產(chǎn)位置并再次運行代碼,直到我對字體大小,布局和圖像的外觀感到滿意為止。
我為ESP32實施了深度睡眠例程以節(jié)省電力。默認(rèn)值為60秒,但我建議您將值更改為一小時或兩小時,因為更新不會發(fā)生至少幾個小時。該示例接受秒數(shù),因此請確保正確執(zhí)行轉(zhuǎn)換。
我還使用The Dot Factory程序為新字體生成十六進制數(shù)組。該字體用于生成月相的“圖像”。如果您想編輯字體文件,請確保使用上述程序進行生成。這有點令人困惑,因為E-Ink庫沒有很好地記錄,我的大部分成功歸功于試驗和錯誤。當(dāng)我花更多時間使用此代碼時,我將更新Instructable以提供有關(guān)我的發(fā)現(xiàn)的更多信息。
用于月相的字體必須按照標(biāo)準(zhǔn)的ASCII布局進行。如果在EPD-master文件夾中打開font24,則可以看到第一個圖形由空格標(biāo)識的布局,第二個是“!”。 (感嘆號)等。您將看到我在代碼的最后一位(函數(shù)getLunarChar)中使用數(shù)字3或主題標(biāo)簽符號拉出相關(guān)字體。這是因為Arduino期望ASCII標(biāo)準(zhǔn)從32到127.因為我們使用的字體與實際字體無關(guān),而是與月相圖形矩陣無關(guān),我們需要確保ASCII字符引用我們選擇的月相圖像。這意味著使用了!我們的月相字體顯示了該列表中的第二個月相圖形。如果你看一下月相字體,你會看到一大堆月相,都有不同的照度。將來我會添加更多代碼來使用我們實現(xiàn)的所有圖形。目前我們只使用了一些,但是圖形已經(jīng)在月相字體中實現(xiàn),只需要在代碼中實現(xiàn)就可以使用它。
第6步:最終匯編
構(gòu)建的最后一部分最令人滿意的是裝配過程。我設(shè)計并3D打印了一個適合我的電路板的外殼。該項目非常DIY,沒有專業(yè)的PCB或單一的標(biāo)準(zhǔn)布局。在大多數(shù)情況下,我使用的盒子足夠大,可容納您選擇使用的任何脂肪充電器或升壓轉(zhuǎn)換器。只要它們提供與本Instructable中提到的相同的基本功能,那么你應(yīng)該沒問題。
我用4個螺絲將機箱的頂部和底部一半固定在一起,用熱膠粘住我的DIY電路。我用了一些很小的膠水來裝電池,但如果我有更多的時間,我會為所有的電子產(chǎn)品定制支架。
我還決定為背面的鎖定按鈕打個洞。這會將電池與升壓轉(zhuǎn)換器斷開連接,如果您不打算24/7全天候運行設(shè)備,這將非常有用。不幸的是,即使您的ESP32處于深度睡眠模式,升壓轉(zhuǎn)換器仍會使用電源。
總體而言,我對結(jié)果非常滿意。我在使用ESP32的過程中學(xué)到了很多東西,并且可以看到自己將來將它用于各種項目。
-
跟蹤器
+關(guān)注
關(guān)注
0文章
130瀏覽量
19996
發(fā)布評論請先 登錄
相關(guān)推薦
評論