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