Sisukord:

Lihtne ISS -i teavitussüsteem: 6 sammu (piltidega)
Lihtne ISS -i teavitussüsteem: 6 sammu (piltidega)

Video: Lihtne ISS -i teavitussüsteem: 6 sammu (piltidega)

Video: Lihtne ISS -i teavitussüsteem: 6 sammu (piltidega)
Video: Uurimistöö GAGis: lehekülgede nummerdamine (MS Word 2010) 2024, November
Anonim
Lihtne ISS -i teavitussüsteem
Lihtne ISS -i teavitussüsteem
Lihtne ISS -i teavitussüsteem
Lihtne ISS -i teavitussüsteem

Mis on rahvusvaheline kosmosejaam ja miks soovite selle asukohta ennustada?

Esimesele küsimusele vastamiseks võime vastuse otsida NASA veebisaidilt. Mis lühidalt on:

Rahvusvaheline kosmosejaam on suur kosmoselaev. See tiirleb ümber Maa. See on kodu, kus elavad astronaudid. Kosmosejaam on ka teaduslabor. Paljud riigid tegid selle ehitamiseks koostööd. Nad töötavad koos ka selle kasutamiseks. Kosmosejaam on valmistatud paljudest tükkidest. Tükid panid kosmoses kokku astronaudid. Kosmosejaama orbiit asub Maast umbes 220 miili kõrgusel. NASA kasutab jaama kosmoses elamise ja töötamise tundmaõppimiseks. Need õppetunnid aitavad NASA -l kosmoset uurida.

www.nasa.gov/audience/forstudents/k-4/stor…

Teisele küsimusele on natuke raskem vastata - aga ma proovin.

Olen amatöörraadiooperaator (või Ham -raadiooperaator) - üks asi, mis on mulle alati meeldinud, oli kasutada väikese võimsusega käeshoitavat (5 vatti või vähem) raadiot ja suhelda orbiidil olevate satelliitidega. ISS -i pardal on raadioseadmed.

Oma singipäevade alguses kasutan üsna palju satelliitidega suhtlemist, isegi mõne kontakti loomist ainult kummiga antenniga - seda on väga raske teha. Võtsin paar kontakti ISSiga, kasutades APRS -i (automaatne pakettide aruandlussüsteem). See oli aastal 2013 - ammu, olen sellest ajast peale olnud väga passiivne. See on midagi, mida ma olen tahtnud sinu juurde tagasi saada.

Aastal 2013 kirjutasin käsureale paar PHP skripti, mis ütleksid mulle ISSi asukoha ja aitaksid ennustada, millal see üle pea läheb. Sel ajal kasutasin vilkuvat pulka ja lasin ISS -i lähenedes värvi muuta. Tänu tööle aadressil https://open-notify.org ja tema API-le oli nende tegemine üsna lihtne.

2018 - 5 aastat hiljem muutsin need PHP -d lõpuks Arduino C -ks (tegelikult oli seda väga lihtne teha.)

Minu projekt kasutab D-Duinot (mis on tõesti NodeMCU, mille pardal on OLED), see on kõik, mis seal on.

Ma kasutan endiselt sama API-d saidilt

Olen kirjutanud ka koodi, et kasutada D1 Mini ja WS2812 Shieldi (vt selle kohta lähemalt minu juhendaja Eric Project).

Samm: lihtne riistvara

Lihtne riistvara
Lihtne riistvara

D-Duino (NodeMCU)

www.aliexpress.com/item/NodeMCU-CP2102-ESP…

See on see, see on kõik, mida nõutakse. Muidugi võite kasutada muud riistvara - see peaks toimima iga ESP8266 seadme puhul, mis saab kasutada I2C OLED -i. D-Duino on enamasti NodeMCU, millele on lisatud OLED.

Koodi leiate aadressilt

Arduino IDE -s peate installima ESP8266 tahvlid. Juhised leiate siit:

(lihtsaim viis on tahvlite haldur)

Teil on vaja ka mõnda raamatukogu - ma arvan, et need kõik leiate nüüd raamatukoguhaldurist (kuid ma pole selles 100% kindel).

Vajalikud raamatukogud: ArduinoJson.h

Adafruit_NeoPixel

WifiManager.h

TimeLib.h

esp8266-oled-ssd1306

(Ma pole kindel, kust ma TImeLibi sain ja võib -olla sisaldub see Arduino IDE -s?)

Lihtsaim viis nende installimiseks on teegihalduri kasutamine. Kui ei, järgige iga raamatukogu juhiseid.

2. samm: visandid

Sketches
Sketches

Praegu on githubi hoidlas kaks visandit ja kolm PHP -skripti.

DDuino_ISS_notification, mida tuleks kasutada koos D-Duino riistvaraga ülalt.

Ja EricISSnotification, mis kasutab minu eelmist "Supervisor Eric" saatest "People of Earth". (Sellest lähemalt hiljem)

Mõlemas visandis rea 30 lähedal (või kusagil tõesti selle lähedal) - näete paari ujukmuutujat nimega mylat ja mylon. Peate neid kahte rida oma laius- ja pikkuskraadidega muutma - kui te ei tea oma lati ja pikkust, saate seda veebisaiti kasutada https://www.latlong.net Teie linna keskus peaks korras olema. See ei pea vastama teie laius- või pikkuskraadile. Visandid ümardavad ja muud matemaatikat, et leida ISS -i ligikaudne kaugus USA miilides.

Usun, et see on ainus asi, mida tuleb visandites muuta.

Vahemaa arvutamise matemaatika põhineb kahe ringi vahelise suurringi vahekaugusel ja ametliku leiate siit-https://www.movable-type.co.uk/scripts/latlong.htm…

See sait pakub palju teavet selle kohta, kuidas arvutada kahe laius- ja pikkuskraadi vaheline kaugus ning kandevõime. Me ei kasuta selleks laagrite arvutusi.

Ametliku toimimiseks peame hankima teeta ja muutma teatud määral kiirgavaks ja vastupidi kiirgavaks. Kuna Arduino ei oska matemaatikat nii hästi, peame seda konversioonidega veidi aitama.

void getDistance () {

float theta, dist, miles;

teeta = mylon - isslon;

dist = sin (deg2rad (mylat)) * sin (deg2rad (isslat)) + cos (deg2rad (mylat)) * cos (deg2rad (isslat)) * cos (deg2rad (theta));

dist = acos (dist); dist = rad2deg (dist);

miil = dist * 60 * 1,1515;

kaugus = miil;

}

float deg2rad (float n) {

ujuk radiaan = (n * 71)/4068;

tagasipöördumise radiaan;

}

float rad2deg (float n) {

ujukaste = (n*4068)/71;

tagasipöördumisaste;

}

Suurem osa matemaatikast tehakse rea 127 läheduses - kui soovite teistsugust vahemaad (nt KM või meremiilid)

saate muuta "miili = dist * 60 * 1,1515;" rida.

KM -i jaoks oleks see midagi sellist nagu "miil = (dist*60*1,1515)*1,609344;"

Meremiilide puhul midagi sellist nagu "miili = (dist*60*1,1515)*0,8684;"

Tõenäoliselt tahate muuta ka jadaprindi rida ja OLED -ekraanirida, mis ütlevad teie uuele mõõtmisele miili.

Mis on DDuino_ISS_notification visandi read 86 ja 96.

3. samm: Ericu visand

Ericu visand
Ericu visand
Ericu visand
Ericu visand
Ericu visand
Ericu visand

Juhendaja Eric on tehisintellekt või TBS TV People of Earth tulnukas. Palun vaadake minu teisi juhendeid minu ehituse kohta.

Selle teavitussüsteemi jaoks on põhiline, mida vajate, D1 Mini ja kilp WS2812 - kui see on kena karbis koos kena objektiiviga, näeb see välja - hästi kena.

