Talaan ng mga Nilalaman:

Wireless Lunar Phase Tracker: 6 Mga Hakbang (na may Mga Larawan)
Wireless Lunar Phase Tracker: 6 Mga Hakbang (na may Mga Larawan)

Video: Wireless Lunar Phase Tracker: 6 Mga Hakbang (na may Mga Larawan)

Video: Wireless Lunar Phase Tracker: 6 Mga Hakbang (na may Mga Larawan)
Video: On the traces of an Ancient Civilization? 🗿 What if we have been mistaken on our past? 2024, Nobyembre
Anonim
Wireless Lunar Phase Tracker
Wireless Lunar Phase Tracker
Wireless Lunar Phase Tracker
Wireless Lunar Phase Tracker
Wireless Lunar Phase Tracker
Wireless Lunar Phase Tracker
Wireless Lunar Phase Tracker
Wireless Lunar Phase Tracker

Ang Lunar phase tracker ay isang maliit, semi-portable na aparato na nagbibigay-daan sa iyo upang lumikom ng kritikal na impormasyon tungkol sa Buwan. Iniuulat ng aparato ang mga pabalik na parameter tulad ng nakikitang pag-iilaw, ang yugto, pagtaas ng buwan at itinakdang mga oras at higit pa.

Mahalaga ang aparatong ito para sa sinumang may interes sa agham o astronomiya at nagbibigay ng isang mahusay na dekorasyon sa tanggapan ng desktop at tiyak na isang pagsisimula ng pag-uusap.

Ang proyekto ay medyo simple at nangangailangan ng isang aparato na nakakonekta sa internet tulad ng isang ESP32 subalit maaari mong palaging iakma ang code upang gumana sa isang kalasag na WiFi, kalasag ng Ethernet o anumang iba pang aparato na nakakonekta sa internet na mayroon ka. Ang Lunar Phase Tracker ay dinisenyo upang gumana ang mga baterya ng Lithium-Polymer at isang napaka-husay na display na E-ink na hindi lamang nagbibigay ng isang kahanga-hangang screen upang tingnan ngunit hawak din ang huling imahe kahit na mawawala ang kuryente!

Hakbang 1: Pagrehistro para sa Impormasyon sa Astronomiya

Pagrehistro para sa Impormasyon sa Astronomiya
Pagrehistro para sa Impormasyon sa Astronomiya
Pagrehistro para sa Impormasyon sa Astronomiya
Pagrehistro para sa Impormasyon sa Astronomiya

Ang hakbang na ito ay ganap na mahalaga (bagaman mayamot) habang gumagamit kami ng isang online API upang makalikom ng aming impormasyon. Habang posible na kalkulahin ang mga phase ng buwan, pag-iilaw atbp, ito ay isang nakakapagod na gawain na gawin ito. Ang API na ginagamit namin ay nagbibigay ng napapanahong impormasyon mula sa live na istasyon ng panahon at mga sistema ng pagsubaybay kaya't ang data na natatanggap namin, ay mga tunay na resulta sa mundo at hindi ng mga kinakalkula na halaga.

Tumungo sa Weather Underground, i-click ang "mag-sign up" at punan ang lahat ng iyong impormasyon. Ang account ay libre at ganoon din ang iyong mga tawag sa API hangga't hindi ka humihiling ng masyadong maraming mga resulta bawat minuto o lumampas sa 500 mga kahilingan bawat araw. Tiyaking na-bookmark mo ang pahinang ito, maaari kang laging bumalik sa ibang pagkakataon at magamit ang API para sa mga istatistika ng panahon at iba pang mahusay na impormasyon. Kapag nilikha mo ang iyong account, pumunta sa API Site, mag-click sa "key ng pagbili" at piliin ang libreng plano, kakailanganin mong maglagay ng ilang mga detalye at magiging isyu ka sa isang devoloper Key ID. Ang ID na ito ay natatangi sa iyo at dapat panatilihing pribado. Naibigay ko ang aking susi sa halimbawa ng Arduino code na titingnan natin nang kaunti sa paglaon. Malugod ka lang na gamitin ang aking Key ID para sa mga layunin sa pagsubok ngunit lubos kong inirerekumenda ang pag-sign up para sa iyong sarili.

Kapag mayroon ka ng iyong natatanging ID, maaari kang magtungo sa impormasyon ng Astronomy API, na sa totoo lang napaka hubad nito. Makakakita ka ng isang simpleng halimbawa na ganito ang hitsura:

api.wunderground.com/api/8c6dc2e5c6f36de9/a…

