Innholdsfortegnelse:

Enkelt ISS -varslingssystem: 6 trinn (med bilder)
Enkelt ISS -varslingssystem: 6 trinn (med bilder)

Video: Enkelt ISS -varslingssystem: 6 trinn (med bilder)

Video: Enkelt ISS -varslingssystem: 6 trinn (med bilder)
Video: Узнав это СЕКРЕТ, ты никогда не выбросишь пластиковую бутылку! ТАКОГО ЕЩЕ НИКТО НЕ ВИДЕЛ! 2024, November
Anonim
Enkelt ISS -varslingssystem
Enkelt ISS -varslingssystem
Enkelt ISS -varslingssystem
Enkelt ISS -varslingssystem

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

Enkel maskinvare
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

Skissene
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

Eric Sketch
Eric Sketch
Eric Sketch
Eric Sketch
Eric Sketch
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

PHP -koden
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

Image
Image

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: