Innehållsförteckning:

Enkelt ISS -meddelandesystem: 6 steg (med bilder)
Enkelt ISS -meddelandesystem: 6 steg (med bilder)

Video: Enkelt ISS -meddelandesystem: 6 steg (med bilder)

Video: Enkelt ISS -meddelandesystem: 6 steg (med bilder)
Video: HOW TO DRAW A CUTE ICE CREAM, THINGS TO DRAW 2024, November
Anonim
Enkelt ISS -meddelandesystem
Enkelt ISS -meddelandesystem
Enkelt ISS -meddelandesystem
Enkelt ISS -meddelandesystem

Vad är den internationella rymdstationen och varför vill du förutsäga var den är?

För att svara på den första frågan kan vi titta på NASA: s webbplats för ett svar. Vilket i korthet är:

Den internationella rymdstationen är en stor rymdfarkost. Den kretsar runt jorden. Det är ett hem där astronauter bor. Rymdstationen är också ett vetenskapslaboratorium. Många länder arbetade tillsammans för att bygga det. De arbetar också tillsammans för att använda den. Rymdstationen är gjord av många bitar. Bitarna sattes ihop i rymden av astronauter. Rymdstationens bana är cirka 220 miles över jorden. NASA använder stationen för att lära sig om att bo och arbeta i rymden. Dessa lektioner hjälper NASA att utforska rymden.

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

Den andra frågan är lite svårare att svara på - Men jag ska försöka.

Jag är en amatörradiooperatör (eller skinkradiooperatör) - en sak som jag alltid har tyckt var kul var att använda en lågdriven handhållen (5 watt eller mindre) radio och kommunicera med kretsande satelliter. ISS har radioutrustning ombord.

Tidigt i mina skinkdagar brukar jag kommunicera med satelliterna ganska mycket, till och med få kontakter med bara gummiknäckantennen - något mycket svårt att göra. Jag tog några kontakter med ISS med hjälp av APRS (system för automatisk paketrapportering) Det var 2013 - för länge sedan har jag varit väldigt inaktiv sedan dess. Det är något jag har velat få tillbaka till dig.

2013 skrev jag ett par PHP -skript för kommandoraden som skulle berätta för mig var ISS är och hjälpa till att förutsäga när det skulle vara över huvudet. Vid den tiden använde jag en blinkpinne och fick den att ändra färg när ISS närmade sig. Tack vare arbetet på https://open-notify.org och hans API var det ganska enkelt att göra dessa.

2018 - 5 år senare konverterade jag äntligen dessa PHP till Arduino C (det var faktiskt väldigt enkelt att göra.)

Mitt projekt använder en D-Duino (som verkligen är en NodeMCU med en OLED ombord), det är allt som behövs.

Jag använder fortfarande samma API från

Jag har också skrivit en kod för att använda en D1 Mini och ett WS2812 -sköld (se mitt handledare Eric -projekt för mer om det).

Steg 1: Enkel hårdvara

Enkel hårdvara
Enkel hårdvara

D-Duino (NodeMCU)

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

Det är det, det är allt som krävs. Naturligtvis kan du använda annan hårdvara - detta bör fungera på alla ESP8266 -enheter som kan använda en I2C OLED. D-Duino är för det mesta en NodeMCU med tillägg av OLED.

Koden finns

Du måste ha ESP8266 -kort installerade i Arduino IDE. Instruktioner finns här:

(det enklaste sättet är med styrelsechefen)

Du kommer också att behöva några bibliotek - jag tror att alla dessa kan hittas i bibliotekschefen nu (men jag är inte 100% säker på det).

Behövs bibliotek: ArduinoJson.h

Adafruit_NeoPixel

WifiManager.h

TimeLib.h

esp8266-oled-ssd1306

(Jag är inte säker på var jag fick TImeLib ifrån, och det kanske ingår i Arduino IDE ??)

Det enklaste sättet att installera dessa är att använda bibliotekshanteraren. Om inte, följ instruktionerna för varje bibliotek.

Steg 2: Skisserna

Skisserna
Skisserna

Det finns för närvarande två skisser och tre PHP -skript som ingår i github -förvaret.

DDuino_ISS_notification som ska användas med D-Duino-hårdvaran ovanifrån.

Och EricISSnotification som använder min tidigare "Supervisor Eric" från programmet "People of Earth". (Mer om detta senare)