Napakahalaga ng URL na ito dahil ito ang naglalagay sa amin ng lahat ng impormasyong kailangan namin upang magawa ang aming proyekto. Sige, i-click ang link, makikita mo ang mga resulta para sa Sydney tulad ng phase ng buwan, pag-iilaw at iba pang mahusay na impormasyon. Tingnan ang URL, makikita natin ang Sydney, Australia at isang mahabang code na nagsisimula sa "8c6dcwe…". Ang code na iyon ay ang iyong Key ID na aming kinuha nang mas maaga. Palitan ang code na iyon sa iyong natatanging ID at makita kung paano ito gagana, dapat kang makakuha ng eksaktong parehong resulta. Subukang maglaro sa mga lokasyon. Para sa aking sarili sa South Africa, gumagamit ako ng Johannesburg at ZA.

Hakbang 2: Mga Bahagi

Mga Bahagi
Mga Bahagi
Mga Bahagi
Mga Bahagi
Mga Bahagi
Mga Bahagi

Kaya ngayon para sa mga kagiliw-giliw na bagay. Kakailanganin namin ang ilang mga bahagi, hindi marami at wala sa mga ito ay labis na mahal at nagbigay ako ng mga link ng Amazon para sa mga ginamit kong sangkap. Tandaan, kung mahusay ka sa pag-program, huwag mag-atubiling gumamit ng anumang display o internet device na magagamit mo. Para sa aking pagbuo, ginamit ko ang sumusunod:

Waveshare E-Ink SPI 4.2 "SPI Display

  • ESP32 Dev Board (Generic)
  • Adafruit Power Boost 500
  • 5000mAh Lipo Battery Pack
  • Stripboard (Protoboard)

Kakailanganin mo ng pangangailangan ang mga pangunahing tool tulad ng:

  • Panghinang
  • Panghinang
  • Multimeter
  • Mga caliper
  • Mag-drill ng kaunti upang paghiwalayin ang mga track sa protoboard
  • Kawad
  • Wire Snips
  • Pandikit (gagana ang Mainit na pandikit)
  • Laptop na may naka-install na Arduino IDE

Ang tanging advanced na tool na maaaring kailanganin mo ay isang 3D printer upang gawin ang enclosure. Kung wala kang isa, mabuti iyan, gawin ang iyong enclosure mula sa kahoy at mga lagari sa kamay o anumang magagamit mo. At oo, ang aking 3D printer ay luma at maalikabok lol.

Hakbang 3: Ang Computer Software

Bago kami magsimulang magtrabaho sa circuit at programa, una naming kakailanganin ang pinakabagong bersyon ng Arduino IDE na maaaring matagpuan dito.

Dahil ginagamit namin ang ESP32 na may core ng Arduino, kakailanganin naming i-install ang core na ito sa Arduino IDE. Sundin ang simpleng gabay na ito mula sa Github na nagpapakita sa iyo kung anong software at pagsasaayos ang kakailanganin mong gawin upang magamit mo ang iyong ESP32 dev board sa loob ng Arduino IDE.

Kakailanganin din namin ang dalawang labis na mga aklatan upang gumana ang aming system. Ang una ay isang Arduino JSON library na nagpapahintulot sa amin na basahin at parse ang mga kahilingan ng JSON na eksakto kung ano ang nakukuha namin mula sa Weather Underground. Maaari mong i-download ang dalawang aklatan na ito mula sa aking personal na Dropbox o pababa sa ibaba. Kapag mayroon ka ng mga file, kunin ang mga ito at ilagay ito sa iyong folder ng library ng Arduino. Sa pangkalahatan ay matatagpuan ito sa C: / Mga Gumagamit / HIS_NAME / Mga Dokumento / Arduino / aklatan. Tiyaking i-restart mo ang iyong IDE kung hindi man ay hindi kukunin ng Arduino ang mga bagong karagdagan. Ang pangunahing Arduino SRC code ay nasa folder ding iyon. Naglalaman din ang library ng isang binagong bersyon ng sample na ibinigay mula sa mga ipinapakita na Waveshare. Ang mga file ay binago upang tumakbo sa module ng ESP32 kasama ang kanilang mga GPIO at nagpatupad ako ng isang bagong "font" na naglalaman ng lahat ng mga imahe para sa iba't ibang mga yugto ng buwan.

Hakbang 4: Ang Circuit

Ang Circuit
Ang Circuit
Ang Circuit
Ang Circuit
Ang Circuit
Ang Circuit

Okay kaya ang circuit para sa ito ay lubos na simple at nangangailangan lamang ng ilang mga bahagi at wires.

Ang pangkalahatang ideya ay mayroon kaming isang circuit ng charger ng Lipo, isang boost converter upang bigyan kami ng 5V at pagkatapos ay ang ESP32 Dev Kit na bumabagsak ng boltahe sa 3.3V. Ginagamit din ang 3.3V na ito para sa display ng Waveshare E-Ink. Oo, ito ay bahagyang hindi mabisa dahil sa pagpapalakas at pagkatapos ay pagbaba ng isang linear na regulator ngunit gumagana ang ESP32 sa isang napaka kakila-kilabot na saklaw ng boltahe. Sa isang lugar sa paligid ng 2.5 - 3.6V. Hindi ito angkop para sa mga proyekto ng baterya lalo na ang mga gumagamit ng lithium polymer cells.

Ang pangunahing mga kable ay ang mga sumusunod:

  • Palakasin ang converter ng 5V output Vin & GND sa ESP32 Dev Kit
  • Pagpapakita ng ESP32 3.3V 3.3V & GND E-Ink
  • Display ng ESP32 PIN 18 CLK E-Ink
  • Pagpapakita ng ESP32 PIN 23 DIN / MOSI E-Ink
  • Pagpapakita ng ESP32 PIN 5 CS / SS E-Ink
  • Pagpapakita ng ESP32 PIN 32 DC E-Ink
  • Display sa ESP32 PIN 33 RST E-Ink
  • Ipakita ang ESP32 PIN34 BUSY E-Ink

Maaari mong makita ang mga kable na napakasimple at ang aking mga board ng DIY ay tumagal ng halos 15 minuto upang maitayo. Siguraduhing suriin ang mga maikling circuit na may multimeter bago magbigay ng lakas.

Inalis ko rin ang mga LED mula sa aking ESP32 at Lipo boost board upang makatipid ng halos 40mA ng lakas habang mode ng pagtulog. Matutulungan nito ang mga baterya na tumagal nang mas matagal. Maaari kang magpatupad ng isang switch ng kuryente, circuit ng pag-save ng kuryente, auto disconnect atbp kung nais mo. Maaari mong palawakin ang proyektong ito at gawin itong kumplikado ayon sa gusto mo.

Hakbang 5: Ang Code

Ang Code
Ang Code
Ang Code
Ang Code
Ang Code
Ang Code
Ang Code
Ang Code

Ang code ay maaaring matagpuan sa ibinigay na folder sa panahon ng hakbang 3 o maaari mong i-download ang.ino file mula sa ibaba sa ibaba. Kakailanganin mong i-install ang mga nauugnay na aklatan tulad ng nabanggit sa hakbang 3 upang magkasama ang lahat. Walang masasabi para sa hakbang na ito dahil ang code ay ibinibigay sa isang kondisyon sa pagtatrabaho. Tiyaking ilagay ang iyong SSID at network password bago subukan ang programa, maaari mong palaging patakbuhin ang ESP32 WiFi Scan upang makita ang anumang kalapit na mga wireless network subalit sa aking programa, ang impormasyon ng network ay nakatakda sa code at code lamang. Marahil maaari mong baguhin ito upang tanungin kung anong network ang nais mong ikonekta:)

Ang code ay medyo simple at gugugol ko ng ilang oras sa pagbibigay ng puna at pagpino sa mga susunod na linggo. Karaniwan kaming kumokonekta sa isang network, sa aking kaso, ang aking network sa bahay. Pagkatapos ay tangka naming kumonekta sa Weather Underground at matanggap ang JSON na teksto mula sa webpage. Ginagamit ang aklatan ng ArduinoJSON upang kumuha. o pag-parse, ang JSON code sa mga char array o mga string na nagpapahintulot sa amin na manipulahin ang mga halaga bago ipakita ito sa gumagamit. Ang huling piraso ng code ay mahigpit para sa pag-program ng GUI at ginawa sa pamamagitan ng pagsubok at error. Tiningnan ko ang display, nadagdagan o nabawasan ang isang posisyon ng mga assets at muling pinatakbo ang code hanggang sa nasisiyahan ako sa hitsura ng laki ng font, layout at mga imahe.

Nagpatupad ako ng isang malalim na gawain sa pagtulog para sa ESP32 upang makatipid ng lakas. Ang default ay 60 segundo subalit iminumungkahi ko sa iyo na baguhin ang halaga sa isang bagay tulad ng isang oras o dalawa dahil ang mga pag-update ay hindi nagaganap nang kahit ilang oras. Tumatanggap ang halimbawa ng mga segundo kaya tiyaking ginawa mo nang maayos ang mga conversion.

Ginamit ko rin ang The Dot Factory program upang makabuo ng hex arrays para sa isang bagong font. Ang font na ito ay ginagamit upang makabuo ng "mga imahe" para sa mga phase ng buwan. Kung nais mong i-edit ang mga file ng font pagkatapos ay tiyakin na gagamitin mo ang nabanggit na programa sa itaas para sa henerasyon. Ito ay medyo nakalilito dahil ang E-Ink library ay hindi naitala nang maayos at karamihan sa aking tagumpay ay salamat sa pagsubok at error. Kapag gumugol ako ng mas maraming oras sa code na ito, ia-update ko ang Makatuturo upang magbigay ng karagdagang impormasyon sa aking mga natuklasan.

Ang font na ginamit para sa mga phase ng buwan ay dapat gawin ayon sa isang karaniwang layout ng ASCII. Kung buksan mo ang font24 sa EPD-master folder, maaari mong makita ang layout kung saan ang 1st graphic ay nakilala ng isang puting puwang, ang pangalawa ay isang "!" (tandang padamdam) at iba pa. Makikita mo na hinila ko ang nauugnay na font gamit ang numero 3 o isang simbolo ng hashtag sa huling piraso ng code (pagpapaandar getLunarChar). Ito ay dahil inaasahan ng Arduino ang pamantayan ng ASCII mula 32 hanggang 127. Dahil gumagamit kami ng mga font na walang kinalaman sa aktwal na mga font at sa halip na isang moon phase graphic matrix, kailangan naming tiyakin na ang ASCII character ay tumutukoy sa aming napiling imahe ng phase ng buwan. Nangangahulugan ito na ang paggamit ng isang! mag-sign, ipinapakita sa amin ng aming font ng buwan na phase ang pangalawang buwan na graphic graphic sa listahang iyon. Kung titingnan mo ang font ng buwan ng buwan, makikita mo ang isang buong pangkat ng mga phase ng buwan, lahat ay may iba't ibang mga antas ng pag-iilaw. Sa hinaharap ay magdagdag ako ng higit pang code upang magamit ang lahat ng mga graphic na ipinatupad namin. Sa kasalukuyan gumagamit lamang kami ng ilang mga gayunpaman ang mga graphic ay naipatupad na sa font phase ng buwan at kailangan lamang ipatupad sa code upang magamit ito.

Hakbang 6: Pangwakas na Assembly

Huling pagtitipon
Huling pagtitipon
Huling pagtitipon
Huling pagtitipon
Huling pagtitipon
Huling pagtitipon

Ang huling bahagi ng pagbuo at ang pinaka-kasiya-siya, ay ang proseso ng pagpupulong. Dinisenyo ko at 3D ang naka-print na isang enclosure na akma sa aking board. Ang proyekto ay napaka DIY, walang mga propesyonal na PCB o isang solong karaniwang layout. Para sa pinaka-bahagi, ang kahon na ginamit ko ay sapat na malaki upang mapaunlakan ang anumang lipo charger o boost converter na pinili mong gamitin. Hangga't nagbibigay sila ng parehong pangunahing pag-andar na nabanggit sa Instructable na ito pagkatapos ay dapat kang maging maayos.

Gumamit ako ng 4 na turnilyo upang hawakan ang tuktok at ilalim na kalahati ng enclosure nang magkasama at mainit na pandikit para sa pag-mount ng aking circuitry sa DIY. Gumamit ako ng ilang napakaliit na patak ng pandikit upang hawakan ang baterya ngunit kung may mas maraming oras ako, gumawa ako ng isang pasadyang bracket para sa lahat ng mga electronics.

Nagpasiya rin akong gumawa ng isang butas para sa isang pagdikit na pindutan ng itulak sa likuran. Ididiskonekta nito ang baterya mula sa boost converter na kung saan ay kapaki-pakinabang kung hindi mo plano na patakbuhin ang aparato 24/7. Sa kasamaang palad ang boost converter ay gumagamit pa rin ng kapangyarihan kahit na ang iyong ESP32 ay nasa deep mode ng pagtulog.

Pangkalahatang nasiyahan ako sa kinalabasan. Marami akong natutunan habang ginagamit ang ESP32 at makikita ko ang aking sarili na ginagamit ito para sa iba't ibang mga proyekto sa hinaharap.

Kung mayroon kang anumang mga katanungan, huwag mag-atubiling magtanong, mas handa akong tumulong at kung makakita ka ng anumang mga pagkakamali sa Instructable na ito mangyaring ipaalam sa akin.

EDIT: Talagang ginawa ko ang machine ng CNC ng isang maliit na kaso sa halip na ang 3D na naka-print na bersyon na kung saan ay ang nakikita mo sa mga tampok na imahe.

EDIT: Sa mga tampok na imahe nakikita namin ang isang buong buwan na may 99% na pag-iilaw. Samakatuwid ang puting bilog, habang dumadaan ang buwan sa mga tipikal na yugto nito, ang imahe ng buwan ay magbabago nang naaayon. Ang karagdagang mga imahe ay mai-upload habang ang buwan ay umuusad sa mga yugto nito upang maaari kang makakuha ng isang representasyon ng mga graphic.

Space Hamon
Space Hamon
Space Hamon
Space Hamon

Runner Up sa Space Hamon

Inirerekumendang: