INHOUDSOPGAWE:
- Stap 1: Registreer vir sterrekunde -inligting
- Stap 2: Komponente
- Stap 3: Die rekenaarsagteware
- Stap 4: Die stroombaan
- Stap 5: Die kode
- Stap 6: Finale vergadering
Video: Draadlose maanfasetracker: 6 stappe (met foto's)
2024 Outeur: John Day | [email protected]. Laas verander: 2024-01-30 07:27
Die maanfasetracker is 'n klein, semi-draagbare toestel waarmee u kritiese inligting oor die maan kan versamel. Die toestel gee parameters weer soos die sigbare beligting, die fase, maanopkoms en vasgestelde tye en meer.
Hierdie toestel is noodsaaklik vir almal wat belangstel in wetenskap of sterrekunde, wat 'n uitstekende kantoorversiering bied en beslis 'n gesprek is.
Die projek is redelik eenvoudig en vereis 'n internetverbinding, soos 'n ESP32, maar u kan die kode altyd aanpas met 'n WiFi -skild, Ethernet -skild of enige ander internetverbinding wat u mag hê. Die Lunar Phase Tracker is ontwerp om litium-polimeer batterye af te werk en 'n baie effektiewe E-ink-skerm wat nie net 'n wonderlike skerm bied om na te kyk nie, maar ook die laaste beeld bevat, selfs al gaan die krag af!
Stap 1: Registreer vir sterrekunde -inligting
Hierdie stap is absoluut noodsaaklik (hoewel vervelig), aangesien ons 'n aanlyn API gebruik om ons inligting te versamel. Alhoewel dit moontlik is om die maanfases, beligting ens te bereken, is dit 'n vervelige taak om dit te doen. Die API wat ons gebruik, bied bygewerkte inligting van lewendige weerstasies en moniteringstelsels, sodat die data wat ons ontvang, werklike resultate is en nie die van berekende waardes nie.
Gaan na Weather Underground, klik op 'registreer' en vul al u inligting in. Die rekening is heeltemal gratis, en u API -oproepe ook, solank u nie te veel resultate per minuut versoek of 500 versoeke per dag oorskry nie. Maak 'n boekmerk op hierdie bladsy; u kan altyd later terugkom en die API gebruik vir weerstatistieke en ander goeie inligting. Sodra u u rekening geskep het, gaan na die API -webwerf, klik op die "aankoopsleutel" en kies die gratis plan. U hoef slegs 'n paar besonderhede in te voer, en u sal probleme ondervind met 'n sleutel -ID van die ontwikkelaar. Hierdie ID is uniek vir u en moet privaat gehou word. Ek het my sleutel in die voorbeeld Arduino -kode verskaf, waarna ons later sal kyk. U is meer as welkom om my sleutel -ID te gebruik vir toetsdoeleindes, maar ek beveel sterk aan dat u u eie aanmeld.
Sodra u u unieke ID het, kan u na die Astronomy API -inligting gaan, wat eerlikwaar baie bloot is. U vind 'n eenvoudige voorbeeld wat so lyk:
api.wunderground.com/api/8c6dc2e5c6f36de9/a…
Hierdie URL is uiters belangrik, want dit gee ons al die inligting wat ons nodig het om ons projek te maak. Klik op die skakel, u sien resultate vir Sydney, soos maanfase, beligting en ander goeie inligting. Kyk na die URL, ons sien Sydney, Australië en 'n lang kode wat begin met '8c6dcwe …'. Die kode is u sleutel -ID wat ons vroeër opgetel het. Verander die kode met u unieke ID en kyk hoe dit werk; u moet presies dieselfde resultaat kry. Probeer om met plekke te speel. Vir myself in Suid -Afrika gebruik ek Johannesburg en ZA.
Stap 2: Komponente
So nou vir die interessante dinge. Ons benodig 'n paar komponente, nie baie nie, en nie een van hulle is baie duur nie, en ek het Amazon -skakels verskaf vir die komponente wat ek gebruik het. Hou in gedagte dat as u goed is met programmering, u enige skerm of internettoestel wat u beskikbaar het, kan gebruik. Vir my bouwerk het ek die volgende gebruik:
Waveshare E-Ink SPI 4.2 "SPI-skerm
- ESP32 Dev Board (generies)
- Adafruit Power Boost 500
- 5000 mAh Lipo -battery
- Strookplank (Protoboard)
U benodig ook basiese gereedskap soos:
- Soldeerbout
- Soldeer
- Multimeter
- Kalipers
- Boorpunt na aparte spore op protoboard
- Draad
- Draadknipsels
- Gom (warm gom werk)
- Skootrekenaar met Arduino IDE geïnstalleer
Die enigste gevorderde hulpmiddel wat u benodig, is 'n 3D -drukker om die omhulsel te maak. As u nie een het nie, is dit goed, maak u omhulsel van hout en handsaag of enigiets wat u beskikbaar het. En ja, my 3D -drukker is oud en stowwerig lol.
Stap 3: Die rekenaarsagteware
Voordat ons aan die kring en programmering kan begin werk, benodig ons eerstens die mees onlangse weergawe van die Arduino IDE wat u hier kan vind.
Aangesien ons die ESP32 met Arduino -kern gebruik, moet ons hierdie kern op die Arduino IDE installeer. Volg hierdie eenvoudige gids van Github, wat u wys watter sagteware en konfigurasie u moet doen, sodat u u ESP32 dev -bord in die Arduino IDE kan gebruik.
Ons sal ook twee ekstra biblioteke benodig om ons stelsel te laat werk. Die eerste is 'n Arduino JSON -biblioteek waarmee ons JSON -versoeke kan lees en ontleed, en dit is presies wat ons van Weather Underground kry. U kan hierdie twee biblioteke aflaai van my persoonlike Dropbox of hieronder. Sodra u die lêers het, pak dit uit en plaas dit in u Arduino -biblioteekmap. Dit is gewoonlik geleë op C: / Users / YOUR_NAME / Documents / Arduino / biblioteke. Maak seker dat u u IDE herlaai, anders vind Arduino nie die nuwe toevoegings nie. Die belangrikste Arduino SRC -kode is ook in die gids. Die biblioteek bevat ook 'n aangepaste weergawe van die monster wat vanaf Waveshare -skerms verskaf word. Die lêers is verander om op die ESP32 -module met hul GPIO's te werk, en ek het 'n nuwe "lettertipe" geïmplementeer wat al die beelde bevat vir die verskillende fases van die maan.
Stap 4: Die stroombaan
Oké, die stroombaan hiervoor is uiters eenvoudig en benodig slegs 'n paar komponente en drade.
Die algemene idee is dat ons 'n Lipo -laaikring het, 'n boost -omskakelaar om ons 5V te gee en dan die ESP32 Dev Kit wat die spanning tot 3.3V laat sak. Hierdie 3.3V word ook gebruik vir die Waveshare E-Ink-skerm. Ja, dit is effens ondoeltreffend as gevolg van 'n hupstoot en dan met 'n lineêre reguleerder, maar die ESP32 werk oor 'n baie aaklige spanningsbereik. Iewers rondom 2,5 - 3,6V. Dit is nie geskik vir batteryprojekte nie, veral dié wat litiumpolymeerselle gebruik.
Die basiese bedrading is soos volg:
- Versterk omskakelaar 5V -uitvoer Vin & GND op ESP32 Dev Kit
- ESP32 3.3V 3.3V en GND E-Ink Display
- ESP32 PIN 18 CLK E-ink-skerm
- ESP32 PIN 23 DIN/MOSI E-ink-skerm
- ESP32 PIN 5 CS/SS E-Ink Display
- ESP32 PIN 32 DC E-ink-skerm
- ESP32 PIN 33 RST E-Ink Display
- ESP32 PIN34 BUSY E-Ink Display
U kan sien dat die bedrading baie eenvoudig is en my DIY -borde het net ongeveer 15 minute geneem om dit te bou.
Ek het ook die LED's van my ESP32 en Lipo boost board verwyder om ongeveer 40mA krag te bespaar tydens die slaapmodus. Dit sal help om die batterye 'n bietjie langer te hou. U kan 'n kragskakelaar, kragbesparingskring, outomatiese ontkoppeling, ens. Implementeer as u wil. U kan hierdie projek uitbrei en dit so kompleks maak as wat u wil.
Stap 5: Die kode
Die kode kan tydens stap 3 in die gids gevind word, of u kan die.ino -lêer hieronder aflaai. U moet die geassosieerde biblioteke soos in stap 3 genoem, installeer om alles saam te laat werk. Daar is nie veel te sê vir hierdie stap nie, aangesien die kode in 'n werkende toestand is. Maak seker dat u u SSID en netwerkwagwoord plaas voordat u die program toets; u kan altyd die ESP32 WiFi Scan uitvoer om draadlose netwerke in die omgewing op te spoor, maar in my program is die netwerkinligting slegs in kode en kode gestel. Miskien kan u dit verander om te vra na watter netwerk u wil koppel:)
Die kode is redelik eenvoudig, en ek sal die volgende paar weke tyd spandeer om kommentaar te lewer en dit te verfyn. Ons maak basies verbinding met 'n netwerk, in my geval, my tuisnetwerk. Ons probeer dan om verbinding te maak met Weather Underground en ontvang die JSON -teks van die webblad. Die ArduinoJSON -biblioteek word dan gebruik om te onttrek. of ontleed, die JSON -kode in char -skikkings of snare wat ons in staat stel om die waardes te manipuleer voordat dit aan die gebruiker vertoon word. Die laaste bietjie kode is streng vir die programmering van die GUI en is deur proef en fout gedoen. Ek het na die skerm gekyk, 'n batesposisie verhoog of verminder en die kode weer uitgevoer totdat ek tevrede was met die lettergrootte, uitleg en beelde.
Ek het 'n diep slaaproetine vir die ESP32 geïmplementeer om krag te bespaar. Die standaard is 60 sekondes, maar ek stel voor dat u die waarde verander na iets soos 'n uur of twee, aangesien opdaterings minstens 'n paar uur nie plaasvind nie. Die voorbeeld aanvaar sekondes, dus maak seker dat u die omskakelings behoorlik doen.
Ek het ook die Dot Factory -program gebruik om hex -skikkings vir 'n nuwe lettertipe te genereer. Hierdie lettertipe word gebruik om die 'beelde' vir die maanfases te genereer. As u die lettertipe -lêer wil wysig, gebruik dan die bogenoemde program om te genereer. Dit is 'n bietjie verwarrend, aangesien die E-Ink-biblioteek nie goed gedokumenteer is nie en die grootste deel van my sukses was te danke aan probeer en fout. As ek meer tyd spandeer met hierdie kode, sal ek die instruksies opdateer om meer inligting oor my bevindings te verskaf.
Die lettertipe wat vir die maanfases gebruik word, moet volgens 'n standaard ASCII -uitleg gedoen word. As u font24 in die EPD-master-lêergids oopmaak, kan u die uitleg sien waar die eerste grafika deur 'n wit spasie geïdentifiseer word, die tweede 'n '!' (uitroepteken) ensovoorts. U sal sien dat ek die gepaardgaande lettertipe trek met die nommer 3 of 'n hashtag -simbool in die laaste kode (funksie getLunarChar). Dit is omdat Arduino die ASCII -standaard van 32 tot 127 verwag. Omdat ons lettertipes gebruik wat niks met werklike lettertipes te doen het nie en eerder 'n maanfase grafiese matriks, moet ons verseker dat die ASCII -karakter na ons gekose maanfase -beeld verwys. Dit beteken dat die gebruik van 'n! teken, ons maanfase -lettertipe wys ons die grafiek van die tweede maanfase in die lys. As u na die maanfase -lettertipe kyk, sien u 'n hele klomp maanfases, almal met verskillende beligtingsvlakke. In die toekoms sal ek meer kode byvoeg om gebruik te maak van al die grafika wat ons geïmplementeer het. Op die oomblik gebruik ons slegs 'n paar, maar die grafika is reeds geïmplementeer in die maanfase -lettertipe en moet net in die kode geïmplementeer word om dit te gebruik.
Stap 6: Finale vergadering
Die laaste deel van die konstruksie en die bevredigendste is die monteerproses. Ek het 'n omhulsel ontwerp en 3D gedruk wat op my bord pas. Die projek is baie DIY, daar is geen professionele PCB's of 'n enkele standaarduitleg nie. Die boks wat ek gebruik het, is meestal groot genoeg vir enige lipo -laaier of 'n boost -omskakelaar wat u kies. Solank hulle dieselfde basiese funksies bied wat in hierdie instruksies genoem word, moet dit goed gaan.
Ek het 4 skroewe gebruik om die boonste en onderste helfte van die omhulsel bymekaar te hou en warm gom om my DIY -kringe aan te sit. Ek het 'n paar klein druppels gom gebruik om die battery in te hou, maar as ek meer tyd gehad het, sou ek 'n pasgemaakte houer vir al die elektronika gemaak het.
Ek het ook besluit om 'n gaatjie te maak vir 'n drukknop aan die agterkant. Dit ontkoppel die battery van die boost -omskakelaar, wat handig is as u nie van plan is om die toestel 24/7 te gebruik nie. Ongelukkig gebruik die boost -omskakelaar steeds krag, selfs al is u ESP32 in diepe slaapmodus.
Oor die algemeen is ek baie tevrede met die uitslag. Ek het baie geleer tydens die gebruik van die ESP32 en kan myself sien dat ek dit in die toekoms vir 'n verskeidenheid projekte kan gebruik.
As u enige vrae het, vra dit gerus, ek sal meer as bereid wees om u te help, en as u enige foute in hierdie instruksie vind, laat weet my asseblief.
EDIT: Ek het eintlik 'n klein kas in CNC -masjien gemaak in plaas van die 3D -gedrukte weergawe, wat u op die beelde sien.
EDIT: Op die beelde sien ons 'n volmaan met 99% beligting. Vandaar die wit sirkel, terwyl die maan deur sy tipiese fases gaan, sal die beeld van die maan dienooreenkomstig verander. Verdere beelde sal opgelaai word namate die maan in sy fases vorder, sodat u 'n voorstelling van die grafika kan kry.
Naaswenner in die ruimte -uitdaging
Aanbeveel:
Draadlose Arduino -robot met behulp van die HC12 -draadlose module: 7 stappe
Draadlose Arduino -robot wat die HC12 -draadlose module gebruik: Hallo ouens, welkom terug. In my vorige pos het ek verduidelik wat 'n H Bridge Circuit is, L293D -motorbestuurder -IC, L293D -motorbestuurder -IC vir die bestuur van hoëstroom -motorbestuurders en hoe u u eie L293D -motorbestuurderbord kan ontwerp en maak
Draadlose afstandsbediening met 2,4 GHz NRF24L01 -module met Arduino - Nrf24l01 4 -kanaals / 6 -kanaals sender -ontvanger voor quadcopter - Rc Helikopter - Rc -vliegtuig met Arduino: 5 stappe (met foto's)
Draadlose afstandsbediening met 2,4 GHz NRF24L01 -module met Arduino | Nrf24l01 4 -kanaals / 6 -kanaals sender -ontvanger voor quadcopter | Rc Helikopter | Rc -vliegtuig met Arduino: om 'n Rc -motor te bestuur | Quadcopter | Drone | RC -vliegtuig | RC -boot, ons het altyd 'n ontvanger en sender nodig, veronderstel dat ons vir RC QUADCOPTER 'n 6 -kanaals sender en ontvanger nodig het en dat die tipe TX en RX te duur is, so ons maak een op ons
Vyftig meter bereik draadlose toegangspunt met TP Link WN7200ND USB draadlose adapter op Raspbian -rek: 6 stappe
Vyftig meter bereik draadlose toegangspunt met TP Link WN7200ND USB draadlose adapter op Raspbian Stretch: Raspberry Pi is wonderlik om veilige draadlose toegangspunte te skep, maar dit het nie 'n goeie bereik nie; ek het 'n TP Link WN7200ND USB draadlose adapter gebruik om dit uit te brei. Ek wil deel hoe om dit te doen Hoekom wil ek 'n framboos pi in plaas van 'n router gebruik? T
DIY draadlose mikrofoon na draadlose kitaarstelsel: 4 stappe
DIY draadlose mikrofoon na draadlose kitaarstelsel: ek het 'n paar videos en 'n paar bands gekyk, en byna 'n draadlose stelsel op kitaar. Word mal, beweeg, loop en doen wat hulle wil sonder die koord, so ek droom daarvan om een te hê .. Maar .. vir my is dit nou te duur, so ek het hierop gekom
Hack 'n draadlose deurklokkie in 'n draadlose alarmskakelaar of aan/uit -skakelaar: 4 stappe
Hack 'n draadlose deurklokkie in 'n draadlose alarmskakelaar of aan/uit -skakelaar: ek het onlangs 'n alarmstelsel gebou en dit in my huis geïnstalleer. Ek het magnetiese skakelaars op die deure gebruik en deur die solder vasgemaak. Die vensters was 'n ander storie en harde bedrading was nie 'n opsie nie. Ek het 'n draadlose oplossing nodig gehad, en dit is