Innholdsfortegnelse:
- Trinn 1: Enkel maskinvare
- Trinn 2: Skissene
- Trinn 3: Eric Sketch
- Trinn 4: PHP -koden
- Trinn 5: Videoer og mer ISS- og skinkeinformasjon
- Trinn 6: Avsluttende tanker …
Video: Enkelt ISS -varslingssystem: 6 trinn (med bilder)
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:25
Hva er den internasjonale romstasjonen og hvorfor vil du forutsi hvor den er?
For å svare på det første spørsmålet kan vi se på NASAs nettsted for et svar. Som i korte trekk er:
Den internasjonale romstasjonen er et stort romfartøy. Den går i bane rundt jorden. Det er et hjem hvor astronauter bor. Romstasjonen er også et vitenskapslaboratorium. Mange land jobbet sammen for å bygge den. De jobber også sammen for å bruke den. Romstasjonen er laget av mange stykker. Brikkene ble satt sammen i verdensrommet av astronauter. Romstasjonens bane er omtrent 220 miles over jorden. NASA bruker stasjonen til å lære om å bo og arbeide i verdensrommet. Disse leksjonene vil hjelpe NASA med å utforske verdensrommet.
www.nasa.gov/audience/forstudents/k-4/stor…
Det andre spørsmålet er litt vanskeligere å svare på - Men jeg skal prøve.
Jeg er en amatørradiooperatør (eller skinkeradiooperatør) - en ting jeg alltid har syntes var morsomt var å bruke en lavdrevet håndholdt (5 watt eller mindre) radio og kommunisere med bane rundt satellitter. ISS har radioutstyr om bord.
Tidlig i mine skinke dager bruker jeg til å kommunisere med satellittene ganske mye, til og med å få noen kontakter med bare gummi -ducky -antennen - noe veldig vanskelig å gjøre. Jeg tok noen få kontakter med ISS ved hjelp av APRS (automatisk pakkerapporteringssystem) Det var i 2013 - for lenge siden har jeg vært veldig inaktiv siden den gang. Det er noe jeg har ønsket å komme tilbake til deg.
I 2013 skrev jeg et par PHP -skript for kommandolinjen som ville fortelle meg plasseringen av ISS, og hjelpe til med å forutsi når det ville være over hodet. På den tiden brukte jeg en blinkpinne, og fikk den til å skifte farge når ISS nærmet seg. Takket være arbeidet på https://open-notify.org og hans API var det ganske enkelt å lage disse.
2018 - 5 år senere konverterte jeg endelig disse PHP til Arduino C (faktisk var det veldig enkelt å gjøre.)
Prosjektet mitt bruker en D-Duino (som egentlig er en NodeMCU med en OLED om bord), det er alt det er.
Jeg bruker fremdeles den samme API-en fra
Jeg har også skrevet noen kode for å bruke en D1 Mini og et WS2812 Shield (se min Supervisor Eric Project for mer om det).
Trinn 1: Enkel maskinvare
D-Duino (NodeMCU)
www.aliexpress.com/item/NodeMCU-CP2102-ESP…
Det er det, det er alt som kreves. Selvfølgelig kan du bruke annen maskinvare - dette bør fungere på alle ESP8266 -enheter som kan bruke en I2C OLED. D-Duino er for det meste en NodeMCU med tillegg av OLED.
Koden finner du
Du må ha ESP8266 -kortene installert i Arduino IDE. Instruksjoner finner du her:
(den enkleste måten er med styrets leder)
Du trenger også noen biblioteker - jeg tror alle disse kan bli funnet i biblioteksjefen nå (men jeg er ikke 100% sikker på det).
Nødvendige biblioteker: ArduinoJson.h
Adafruit_NeoPixel
WifiManager.h
TimeLib.h
esp8266-oled-ssd1306
(Jeg er ikke sikker på hvor jeg har TImeLib fra, og det er kanskje inkludert i Arduino IDE ??)
Den enkleste måten å installere disse på er å bruke biblioteksjefen. Hvis ikke, følg instruksjonene for hvert bibliotek.
Trinn 2: Skissene
Det er for tiden to skisser og tre PHP -skript inkludert i github -depotet.
DDuino_ISS_notification som skal brukes med D-Duino-maskinvaren ovenfra.
Og EricISSnotification som bruker min forrige "Supervisor Eric" fra showet "People of Earth" -prosjektet. (Mer om dette senere)
I begge skissene nær linje 30 (eller et sted veldig nær den) - Du ser et par flytevariabler kalt mylat og mylon. Du må endre disse to linjene med Latitude og Longitude - hvis du ikke kjenner Lat og Lon, kan du bruke dette nettstedet https://www.latlong.net Sentrum av byen din skal være bra. Det trenger ikke å samsvare med den uttrukne breddegrad eller lengdegrad. Skissene gjør noen avrundinger, og annen matematikk for å komme med en omtrentlig avstand ISS i U. S. Miles.
Jeg tror dette er det eneste som må endres i skissene.
Matematikken for avstandsberegningen er basert på storcirkelavstanden mellom to punkter, og den formelle finner du her-https://www.movable-type.co.uk/scripts/latlong.htm…
Dette nettstedet gir mye informasjon om hvordan du beregner avstand mellom to breddegrader og lengdegrader samt peiling. Vi bruker ingen bærende beregninger for dette.
For at det formelle skal fungere må vi skaffe oss en theta og konvertere en viss grad til strålende, og omvendt, stråle til grad. Siden Arduino ikke gjør matte så godt, må vi hjelpe det litt med konverteringene.
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);
miles = dist * 60 * 1.1515;
avstand = miles;
}
float deg2rad (float n) {
flyte radian = (n * 71)/4068;
retur radian;
}
float rad2deg (float n) {
flytegrad = (n*4068)/71;
returgrad;
}
Hovedtyngden av matematikk gjøres nær linje 127 - HVIS du vil ha en annen avstand (si KM eller Nautical Miles)
du kan endre "miles = dist * 60 * 1.1515;" linje.
For KM vil det være noe som "miles = (dist*60*1.1515)*1.609344;"
For Nautical Miles noe som "miles = (dist*60*1.1515)*0.8684;"
Du vil sannsynligvis også endre serieutskriftslinjen og OLED -displaylinjen som sier miles til din nye måling.
Som er linje 86 og 96 i DDuino_ISS_notification -skissen.
Trinn 3: Eric Sketch
Veileder Eric er en AI eller romvesen fra TBS TV People of Earth. Vennligst se min andre instruksjonsbok om min bygning.
Det helt grunnleggende du trenger for dette varslingssystemet, er en D1 Mini og WS2812 -skjoldet - å ha det i en fin eske med et fint objektiv får det til å se ut - bra.
Nok en gang skal enhver ESP8266 med en WS2812 piksel fungere, det er virkelig ingen magi som skjer her - WS2812 -skjoldet er koblet til D2 på D1 mini (som jeg tror er pin 4 på NodeMCU -kort, og kanskje andre ESP8266 -kort).
Til skissen:
Som ovenfor må du endre breddegrad og lengdegrad i skissen nær linje 27. Og som ovenfor beregner denne skissen også en avstand mellom til breddegrad og lengdegrad. I motsetning til skissen ovenfor, er denne eneste skjermen med WS2812 Neopixel LED.
Matematikken er nær linje 96, men ellers er den samme som ovenfor. Det er fortsatt seriell utgang hvis du vil se hva som skjer. Denne skissen gjør bare ISS plassering og avstandsberegninger - den gjør ikke passspådommene eller hvor mange mennesker som er i verdensrommet.
* Det bør bemerkes at avstanden her er i Miles, den kan endres hvis du vil, men du må gjøre noen flere endringer for enhetene dine. *
Nær linje 116:
void setColor () {
hvis (avstand = 1201) {colorDisplay (strip. Color (255, 0, 0), p);}
hvis (avstand = 1151) {colorDisplay (strip. Color (255, 153, 0), p);} // ser mer gul ut for meg
hvis (avstand = 951) {colorDisplay (strip. Color (255, 255, 0), p);} // ser grønn/gul ut for meg
if (avstand <= 950) {colorDisplay (strip. Color (0, 255, 0), p);}
hvis (avstand> = 1351) {colorDisplay (strip. Color (0, 0, 0), p);}
}
Enhetene er i miles, og hvis du trenger å bytte til KM eller NM, vil du også endre disse linjene.
Hva skjer her, på 1350 miles, er ISS bare i horisonten, og du kan bare begynne å høre transpondere fra radioen - det er ikke bra, og kommunikasjon på dette tidspunktet kan egentlig ikke skje. Lysdioden blir RØD - dette er et head up - ISS nærmer seg.
Etter kort tid, eller hvis ISS er mellom 1150 og 1200 miles, vil LED -en bli oransje - dette ser virkelig mer gult ut, men det er støtte for å være oransje. - På 1150 miles bør du begynne å høre ganske mye mer - toveiskommunikasjon vil trolig fortsatt ikke være mulig på en 5 watt HT.
Mellom 950 og 1150 miles - Lysdioden skal bli gul - du har en grei sjanse til å ta kontakt - fremdeles ikke bra, men det er i det minste mulig på dette tidspunktet (gult ser mer grønt ut for meg enn gult - så noe annet å jobbe med på)
Under 950 miles vil lysdioden være en solid GRØNN - og toveiskontakter kan opprettes.
Når ISS beveger seg bort fra lysdioden, går den fra grønt til gult til oransje til rødt og deretter til slutt til AV.
Det skal bemerkes her, alt dette skjer veldig raskt - de fleste pasninger i mitt område varer under 10 minutter, og normal brukbar kontakttid er under 5 minutter.
Det bør også bemerkes at ISS kan endre posisjonen, og at API -en kanskje eller ikke kan oppdateres - så selv om du har grønt lys - hører du kanskje ikke noe.
** Å kjøre amatørutstyret gjøres også valgfritt og frivillig, og mens de prøver å kjøre utstyret, er det tid når de må slå det av for strøm, eller på grunn av det de må gjøre. Det er alltid en god idé å sjekke AMsat eller ARISS nettsteder **
Trinn 4: PHP -koden
I github -depotet har jeg inkludert PHP -koden min fra 2013.
Koden ble designet for å kjøre fra CLI (eller kommandolinjen). Det er en stund siden jeg skrev disse, men jeg tror det eneste kravet var å ha JSON -utvidelser aktivert.
Skriptene fungerer fortsatt, og hvis du vil kjøre dem, kan du gjerne gjøre det!
For Windows -brukere er det informasjon om hvordan du installerer PHP
Sørg for å installere CLI -versjonen. Jeg tror at når du installerer kan du velge hvilke utvidelser du vil slå på.
Linux -brukere er avhengige av distroen din - jeg bruker en Ubuntu -basert distro - og synaptisk som min pakkeleder.
Du vil ha php7.0-common, php7.0-json, php7.0-cli, php7.0-curl
Jeg tror ikke jeg brukte CURL med disse, så du trenger kanskje ikke den. Resten bør finnes i valgfri pakkeadresser eller på nettstedet
To av skriptene må redigeres med breddegrad og lengdegrad - de er ikke veldig lange, og det som må endres er øverst i manuset. De er iss-location.php og iss-pass-api.php
iss -location.php har mine gamle blinkende anrop igjen i den - jeg er ikke sikker på at de fungerer lenger - men du kan se at jeg byttet LED på omtrent samme måte som jeg gjorde med min "Eric Notification". Jeg tror ikke de forårsaker problemer, men det kan være lurt å kommentere dem.
iss-pass-api.php bruker epoketiden og gir en lokal tid for de forutsagte passeringene. Ærlig talt foretrekker jeg PHP -versjonen av dette skriptet sammenlignet med DDuino -versjonen (som akkurat nå bare gjør UTC -spådommer)
PHP -versjonen er også formidert bedre for visning - men det er virkelig en liten ting.
Det siste PHP -skriptet er iss -people.php - og det vil vise navnene og hvilket romfartøy de befinner seg på. Det er alt det gjør. (Og denne informasjonen endres ikke ofte)
Grunnleggende om å kjøre et PHP -skript fra kommandolinjen er:
$ php iss-people.php
PHP -filer er tekstfiler, og kan åpnes av hvilken som helst tekstredigerer. Windows -brukere Jeg tror at jeg lagret disse slik at de har både linje- og vognretur. HVIS ikke https://www.editpadlite.com/ kan fungere for dem.
Trinn 5: Videoer og mer ISS- og skinkeinformasjon
Få skinkelisens i USA:
Ikke i USA? Hvert land har sine egne regler og lisensguider - sjekk hvem som styrer kommunikasjonen din (her i USA er det FCC Federal Communications Commision)
Beregn avstand, peiling og mer mellom breddegrad og lengdegrad.
Dette ville vært mye vanskeligere å gjøre uten de veldig nyttige API -ene fra Open Notify
Hvordan se romstasjonen fra bakken.
AMSAT radioamatør -satellitt
AMSAT Informasjon om radio på ISS
ARISS Amatørradio på den internasjonale romstasjonen
ISS fanklubb - ISS frekvenser
Wikipedia -oppføring om APRS
APRS.org
Trinn 6: Avsluttende tanker …
Dette var et morsomt prosjekt, med veldig enkel maskinvare.
Det er et par ting jeg vil endre, men totalt sett er jeg veldig fornøyd med resultatene.
Ting som må endres:
1) Finn ut en måte å ha passspådommer på lokal tid, ikke UTC
2) Finn bedre fargekodetall for oransje og gult.
3) Oppdater for å fungere med ESP32 X-kortet, med OLED og 4 Neopixels.
Hvis du synes dette eller noen av prosjektene mine er nyttige eller hyggelige, vennligst støtt meg.
Alt jeg får går til å kjøpe flere deler og lage flere/bedre prosjekter.
www.patreon.com/kd8bxp
ko-fi.com/lfmiller
Anbefalt:
DIY Enkelt hodetelefonstativ med subtil belysning: 19 trinn (med bilder)
DIY Enkelt hodetelefonstativ med subtil belysning: I denne instruksen skal jeg vise deg hvordan du lager et enkelt og kompakt hodetelefonstativ med subtil belysning på baksiden, ved hjelp av rimelige materialer og grunnleggende verktøy. Klemmer Loddejern
COVID-19 Dashboard (enkelt og enkelt): 4 trinn
COVID-19 Dashboard (enkelt og enkelt): Overalt er det et stort utbrudd av det nye COVID-19-viruset. Det ble nødvendig å holde øye med det nåværende scenariet med COVID-19 i landet. Så, hjemme, var dette prosjektet jeg tenkte på: " An Information Dashboard " - En dag
Enkelt og enkelt bærbart stativ for fanget: 4 trinn
Enkelt og enkelt bærbart stativ for fanget: Jeg så meg rundt i en rekke butikker etter et bærbart stativ som får luftstrøm til den bærbare datamaskinen, men en der jeg faktisk kunne bruke den på fanget. Fant ikke noe som var det jeg ønsket, så jeg bestemte meg for å lage mitt eget
Kamera for Time Lapse -bilder enkelt: 22 trinn (med bilder)
Camera for Time Lapse Pictures Made Easy .: Jeg sjekket ut en av de andre instruksjonene om å lage time -lapse -filmer. Han dekket ganske godt filmdelen. Han fortalte om gratis programvare som du kan laste ned for å lage filmene. Jeg sa til meg selv, jeg tror at jeg får se om jeg kan
Hvordan pikselere bilder - enkelt: 3 trinn (med bilder)
Hvordan pikselere bilder - enkelt: Denne raske er en teknikk for bruk av pikselsensur for å bevare anonymitet, verdighet osv. På digitale bilder. Du trenger bare en enkel bildeditor som MS Paint, jeg bruker MS Paint. For et alternativ, se denne Instruerbar