I båda skisserna nära rad 30 (eller någonstans riktigt nära den) - Du ser ett par flottörvariabler som heter mylat och mylon. Du kommer att behöva ändra dessa två rader med din latitud och longitud - om du inte kan din Lat och Lon kan du använda den här webbplatsen https://www.latlong.net Mitten av din stad ska vara bra. Det behöver inte matcha din utsatta latitud eller longitud. Skisserna gör en del avrundningar och annan matematik för att komma fram till ett ungefärligt avstånd från ISS i U. S. Miles.

Jag tror att detta är det enda som behöver ändras i skisserna.

Matematiken för avståndsberäkningen är baserad på storcirkelavståndet mellan två punkter, och formeln hittar du här-https://www.movable-type.co.uk/scripts/latlong.htm…

Denna webbplats ger mycket information om hur man beräknar avståndet mellan två breddgrader och längdgrader samt bäring. Vi använder inga bärberäkningar för detta.

För att det formella ska fungera behöver vi skaffa en theta och omvandla en viss grad till strålande, och tvärtom, strålande till grad. Eftersom Arduino inte gör matte så bra måste vi hjälpa till lite med omvandlingarna.

void getDistance () {

flyta 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;

avstånd = miles;

}

float deg2rad (float n) {

flottörradian = (n * 71)/4068;

returradian;

}

float rad2deg (float n) {

flytgrad = (n*4068)/71;

avkastningsgrad;

}

Huvuddelen av matematiken görs nära linje 127 - OM du vill ha ett annat avstånd (säg KM eller Nautical Miles)

du kan ändra "miles = dist * 60 * 1.1515;" linje.

För KM skulle det vara ungefär "miles = (dist*60*1.1515)*1.609344;"

För Nautical Miles något som "miles = (dist*60*1.1515)*0.8684;"

Du kommer förmodligen också att vilja ändra seriell utskriftslinje och OLED -displaylinje som säger miles till din nya mätning.

Vilket är rad 86 och 96 i skissen DDuino_ISS_notification.

Steg 3: Eric Sketch

Eric Sketch
Eric Sketch
Eric Sketch
Eric Sketch
Eric Sketch
Eric Sketch

Handledare Eric är en AI eller utomjording från TBS TV People of Earth, se min andra instruerbara på min byggnad.

Det grundläggande du behöver för det här meddelandesystemet är en D1 Mini och WS2812 -skölden - att ha den i en snygg låda med ett snyggt objektiv får det att se ut - bra snyggt.

Återigen borde alla ESP8266 med en WS2812 -pixel fungera, det är verkligen ingen magi på gång här - WS2812 -skölden är ansluten till D2 på D1 mini (som jag tror är stift 4 på NodeMCU -kort och kanske andra ESP8266 -kort).

Till skissen:

Som ovan måste du ändra din latitud och longitud i skissen nära linje 27. Och som ovan beräknar denna skiss också ett avstånd mellan till latitud och longitud. Till skillnad från ovanstående skiss är denna enda display med WS2812 Neopixel LED.

Matematiken ligger nära linje 96, men är annars densamma som ovan. Det finns fortfarande seriell utmatning om du vill se vad som händer. Denna skiss gör bara ISS plats- och avståndsberäkningar - den gör inte passförutsägelserna eller hur många människor som finns i rymden.

* Det bör noteras att avståndet här är i Miles, det kan ändras om du vill, men du måste göra några fler ändringar för dina enheter. *

Nära linje 116:

void setColor () {

if (distans = 1201) {colorDisplay (strip. Color (255, 0, 0), p);}

if (distans = 1151) {colorDisplay (strip. Color (255, 153, 0), p);} // ser mer gul ut för mig

if (avstånd = 951) {colorDisplay (strip. Color (255, 255, 0), p);} // ser grön/gul ut för mig

if (avstånd <= 950) {colorDisplay (strip. Color (0, 255, 0), p);}

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

}

Enheterna är i miles, och om du behöver byta till KM eller NM vill du också ändra dessa rader.

Vad händer här du, vid 1350 mil är ISS precis vid horisonten och du kan bara börja höra transpondrarna från radion - det är inte bra, och kommunikation vid denna tidpunkt kan inte riktigt hända. Lysdioden blir RÖD - det här är en topp - ISS närmar sig.

Efter en kort tid, eller om ISS är mellan 1150 och 1200 miles, blir lysdioden orange - det här ser verkligen mer gult ut men det är stöd för att vara orange. - Vid 1150 mil bör du börja höra lite mer - tvåvägskommunikation kommer troligen fortfarande inte att vara möjlig på en 5 watt HT.

Mellan 950 och 1150 miles - Lysdioden ska bli gul - du har en bra chans att ta kontakt - fortfarande inte bra, men det är åtminstone möjligt vid denna tidpunkt (gult ser mer grönt ut för mig än gult - så något annat att fungera på)

Under 950 mil kommer lysdioden att vara en solid GRÖN - och tvåvägskontakter kan skapas.

När ISS rör sig bort från lysdioden kommer att gå från grönt till gult till orange till rött och sedan slutligen till AV.

Det bör noteras här, allt händer mycket snabbt - de flesta passeringar i mitt område varar under 10 minuter och normal användbar kontakttid är under 5 minuter.

Det bör också noteras att ISS kan ändra sin plats och att API: et kanske uppdateras eller inte - så även om du har ett grönt ljus - kanske du inte hör något.

** Att köra amatörutrustningen görs också frivilligt och frivilligt, och medan de försöker köra utrustningen finns det tid när de måste stänga av den för ström eller på grund av vad de behöver göra. Det är alltid en bra idé att kolla AMsat eller ARISS webbplatser **

Steg 4: PHP -koden

PHP -koden
PHP -koden

I github -förvaret har jag inkluderat min PHP -kod från 2013.

Koden utformades för att köras från CLI (eller kommandoraden). Det var ett tag sedan jag skrev dessa men jag tror att det enda kravet var att ha JSON -tillägg aktiverade.

Skripten fungerar fortfarande, och om du vill köra dem får du gärna göra det!

För Windows -användare finns information här om installation av PHP

Var noga med att installera CLI -versionen. Jag tror att när du installerar kan du välja vilka tillägg som ska aktiveras.

Linux -användare är beroende av din distro - jag använder en Ubuntu -baserad distro - och synaptisk som min pakethanterare.

Du vill ha php7.0-common, php7.0-json, php7.0-cli, php7.0-curl

Jag tror inte att jag använde CURL med dessa, så du kanske inte behöver den. Resten bör finnas i din valda paketkryssare eller på https://php.net webbplats.

Två av skripten måste redigeras med din latitud och longitud - de är inte särskilt långa och det som behöver ändras ligger högst upp i manuset. De är iss-location.php och iss-pass-api.php

iss -location.php har mina gamla blinkningssamtal kvar i den - jag är inte säker på att de fungerar längre - men du kan se att jag bytte LED på ungefär samma sätt som jag gör med min "Eric Notification". Jag tror inte att de orsakar några problem, men du kanske vill kommentera dem.

iss-pass-api.php använder epoktiden och ger en lokal tid för de förutsagda passeringarna. Ärligt talat föredrar jag PHP -versionen av detta skript jämfört med DDuino -versionen (som just nu bara gör UTC -förutsägelser)

PHP -versionen är också snyggare för visning - men det är verkligen en mindre sak.

Det sista PHP -skriptet är iss -people.php - och det kommer att visa namnen och vilken rymdfarkost de är på. Det är allt det gör. (Och denna information ändras inte ofta)

Grunderna för att köra ett PHP -skript från kommandoraden är:

$ php iss-people.php

PHP -filer är textfiler och kan öppnas av valfri textredigerare. Windows -användare Jag tror att jag sparade dessa så att de har både rad- och vagnreturer. OM inte https://www.editpadlite.com/ kan fungera för dem.

Steg 5: Videor och mer ISS- och skinkinformation

Image
Image

Skaffa skinklicens i USA:

Inte i USA? Varje land har sina egna regler och licensguider - kolla med vem som styr din kommunikation (här i USA är det FCC Federal Communications Commision)

Beräkna avstånd, bäring med mera mellan latitud- och longitudpunkter.

Detta skulle ha varit mycket svårare att göra utan de mycket användbara API: erna från Open Notify

Hur man ser rymdstationen från marken.

AMSAT radioamatörsatellit

AMSAT Information om radio på ISS

ARISS Amatörradio på den internationella rymdstationen

ISS fanklubb - ISS frekvenser

Wikipedia Entry på APRS

APRS.org

Steg 6: Slutliga tankar …

Detta var ett roligt projekt, med mycket enkel hårdvara.

Det finns ett par saker jag skulle vilja ändra, men överlag är jag mycket nöjd med resultatet.

Saker som behöver ändras:

1) Ta reda på ett sätt att få passförutsägelser på lokal tid, inte UTC

2) Hitta bättre färgkodnummer för orange och gult.

3) Uppdatering för att fungera med ESP32 X-board, med OLED och 4 Neopixels.

Om du tycker att detta eller något av mina projekt är användbart eller roligt, vänligen stöd mig.

Allt jag får går till att köpa fler delar och göra fler/bättre projekt.

www.patreon.com/kd8bxp

ko-fi.com/lfmiller

Rekommenderad: