INHOUDSOPGAWE:
2025 Outeur: John Day | [email protected]. Laas verander: 2025-01-13 06:56
Wat is die Internasionale Ruimtestasie en waarom wil u voorspel waar dit is?
Om die eerste vraag te beantwoord, kan ons op die NASA -webwerf kyk vir 'n antwoord. Wat in kort is:
Die Internasionale Ruimtestasie is 'n groot ruimtetuig. Dit wentel om die aarde. Dit is 'n huis waar ruimtevaarders woon. Die ruimtestasie is ook 'n wetenskaplike laboratorium. Baie lande het saamgewerk om dit te bou. Hulle werk ook saam om dit te gebruik. Die ruimtestasie bestaan uit baie stukke. Die stukke is deur ruimtevaarders in die ruimte saamgevoeg. Die wentelbaan van die ruimtestasie is ongeveer 220 kilometer bo die aarde. NASA gebruik die stasie om te leer oor leef en werk in die ruimte. Hierdie lesse sal NASA help om die ruimte te verken.
www.nasa.gov/audience/forstudents/k-4/stor…
Die tweede vraag is 'n bietjie moeiliker om te beantwoord - maar ek sal probeer.
Ek is 'n amateurradio -operateur (of hamradiooperateur) - een ding wat ek altyd aangenaam gevind het, was om 'n handvrye (5 watt of minder) radio te gebruik en te kommunikeer met wentelende satelliete. Die ISS het radiotoerusting aan boord.
Vroeg in my dae het ek gereeld met die satelliete gekommunikeer, selfs al het ek net kontak gemaak met die rubber -eend -antenna - iets wat baie moeilik is om te doen. Ek het 'n paar kontakte met die ISS gemaak met behulp van APRS (outomatiese pakketverslaggewingstelsel) Dit was in 2013 - ek was sedertdien baie onaktief. Dit is iets wat ek weer in jou wou terugbring.
In 2013 het ek 'n paar PHP -skrifte vir die opdragreël geskryf wat my die ligging van die ISS sou vertel, en kon help om te voorspel wanneer dit oor die kop sou kom. Op daardie tydstip het ek 'n knippie gebruik, en dit het van kleur verander toe die ISS nader kom. Danksy die werk by https://open-notify.org en sy API, was dit redelik maklik om dit te maak.
2018 - 5 jaar later het ek hierdie PHP uiteindelik verander na Arduino C (eintlik was dit baie maklik om te doen.)
My projek gebruik 'n D-Duino (wat regtig 'n NodeMCU is met 'n OLED aan boord), dit is alles wat daar is.
Ek gebruik steeds dieselfde API van
Ek het ook 'n kode geskryf om 'n D1 Mini en 'n WS2812 Shield te gebruik (raadpleeg my Supervisor Eric Project hieroor).
Stap 1: Eenvoudige hardeware
D-Duino (NodeMCU)
www.aliexpress.com/item/NodeMCU-CP2102-ESP…
Dit is dit, dit is al wat nodig is. U kan natuurlik ander hardeware gebruik - dit behoort te werk op enige ESP8266 -toestel wat 'n I2C OLED kan gebruik. Die D-Duino is meestal 'n NodeMCU met die toevoeging van die OLED.
Die kode kan gevind word
U moet die ESP8266 -borde in die Arduino IDE laat installeer. Instruksies kan hier gevind word:
(die maklikste manier is met die bestuurder)
U het ook 'n paar biblioteke nodig - ek dink al hierdie kan nou in die biblioteekbestuurder gevind word (maar ek is nie 100% seker daaroor nie).
Noodsaaklike biblioteke: ArduinoJson.h
Adafruit_NeoPixel
WifiManager.h
TimeLib.h
esp8266-oled-ssd1306
(Ek is nie seker waar ek TImeLib vandaan kom nie, en dit is moontlik ingesluit by Arduino IDE ??)
Die eenvoudigste manier om dit te installeer, is deur die biblioteekbestuurder te gebruik. Indien nie, volg die instruksies by elke biblioteek.
Stap 2: Die sketse
Daar is tans twee sketse en drie PHP -skrifte in die github -bewaarplek.
DDuino_ISS_notification wat van bo met die D-Duino-hardeware gebruik moet word.
En EricISSnotification wat gebruik maak van my vorige "Supervisor Eric" uit die program "People of Earth". (Meer hieroor later)
In albei sketse naby reël 30 (of êrens baie naby daaraan) - U sal 'n paar dryfveranderlikes sien wat mylat en mylon genoem word. U sal hierdie twee reëls met u breedtegraad en lengtegraad moet verander - as u nie u Lat en Lon ken nie, kan u hierdie webwerf gebruik https://www.latlong.net Die middelpunt van u stad behoort goed te wees. Dit hoef nie by u uitgebreide breedtegraad of lengte te pas nie. Die sketse maak 'n paar afrondings en ander wiskunde om 'n geskatte afstand van die ISS in U. S. Miles te kry.
Ek glo dat dit die enigste ding is wat in die sketse verander moet word.
Die wiskunde vir die berekening van die afstand is gebaseer op die afstand tussen die groot sirkels tussen twee punte, en die formele kan hier gevind word-https://www.movable-type.co.uk/scripts/latlong.htm…
Hierdie webwerf bied baie inligting oor hoe om die afstand tussen twee breedtegrade en lengtegrade sowel as peiling te bereken. Hiervoor gebruik ons geen berekenings nie.
Vir die formele om te werk, moet ons 'n theta kry en 'n mate omskakel in stralend, en andersom, stralend tot graad. Aangesien die Arduino nie so goed wiskunde doen nie, moet ons dit 'n bietjie help met die omskakelings.
void getDistance () {
float theta, dist, miles;
theta = mylon - isslon;
dist = sin (deg2rad (mylat)) * sin (deg2rad (isslat)) + cos (deg2rad (mylat)) * cos (deg2rad (islat)) * cos (deg2rad (theta));
dist = acos (dist); dist = rad2deg (dist);
myl = dist * 60 * 1.1515;
afstand = myl;
}
float deg2rad (float n) {
float radian = (n * 71)/4068;
terugkeer radiaal;
}
float rad2deg (float n) {
vlotgraad = (n*4068)/71;
terugkeer graad;
}
Die grootste deel van die wiskunde word naby lyn 127 gedoen - as u 'n ander afstand wil hê (sê KM of Nautical Miles)
jy kan die "myl = dist * 60 * 1.1515;" lyn.
Vir KM sou dit iets wees soos "myl = (dist*60*1.1515)*1.609344;"
Vir Nautical Miles iets soos "miles = (dist*60*1.1515)*0.8684;"
U sal waarskynlik ook die reeksafdruklyn en die OLED -skermlyn wil verander wat myle na u nuwe meting sê.
Dit is reël 86 en 96 in die DDuino_ISS_notification -skets.
Stap 3: Die Eric Sketch
Toesighouer Eric is 'n AI of vreemdeling van die TBS TV People of Earth, sien my ander instruksies oor my gebou.
Die belangrikste ding wat u nodig het vir hierdie kennisgewingstelsel, is 'n D1 Mini en die WS2812 -skild - dit het 'n mooi boks met 'n mooi lens, en dit lyk baie goed.
Weereens, enige ESP8266 met 'n WS2812 -pixel behoort te werk; daar is regtig geen magie aan die gang nie - Die WS2812 -skild is gekoppel aan D2 op die D1 mini (wat ek glo pin 4 op NodeMCU -borde is, en miskien ander ESP8266 -borde).
Aan die skets:
Soos hierbo, moet u u lengte- en breedtegraad verander in die skets naby lyn 27. En soos hierbo, bereken hierdie skets ook 'n afstand tussen breedtegraad en lengtegrade. In teenstelling met die skets hierbo, is hierdie enigste skerm met die WS2812 Neopixel LED.
Die wiskunde is naby lyn 96, maar andersins is dit dieselfde as hierbo. Daar is nog steeds seriële uitsette as u wil sien wat aan die gang is. Hierdie skets doen slegs ISS -ligging- en afstandberekeninge - dit doen nie die slaagvoorspellings of hoeveel mense in die ruimte is nie.
* Daar moet op gelet word dat die afstand hier in Miles is, dit kan verander word as u wil, maar u moet nog 'n paar veranderinge vir u eenhede aanbring. *
Naby lyn 116:
void setColor () {
as (afstand = 1201) {colorDisplay (strip. Color (255, 0, 0), p);}
as (afstand = 1151) {colorDisplay (strip. Color (255, 153, 0), p);} // lyk vir my meer geel
as (afstand = 951) {colorDisplay (strip. Color (255, 255, 0), p);} // lyk vir my groen/geel
if (afstand <= 950) {colorDisplay (strip. Color (0, 255, 0), p);}
if (afstand> = 1351) {colorDisplay (strip. Color (0, 0, 0), p);}
}
Die eenhede is in myl, en as u na KM of NM moet verander, wil u ook hierdie lyne verander.
Wat is hier aan die gang, op 1350 myl, is die ISS net op die horison en kan u net die transponders van die radio begin hoor - dit is nie wonderlik nie, en kommunikasie op hierdie stadium kan nie regtig gebeur nie. Die LED word ROOI - dit is 'n goeie idee - die ISS kom naby.
Na 'n kort tydjie, of as die ISS tussen 1150 en 1200 myl is, word die LED oranje - dit lyk regtig meer geel, maar dit is oranje. - Op 1150 myl moet u nog baie meer hoor - tweerigtingkommunikasie is waarskynlik steeds nie moontlik op 'n 5 watt HT nie.
Tussen 950 en 1150 myl - Die LED moet geel word - u het 'n goeie kans om kontak te maak - nog steeds nie goed nie, maar dit is ten minste moontlik op hierdie stadium (geel lyk vir my meer groen as geel - so iets anders moet werk op)
Onder 950 myl sal die LED 'n soliede GROEN wees - en twee -rigting -kontak kan gemaak word.
Namate die ISS wegbeweeg, gaan die LED van groen na geel na oranje na rooi en dan uiteindelik na OFF.
Dit moet hier opgemerk word: dit gebeur alles baie vinnig - die meeste passe in my omgewing duur minder as 10 minute, en die normale bruikbare kontaktyd is minder as 5 minute.
Daar moet ook op gelet word dat die ISS die ligging daarvan kan verander en dat die API al dan nie bygewerk kan word - selfs al het u 'n groen lig, hoor u miskien niks.
** Die bestuur van die amateur -toerusting word ook opsioneel en vrywillig gedoen, en terwyl hulle probeer om die toerusting te laat werk, is daar tyd dat hulle dit moet afskakel vir krag, of as gevolg van wat hulle moet doen. Dit is altyd 'n goeie idee om AMsat- of ARISS -webwerwe na te gaan **
Stap 4: Die PHP -kode
In die github -bewaarplek het ek my PHP -kode van 2013 ingesluit.
Die kode is ontwerp om vanaf die CLI (of Command line) te werk. Dit is 'n rukkie sedert ek dit geskryf het, maar ek dink die enigste vereiste was om die JSON -uitbreidings te aktiveer.
Die skrifte werk nog steeds, en as u dit wil bestuur, kan u dit gerus doen!
Vir Windows -gebruikers is hier inligting oor die installering van PHP
Maak seker dat u die CLI -weergawe installeer. Ek dink dat u, terwyl u installeer, kan kies watter uitbreidings u wil aanskakel.
Linux -gebruikers is afhanklik van u distro - ek gebruik 'n Ubuntu -gebaseerde distro - en sinapties as my pakketbestuurder.
U wil php7.0-common, php7.0-json, php7.0-cli, php7.0-curl hê
Ek dink nie ek het CURL hiermee gebruik nie, dus u het die een dalk nie nodig nie. Die res moet gevind word in u gekose pakkie of op die https://php.net -webwerf.
Twee van die skrifte moet met u breedtegraad en lengtegraad bewerk word - dit is nie baie lank nie, en wat u moet verander, is bo -aan die skrif. Dit is iss-location.php en iss-pass-api.php
iss -location.php het my ou knippie -oproepe oor - ek is nie seker of dit meer werk nie - maar u kan sien dat ek die LED op dieselfde manier verander het as met my "Eric Notification". Ek dink nie dit veroorsaak probleme nie, maar u kan dit opmerk.
iss-pass-api.php gebruik die tydperk en gee 'n plaaslike tyd van die voorspelde passe. Eerlik gesê, ek verkies die PHP -weergawe van hierdie skrif in vergelyking met die DDuino -weergawe (wat tans net UTC -voorspellings doen)
Die PHP -weergawe is ook mooier om te vertoon - maar dit is regtig 'n klein ding.
Die laaste PHP -script is iss -people.php - en dit sal die name en op watter ruimtetuie hulle vertoon. Dit is al wat dit doen. (En hierdie inligting verander nie gereeld nie)
Die basiese beginsels van die uitvoering van 'n PHP -script vanaf die opdragreël is:
$ php iss-people.php
PHP -lêers is tekslêers en kan deur enige teksredakteur oopgemaak word. Windows -gebruikers, ek dink ek het dit gestoor, sodat hulle sowel lyn- as koetsopgawes het. As dit nie die geval is nie, kan https://www.editpadlite.com/ vir hulle werk.
Stap 5: Die video's en meer inligting oor ISS en ham
Kry 'n hamlisensie in die Verenigde State:
Nie in die VSA nie? Elke land het sy eie stel reëls en lisensiegidse - kyk wie u kommunikasie beheer (hier in die VSA is dit die FCC Federal Communications Commision)
Bereken afstand, peiling en meer tussen breedtegraad en lengtegraad.
Dit sou baie moeiliker gewees het om te maak sonder die baie nuttige API's van Open Notify
Hoe om die ruimtestasie van die grond af te sien?
AMSAT Radio Amateur Satelliet
AMSAT -inligting oor radio op die ISS
ARISS Amateurradio op die Internasionale Ruimtestasie
ISS -fanklub - ISS -frekwensies
Wikipedia -inskrywing op APRS
APRS.org
Stap 6: Laaste gedagtes …
Dit was 'n prettige projek, met baie eenvoudige hardeware.
Daar is 'n paar dinge wat ek wil verander, maar oor die algemeen is ek baie tevrede met die resultate.
Dinge wat verander moet word:
1) Bepaal 'n manier om slaagvoorspellings in plaaslike tyd te hê, nie UTC nie
2) Vind beter kleurkode nommers vir oranje en geel.
3) Werk op om te werk met die ESP32 X-board, met OLED en 4 Neopixels.
Ondersteun my as u hierdie of een van my projekte nuttig of aangenaam vind.
Alles wat ek kry, gaan om meer onderdele te koop en meer/beter projekte te maak.
www.patreon.com/kd8bxp
ko-fi.com/lfmiller