Taaskord peaks töötama iga ESP8266, millel on WS2812 piksel, maagiat siin tõesti ei toimu - kilp WS2812 on D1 miniga ühendatud D2 -ga (mis minu arvates on NodeMCU tahvlitel tihvt 4 ja võib -olla ka teised ESP8266 tahvlid).

Visandile:

Nagu ülalpool, peate joonisel 27 joonisel olevas visandis muutma oma laius- ja pikkuskraadi. Ja nagu selle joonise kohal, arvutab ka kaugus laius- ja pikkuskraadide vahel. Erinevalt ülaltoodud visandist on see ekraan ainult WS2812 Neopixel LED -iga.

Matemaatika on rea 96 lähedal, kuid muidu samad, mis eespool. Kui soovite näha, mis toimub, on endiselt jadaväljund. See visand teeb ainult ISS -i asukoha ja kauguse arvutusi - see ei tee läbipääsu ennustusi ega seda, kui palju inimesi kosmoses on.

* Tuleb märkida, et vahemaa on siin miilides, seda saab soovi korral muuta, kuid peate oma üksuste jaoks veel mõned muudatused tegema. *

Liini 116 lähedal:

void setColor () {

if (kaugus = 1201) {colorDisplay (riba. Värv (255, 0, 0), p);}

if (kaugus = 1151) {colorDisplay (riba. Värv (255, 153, 0), p);} // tundub mulle kollasem

if (kaugus = 951) {colorDisplay (riba. Värv (255, 255, 0), p);} // tundub mulle roheline/kollane

if (kaugus <= 950) {colorDisplay (riba. Värv (0, 255, 0), p);}

if (kaugus> = 1351) {colorDisplay (riba. Värv (0, 0, 0), p);}

}

Ühikud on miilides ja kui peate muutma KM või NM, siis soovite ka neid ridu muuta.

Mis siin toimub, sina, 1350 miili kaugusel on ISS alles silmapiiril ja sa võid hakata raadiost transpondreid lihtsalt kuulma - see pole suurepärane ja kommunikatsioon ei saa praegu toimuda. LED lülitub punaseks - see on pea ees - ISS läheneb.

Mõne aja pärast või kui ISS on vahemikus 1150–1200 miili, muutub LED oranžiks - see näeb tõesti kollasem välja, kuid toetab oranži värvi. - 1150 miili kaugusel peaksite kuulma üsna palju rohkem - kahesuunaline suhtlus pole 5 -vatise HT -ga tõenäoliselt siiski võimalik.

950–1150 miili vahel - LED peaks kollaseks muutuma - teil on korralik võimalus kontakti luua - see pole siiski suurepärane, kuid see on vähemalt praegu võimalik (kollane tundub mulle rohelisem kui kollane - nii et midagi muud töötab peal)

Alla 950 miili on LED roheline - ja saab luua kahesuunalisi kontakte.

Kui ISS eemaldub LED -ist, muutub roheline kollaseks oranžiks punaseks ja seejärel lõpuks välja.

Siinkohal tuleb märkida, et see kõik toimub väga kiiresti - enamik minu piirkonna läbimisi kestab alla 10 minuti ja tavaline kasutatav kontaktiaeg on alla 5 minuti.

Samuti tuleb märkida, et ISS võib oma asukohta muuta ja API -d võidakse värskendada või mitte - nii et isegi kui teil on roheline tuli, ei pruugi te midagi kuulda.

** Amatöörvarustuse käitamine on samuti vabatahtlik ja vabatahtlik ning kui nad üritavad seadet käitada, on aeg, mil nad peavad selle toite tõttu välja lülitama või mida nad peavad tegema. Alati on hea vaadata AMsati või ARISSi veebisaite **

4. samm: PHP -kood

PHP kood
PHP kood

Githubi hoidlasse olen lisanud oma 2013. aasta PHP -koodi.

Kood oli loodud töötama CLI -st (või käsurealt). Nende kirjutamisest on juba mõnda aega möödas, kuid arvan, et ainus nõue oli JSON -laienduste lubamine.

Skriptid töötavad endiselt ja kui soovite neid käivitada, tehke seda julgelt!

Windowsi kasutajatele leiate siit teavet PHP installimise kohta

Installige kindlasti CLI versioon. Ma arvan, et installimisel saate valida, millised laiendused sisse lülitada.

Linuxi kasutajad sõltuvad teie distributsioonist - ma kasutan Ubuntu põhist distro - ja sünaptikast oma paketihaldurina.

Soovite php7.0-common, php7.0-json, php7.0-cli, php7.0-curl

Ma arvan, et ma ei kasutanud nendega CURL -i, nii et teil ei pruugi seda vaja minna. Ülejäänu leiate oma pakettide sõimest või veebisaidilt

Kahte skripti tuleb muuta vastavalt teie laius- ja pikkuskraadidele - need ei ole väga pikad ja muudetav on skripti ülaosas. Need on iss-location.php ja iss-pass-api.php

iss -location.php -sse on jäetud minu vanad vilkumisklapid - ma pole enam kindel, et need töötavad -, kuid näete, et vahetasin LED -i umbes samamoodi nagu oma Eric -teatega. Ma ei usu, et need probleeme tekitaksid, kuid võiksite neid kommenteerida.

iss-pass-api.php kasutab ajastu aega ja annab prognoositud möödumiste kohaliku aja. Ausalt öeldes eelistan selle skripti PHP versiooni võrreldes DDuino versiooniga (mis praegu teeb ainult UTC ennustusi)

PHP versioon on ka kuvamiseks ilusam - kuid see on tõesti väike asi.

Lõplik PHP -skript on iss -people.php - ja see kuvab nimed ja millise kosmoselaevaga nad tegelevad. See on kõik, mida see teeb. (Ja see teave ei muutu sageli)

PHP skripti käsurealt käivitamise põhitõed on järgmised:

$ php iss-people.php

PHP -failid on tekstifailid ja neid saab avada mis tahes tekstiredaktoriga. Ma arvan, et Windowsi kasutajad salvestasin need nii, et neil oleks nii rea- kui ka kärutagastus. KUI mitte https://www.editpadlite.com/ võib neile sobida.

Samm: videod ja muu teave ISS -i ja singi kohta

Image
Image

Sinki litsentsi saamine Ameerika Ühendriikides:

Mitte USA -s? Igal riigil on oma reeglid ja litsentsijuhendid - kontrollige, kes teie suhtlust juhib (siin USA -s on FCC föderaalne kommunikatsioonikomisjon)

Arvutage laius- ja pikkuspunktide vaheline kaugus, laager ja palju muud.

Seda oleks olnud palju raskem teha ilma Open Notify väga kasulike API -deta

Kuidas näha kosmosejaama maapinnalt.

AMSAT raadioamatööride satelliit

AMSAT -i teave ISS -i raadios

Amatöörraadio ARISS rahvusvahelises kosmosejaamas

ISS -i fänniklubi - ISS -i sagedused

Vikipeedia sissekanne APRS -i kohta

APRS.org

6. samm: viimased mõtted…

See oli lõbus projekt väga lihtsa riistvaraga.

On paar asja, mida tahaksin muuta, kuid üldiselt olen tulemustega väga rahul.

Asjad, mida tuleb muuta:

1) Leidke viis ennustuste edastamiseks kohaliku aja järgi, mitte UTC järgi

2) Leidke oranžile ja kollasele paremad värvikoodid.

3) Värskendage, et töötada ESP32 X-plaadiga, OLED-i ja 4 neopiksliga.

Kui leiate, et see või mõni minu projekt on kasulik või meeldiv, palun toetage mind.

Kõik, mida ma saan, läheb ostma rohkem osi ja tegema rohkem/paremaid projekte.

www.patreon.com/kd8bxp

ko-fi.com/lfmiller

Soovitan: