Satura rādītājs:

Vienkārša ISS paziņojumu sistēma: 6 soļi (ar attēliem)
Vienkārša ISS paziņojumu sistēma: 6 soļi (ar attēliem)

Video: Vienkārša ISS paziņojumu sistēma: 6 soļi (ar attēliem)

Video: Vienkārša ISS paziņojumu sistēma: 6 soļi (ar attēliem)
Video: Kāds skaitlis no 1 līdz 31 ir dzimis cilvēks, tāda ir visa viņa dzīve 2024, Jūlijs
Anonim
Vienkārša ISS paziņojumu sistēma
Vienkārša ISS paziņojumu sistēma
Vienkārša ISS paziņojumu sistēma
Vienkārša ISS paziņojumu sistēma

Kas ir Starptautiskā kosmosa stacija un kāpēc jūs vēlaties paredzēt, kur tā atrodas?

Lai atbildētu uz pirmo jautājumu, mēs varam meklēt atbildi NASA vietnē. Kas īsumā ir:

Starptautiskā kosmosa stacija ir liels kosmosa kuģis. Tas riņķo ap Zemi. Tā ir mājvieta, kurā dzīvo astronauti. Kosmosa stacija ir arī zinātnes laboratorija. Daudzas valstis strādāja kopā, lai to izveidotu. Viņi arī strādā kopā, lai to izmantotu. Kosmosa stacija ir veidota no daudziem gabaliem. Gabaliņus kosmosā salika astronauti. Kosmosa stacijas orbīta atrodas aptuveni 220 jūdzes virs Zemes. NASA izmanto staciju, lai uzzinātu par dzīvošanu un darbu kosmosā. Šīs nodarbības palīdzēs NASA izpētīt kosmosu.

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

Uz otro jautājumu ir nedaudz grūtāk atbildēt - bet es mēģināšu.

Es esmu radioamatieris (vai šķiņķa radio operators) - viena lieta, kas man vienmēr ir šķitusi jautra, bija izmantot zemas jaudas rokas (5 vati vai mazāk) radio un sazināties ar orbitālajiem satelītiem. ISS ir radioiekārta.

Jau šķiņķa laikos es diezgan bieži sazinos ar satelītiem, pat izveidojot dažus kontaktus tikai ar gumijas pīļu antenu - tas ir ļoti grūti izdarāms. Es izveidoju dažus kontaktus ar ISS, izmantojot APRS (automātisko pakešu ziņošanas sistēmu). Tas bija 2013. gadā - sen, kopš tā laika esmu bijis ļoti neaktīvs. Tas ir kaut kas, ko es gribēju atgriezties tevī.

2013. gadā es komandrindai uzrakstīju pāris PHP skriptus, kas pastāstītu man ISS atrašanās vietu un palīdzētu paredzēt, kad tas būs virs galvas. Tajā laikā es izmantoju mirgojošu nūju un lika tai mainīt krāsas, tuvojoties ISS. Pateicoties darbam vietnē https://open-notify.org un viņa API, tos bija diezgan viegli izveidot.

2018 - 5 gadus vēlāk es beidzot pārveidoju šos PHP uz Arduino C (patiesībā to bija ļoti viegli izdarīt.)

Mans projekts izmanto D-Duino (kas patiešām ir NodeMCU ar OLED uz kuģa), tas ir viss, kas tam ir.

Es joprojām izmantoju to pašu API no vietnes

Esmu arī uzrakstījis kādu kodu, lai izmantotu D1 Mini un WS2812 Shield (lai iegūtu plašāku informāciju, skatiet manu supervizoru Ericu projektu).

1. darbība: vienkārša aparatūra

Vienkārša aparatūra
Vienkārša aparatūra

D-Duino (NodeMCU)

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

Tas ir tas, tas ir viss, kas nepieciešams. Protams, jūs varat izmantot citu aparatūru - tam vajadzētu darboties jebkurā ESP8266 ierīcē, kas var izmantot I2C OLED. D-Duino lielākoties ir NodeMCU, pievienojot OLED.

Kods atrodams

Jums būs jāinstalē ESP8266 plates Arduino IDE. Instrukcijas var atrast šeit:

(vienkāršākais veids ir ar dēļu pārvaldnieku)

Jums būs vajadzīgas arī dažas bibliotēkas - es domāju, ka tās visas tagad var atrast bibliotēkas pārvaldniekā (bet es neesmu par to 100% pārliecināts).

Nepieciešamās bibliotēkas: ArduinoJson.h

Adafruit_NeoPixel

WifiManager.h

TimeLib.h

esp8266-oled-ssd1306

(Es neesmu pārliecināts, no kurienes es ieguvu TImeLib, un tas, iespējams, ir iekļauts Arduino IDE?)

Vienkāršākais veids, kā tos instalēt, ir bibliotēkas pārvaldnieks. Ja nē, izpildiet katras bibliotēkas norādījumus.

2. solis: Skices

Skices
Skices

Pašlaik github krātuvē ir iekļautas divas skices un trīs PHP skripti.

DDuino_ISS_notification, kas jāizmanto kopā ar D-Duino aparatūru no augšas.

Un EricISSnotification, kas izmanto manu iepriekšējo "supervizoru Ēriku" no izrādes "People of Earth" projekta. (Vairāk par to vēlāk)

Abās skicēs netālu no 30. līnijas (vai kaut kur patiešām tuvu tai) - jūs redzēsit pāris pludiņa mainīgos, ko sauc par mylat un mylon. Jums būs jāmaina šīs divas līnijas, izmantojot savu platuma un garuma grādu - ja jūs nezināt savu latus un garumu, varat izmantot šo vietni https://www.latlong.net Jūsu pilsētas centram vajadzētu būt labam. Tam nav jāatbilst jūsu noteiktajam platuma vai garuma grādam. Skices veic noapaļošanu un citu matemātiku, lai iegūtu aptuvenu ISS attālumu ASV jūdzēs.

Es uzskatu, ka šī ir vienīgā lieta, kas jāmaina skicēs.

Matemātika attāluma aprēķināšanai ir balstīta uz lielā apļa attālumu starp diviem punktiem, un formālo var atrast šeit-https://www.movable-type.co.uk/scripts/latlong.htm…

Šī vietne sniedz daudz informācijas par to, kā aprēķināt attālumu starp diviem platuma un garuma grādiem, kā arī gultni. Šim nolūkam mēs neizmantojam nekādus gultņu aprēķinus.

Lai formāli darbotos, mums ir jāiegūst teta un jāpārvērš zināmā mērā starojoša, un otrādi - starojoša pakāpe. Tā kā Arduino tik labi neveic matemātiku, mums ir nedaudz jāpalīdz ar reklāmguvumiem.

void getDistance () {

pludināt teta, dist, jūdzes;

teta = mylon - isslon;

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

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

jūdzes = dist * 60 * 1,1515;

attālums = jūdzes;

}

pludiņš deg2rad (pludiņš n) {

pludiņa radiāns = (n * 71)/4068;

atgriešanās radiāns;

}

pludiņš rad2deg (pludiņš n) {

pludiņa pakāpe = (n*4068)/71;

atgriešanās pakāpe;

}

Lielākā daļa matemātikas tiek veikta netālu no 127. līnijas - ja vēlaties citu attālumu (piemēram, KM vai jūras jūdzes)

jūs varat mainīt "jūdzes = dist * 60 * 1,1515;" līnija.

KM tas būtu kaut kas līdzīgs "jūdzes = (dist*60*1,1515)*1,609344;"

Jūras jūdzēm kaut kas līdzīgs "jūdzes = (dist*60*1,1515)*0,8684;"

Jūs, iespējams, vēlēsities arī mainīt sērijas drukas līniju un OLED displeja līniju, kas norāda jūdzes līdz jūsu jaunajam mērījumam.

Kas ir 86. un 96. rinda DDuino_ISS_notification skicē.

3. solis: Ērika skice

Ērika skice
Ērika skice
Ērika skice
Ērika skice
Ērika skice
Ērika skice

Uzraugs Ēriks ir AI vai citplanētietis no TBS TV People of Earth. Lūdzu, skatiet manu citu pamācību par manu būvi.

Pamata, kas jums nepieciešama šai paziņošanas sistēmai, jums ir D1 Mini un vairogs WS2812 - ja tas atrodas jaukā kastē ar jauku objektīvu, tas izskatās labi.

Vēlreiz jāatzīmē, ka jebkuram ESP8266 ar WS2812 pikseļu vajadzētu darboties, maģija šeit patiešām nenotiek - WS2812 vairogs ir savienots ar D2 uz D1 mini (kas, manuprāt, ir 4. tapa NodeMCU dēļos, un varbūt arī citi ESP8266 dēļi).

Uz skici:

Tāpat kā iepriekš, jums ir jāmaina platums un garums skicē pie 27. līnijas. Un tāpat kā virs šīs skices arī tiek aprēķināts attālums starp platumu un garumu. Atšķirībā no iepriekš minētās skices šis displejs ir tikai ar WS2812 Neopixel LED.

Matemātika ir tuvu 96. līnijai, bet citādi ir tāda pati kā iepriekš. Ja vēlaties redzēt notiekošo, joprojām ir sērijveida izeja. Šajā skicē tiek aprēķināti tikai ISS atrašanās vietas un attāluma aprēķini - tā neveic caurlaides prognozes vai to, cik cilvēku atrodas kosmosā.

* Jāatzīmē, ka attālums šeit ir jūdzes, to var mainīt, ja vēlaties, bet jums būs jāveic vēl dažas izmaiņas vienībās. *

Blakus 116. līnijai:

void setColor () {

ja (attālums = 1201) {colorDisplay (sloksne. Krāsa (255, 0, 0), p);}

if (distance = 1151) {colorDisplay (strip. Color (255, 153, 0), p);} // man šķiet dzeltenāks

if (distance = 951) {colorDisplay (sloksne. Krāsa (255, 255, 0), p);} // man šķiet zaļa/dzeltena

if (attālums <= 950) {colorDisplay (sloksne. Krāsa (0, 255, 0), p);}

if (distance> = 1351) {colorDisplay (strip. Color (0, 0, 0), p);}

}

Vienības ir jūdzēs, un, ja jums ir jāmaina uz KM vai NM, šīs līnijas arī vēlaties mainīt.

Kas te notiek, tu, 1350 jūdžu attālumā ISS ir tikai pie horizonta, un jūs varat sākt dzirdēt retranslatorus no radio - tas nav lieliski, un komunikācija šajā brīdī īsti nevar notikt. Gaismas diode kļūst sarkana - šī ir galvu uz augšu - ISS tuvojas.

Pēc neilga laika vai ja ISS ir no 1150 līdz 1200 jūdzēm, gaismas diode kļūs oranža - tas tiešām izskatās vairāk dzeltens, bet tas atbalsta oranžu. - Pēc 1150 jūdzēm jums vajadzētu sākt dzirdēt nedaudz vairāk - divvirzienu komunikācija, visticamāk, joprojām nebūs iespējama 5 vatu HT.

No 950 līdz 1150 jūdzēm - gaismas diodei jākļūst dzeltenai - jums ir pienācīgas iespējas sazināties - joprojām nav lieliski, bet vismaz šajā brīdī tas ir iespējams (dzeltens man šķiet vairāk zaļš nekā dzeltens - tātad kaut kas cits, lai strādātu) ieslēgts)

Zem 950 jūdzēm gaismas diode būs stabila ZAĻA - un var izveidot divvirzienu kontaktus.

Kad ISS attālinās no gaismas diodes, tas mainīsies no zaļas uz dzeltenu līdz oranžai uz sarkanu un tad beidzot uz izslēgtu.

Šeit jāatzīmē, ka tas viss notiek ļoti ātri - lielākā daļa caurlaides manā apgabalā ilgst mazāk nekā 10 minūtes, un parastais izmantojamais kontakta laiks ir mazāks par 5 minūtēm.

Jāatzīmē arī tas, ka ISS var mainīt savu atrašanās vietu un ka API var tikt atjaunināta vai neatjaunota, tāpēc, pat ja jums ir zaļa gaisma, iespējams, neko nedzirdēsit.

** Amatieru aprīkojuma palaišana tiek veikta arī pēc izvēles un brīvprātīgi, un, kamēr viņi cenšas palaist aprīkojumu, ir laiks, kad tas ir jāslēdz, lai iegūtu elektroenerģiju, vai arī to dēļ, kas viņiem jādara. Vienmēr ir ieteicams pārbaudīt AMsat vai ARISS vietnes **

4. solis: PHP kods

PHP kods
PHP kods

Github krātuvē esmu iekļāvis savu PHP kodu no 2013. gada.

Kods tika izstrādāts, lai palaistu no CLI (vai komandrindas). Ir pagājis kāds laiks, kopš es tos uzrakstīju, bet, manuprāt, vienīgā prasība bija iespējot JSON paplašinājumus.

Skripti joprojām darbojas, un, ja vēlaties tos palaist, dariet to brīvi!

Windows lietotājiem šeit ir informācija par PHP instalēšanu

Noteikti instalējiet CLI versiju. Es domāju, ka, instalējot, jūs varat izvēlēties, kurus paplašinājumus ieslēgt.

Linux lietotāji ir atkarīgi no jūsu distro - es izmantoju uz Ubuntu balstītu distro - un sinaptiku kā savu pakotņu pārvaldnieku.

Jūs vēlaties PHP7.0-common, php7.0-json, php7.0-cli, php7.0-curl

Es nedomāju, ka es izmantoju CURL ar šiem, tāpēc jums tas, iespējams, nav vajadzīgs. Pārējais ir atrodams jūsu izvēlētajā iepakojumā vai https://php.net vietnē.

Divi no skriptiem būs jārediģē, ņemot vērā jūsu platumu un garumu - tie nav ļoti gari, un tas, kas ir jāmaina, atrodas tieši skripta augšdaļā. Tie ir iss-location.php un iss-pass-api.php

iss -location.php ir palikuši mani vecie mirgojošie zvana zvani - es neesmu pārliecināts, ka tie vairs nedarbojas -, bet jūs varat redzēt, ka es mainīju LED tādā pašā veidā, kā es daru ar savu “Eric Notification”. Es nedomāju, ka tie rada nekādas problēmas, bet jūs varētu vēlēties tos komentēt.

iss-pass-api.php izmanto laikmeta laiku un sniedz vietējo laiku no prognozētajām piespēlēm. Godīgi sakot, es dodu priekšroku šī skripta PHP versijai, salīdzinot ar DDuino versiju (kas šobrīd tikai paredz UTC prognozes)

PHP versija ir arī noformēta jaukāk, lai to parādītu - bet tā patiešām ir neliela lieta.

Pēdējais PHP skripts ir iss -people.php - un tas parādīs nosaukumus un kosmosa kuģi, ar kuru viņi strādā. Tas ir viss, ko tā dara. (Un šī informācija bieži nemainās)

PHP skripta palaišanas pamati no komandrindas ir šādi:

$ php iss-people.php

PHP faili ir teksta faili, un tos var atvērt ar jebkuru teksta redaktoru. Windows lietotāji, manuprāt, tos saglabāju, lai viņiem būtu gan līnijas, gan ratiņu atgriešanās. Ja ne https://www.editpadlite.com/, viņiem var noderēt.

5. darbība. Videoklipi un cita informācija par ISS un šķiņķi

Image
Image

Šķiņķa licences iegūšana Amerikas Savienotajās Valstīs:

Vai ne ASV? Katrai valstij ir savs noteikumu kopums un licences ceļveži - pārbaudiet, kas regulē jūsu saziņu (šeit ASV ir FCC Federālā sakaru komisija)

Aprēķiniet attālumu, gultni un daudz ko citu starp platuma un garuma punktiem.

To būtu bijis daudz grūtāk izdarīt, neizmantojot Open Notify ļoti noderīgās API

Kā redzēt kosmosa staciju no zemes.

AMSAT radioamatieru satelīts

AMSAT informācija par radio ISS

ARISS radioamatieris Starptautiskajā kosmosa stacijā

ISS fanu klubs - ISS frekvences

Ieraksts Vikipēdijā par APRS

APRS.org

6. darbība: pēdējās domas…

Šis bija jautrs projekts ar ļoti vienkāršu aparatūru.

Ir dažas lietas, kuras es gribētu mainīt, bet kopumā esmu ļoti apmierināts ar rezultātiem.

Lietas, kas jāmaina:

1) Izdomājiet veidu, kā pareģot prognozes vietējā, nevis UTC laikā

2) Atrodiet labākus krāsu kodu numurus oranžai un dzeltenai.

3) Atjauninājums darbam ar ESP32 X-board, ar OLED un 4 neopikseļiem.

Ja šis vai kāds no maniem projektiem jums šķiet noderīgs vai patīkams, lūdzu, atbalstiet mani.

Viss, ko es varu iegūt, pērk vairāk detaļu un veido vairāk/labākus projektus.

www.patreon.com/kd8bxp

ko-fi.com/lfmiller

Ieteicams: