Indholdsfortegnelse:

Simple ISS Notification System: 6 trin (med billeder)
Simple ISS Notification System: 6 trin (med billeder)

Video: Simple ISS Notification System: 6 trin (med billeder)

Video: Simple ISS Notification System: 6 trin (med billeder)
Video: I work at the Private Museum for the Rich and Famous. Horror stories. Horror. 2024, November
Anonim
Simpelt ISS -notifikationssystem
Simpelt ISS -notifikationssystem
Simpelt ISS -notifikationssystem
Simpelt ISS -notifikationssystem

Hvad er den internationale rumstation, og hvorfor vil du forudsige, hvor den er?

For at besvare det første spørgsmål kan vi se på NASAs websted for at få et svar. Hvilket i korte træk er:

Den internationale rumstation er et stort rumfartøj. Den kredser rundt om Jorden. Det er et hjem, hvor astronauter bor. Rumstationen er også et videnskabslaboratorium. Mange lande arbejdede sammen om at bygge det. De arbejder også sammen om at bruge den. Rumstationen er lavet af mange stykker. Brikkerne blev sat sammen i rummet af astronauter. Rumstationens kredsløb er omkring 220 miles over Jorden. NASA bruger stationen til at lære om at leve og arbejde i rummet. Disse lektioner hjælper NASA med at udforske rummet.

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

Det andet spørgsmål er lidt sværere at besvare - Men jeg prøver.

Jeg er en amatørradiooperatør (eller skinkeradiooperatør) - en ting, jeg altid har fundet sjovt, var at bruge en lavdrevet håndholdt radio (5 watt eller mindre) og kommunikere med kredsløbssatellitter. ISS har radioudstyr om bord.

Tidligt i mine skinke -dage plejer jeg at kommunikere med satellitterne en hel del, selv ved at få nogle kontakter med bare gummi -antennen - noget meget svært at gøre. Jeg lavede et par kontakter med ISS ved hjælp af APRS (automatisk pakkerapporteringssystem) Det var i 2013 - for længe siden har jeg været meget inaktiv siden da. Det er noget, jeg har villet komme tilbage til dig.

I 2013 skrev jeg et par PHP -scripts til kommandolinjen, der ville fortælle mig placeringen af ISS og hjælpe med at forudsige, hvornår det ville være over hovedet. På det tidspunkt brugte jeg et blink, og fik det til at ændre farver, da ISS nærmede sig. Takket være arbejdet på https://open-notify.org og hans API var det ret let at lave disse.

2018 - 5 år senere konverterede jeg endelig disse PHP til Arduino C (faktisk var det meget let at gøre.)

Mit projekt bruger en D-Duino (som virkelig er en NodeMCU med en OLED om bord), det er alt, hvad der er til det.

Jeg bruger stadig den samme API fra

Jeg har også skrevet en kode til at bruge en D1 Mini og et WS2812 Shield (se mit Supervisor Eric Project for mere om det).

Trin 1: Enkel hardware

Enkel hardware
Enkel hardware

D-Duino (NodeMCU)

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

Det er det, det er alt, hvad der kræves. Selvfølgelig kan du bruge anden hardware - dette bør fungere på enhver ESP8266 -enhed, der kan bruge en I2C OLED. D-Duino er for det meste en NodeMCU med tilføjelse af OLED.

Koden kan findes

Du skal have ESP8266 -kortene installeret i Arduino IDE. Instruktioner kan findes her:

(den nemmeste måde er med bestyrelseschefen)

Du får også brug for nogle biblioteker - jeg tror, at alt dette kan findes i bibliotekschefen nu (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 fik TImeLib fra, og det er måske inkluderet i Arduino IDE ??)

Den enkleste måde at installere disse på er ved hjælp af biblioteksadministratoren. Hvis ikke, følg instruktionerne for hvert bibliotek.

Trin 2: Skitserne

Skitserne
Skitserne

Der er i øjeblikket to skitser og tre PHP -scripts inkluderet i github -depotet.

DDuino_ISS_notification, som skal bruges med D-Duino hardware ovenfra.

Og EricISSnotification, der bruger min tidligere "Supervisor Eric" fra showet "People of Earth" -projektet. (Mere om dette senere)

I begge skitser nær linje 30 (eller et sted helt tæt på det) - Du ser et par flydevariabler kaldet mylat og mylon. Du bliver nødt til at ændre disse to linjer med din breddegrad og længdegrad - hvis du ikke kender din Lat og Lon, kan du bruge dette websted https://www.latlong.net Centrum i din by skulle være fint. Det behøver ikke at matche din udsatte breddegrad eller længdegrad. Skitserne foretager nogle afrundinger og anden matematik for at komme med en omtrentlig afstand til ISS i U. S. Miles.

Jeg tror, at dette er det eneste, der skal ændres i skitserne.

Matematikken til afstandsberegningen er baseret på storcirkelafstanden mellem to punkter, og den formelle findes her-https://www.movable-type.co.uk/scripts/latlong.htm…

Dette websted giver en masse oplysninger om, hvordan man beregner afstanden mellem to breddegrader og længdegrader samt peiling. Vi bruger ikke nogen beregningsberegninger til dette.

For at det formelle skal fungere, har vi brug for at få en theta og konvertere en eller anden grad til strålende og omvendt strålende til grad. Da Arduino ikke gør matematik så godt, er vi nødt til at hjælpe det lidt med konverteringerne.

void getDistance () {

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

afstand = miles;

}

float deg2rad (float n) {

flyde radian = (n * 71)/4068;

return radian;

}

float rad2deg (float n) {

flydegrad = (n*4068)/71;

tilbagevenden grad;

}

Størstedelen af matematikken udføres nær linje 127 - HVIS du gerne vil have en anden afstand (f.eks. KM eller Nautical Miles)

du kan ændre "miles = dist * 60 * 1.1515;" linje.

For KM ville det være noget i retning af "miles = (dist*60*1.1515)*1.609344;"

For Nautical Miles noget som "miles = (dist*60*1.1515)*0.8684;"

Du vil sandsynligvis også ændre den serielle printlinje og OLED -displaylinjen, der siger miles til din nye måling.

Hvilket er linje 86 og 96 i skitsen DDuino_ISS_notification.

Trin 3: Eric Sketch

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

Supervisor Eric er en AI eller udlænding fra TBS TV People of Earth, se venligst min anden Instructable på min build.

Det helt basale, du har brug for til dette notifikationssystem, er en D1 Mini og WS2812 -skjoldet - at have det i en flot æske med et flot objektiv får det til at se ud - godt pænt.

Endnu en gang burde enhver ESP8266 med en WS2812 pixel fungere, der er virkelig ingen magi i gang her - WS2812 -skjoldet er forbundet til D2 på D1 mini (som jeg tror er pin 4 på NodeMCU -kort og måske andre ESP8266 -kort).

Til skitsen:

Som ovenfor skal du ændre din breddegrad og længdegrad i skitsen nær linje 27. Og som ovenfor beregner denne skitse også en afstand mellem til breddegrad og længdegrader. I modsætning til ovenstående skitse er denne eneste skærm med WS2812 Neopixel LED.

Matematikken er tæt på linje 96, men er ellers den samme som ovenfor. Der er stadig seriel output, hvis du vil se, hvad der foregår. Denne skitse udfører kun ISS -lokaliserings- og afstandsberegninger - den udfører ikke passforudsigelser eller hvor mange mennesker der er i rummet.

* Det skal bemærkes, at afstanden her er i Miles, den kan ændres, hvis du vil, men du skal foretage et par ændringer mere for dine enheder. *

I nærheden af linje 116:

void setColor () {

hvis (distance = 1201) {colorDisplay (strip. Color (255, 0, 0), p);}

hvis (distance = 1151) {colorDisplay (strip. Color (255, 153, 0), p);} // ser mere gul ud for mig

hvis (afstand = 951) {colorDisplay (strip. Color (255, 255, 0), p);} // ser grøn/gul ud for mig

hvis (afstand <= 950) {colorDisplay (strip. Color (0, 255, 0), p);}

hvis (afstand> = 1351) {colorDisplay (strip. Color (0, 0, 0), p);}

}

Enhederne er i miles, og hvis du skal skifte til KM eller NM, vil du også gerne ændre disse linjer.

Hvad sker der her, på 1350 miles, er ISS lige i horisonten, og du kan bare begynde at høre transpondere fra radioen - det er ikke fantastisk, og kommunikation på dette tidspunkt kan ikke rigtig ske. Lysdioden bliver RØD - dette er en heads up - ISS nærmer sig.

Efter kort tid, eller hvis ISS er mellem 1150 og 1200 miles, lyser LED'en orange - det ser virkelig mere gult ud, men det er støtte at være orange. - Ved 1150 miles bør du begynde at høre en hel del mere - tovejskommunikation vil sandsynligvis stadig ikke være mulig på en 5 watt HT.

Mellem 950 og 1150 miles - LED'en skal blive gul - du har en anstændig chance for at få kontakt - stadig ikke stor, men det er i det mindste muligt på dette tidspunkt (Gul ser mere grøn ud for mig end gul - så noget andet at arbejde på)

Under 950 miles vil LED'en være en solid GRØN - og der kan oprettes tovejskontakter.

Når ISS bevæger sig væk fra LED'en, går den fra grøn til gul til orange til rød og derefter til sidst til OFF.

Det skal bemærkes her, alt dette sker meget hurtigt - de fleste afleveringer i mit område varer under 10 minutter, og normal brugbar kontakttid er under 5 minutter.

Det skal også bemærkes, at ISS kan ændre sin placering, og at API'en muligvis ikke opdateres - så selvom du har et grønt lys - hører du muligvis ikke noget.

** At køre amatørudstyret udføres også valgfrit og frivilligt, og mens de forsøger at køre udstyret, er der tid, når de skal lukke det for strøm eller på grund af det, de skal gøre. Det er altid en god idé at tjekke AMsat eller ARISS websteder **

Trin 4: PHP -koden

PHP -koden
PHP -koden

I github -depotet har jeg inkluderet min PHP -kode fra 2013.

Koden var designet til at køre fra CLI (eller kommandolinjen). Det er et stykke tid siden, jeg skrev disse, men jeg tror, at det eneste krav var at have JSON -udvidelser aktiveret.

Scripts fungerer stadig, og hvis du gerne vil køre dem, er du velkommen til at gøre det!

For Windows -brugere er der oplysninger her om installation af PHP

Sørg for at installere CLI -versionen. Jeg tror, at når du installerer, kan du vælge, hvilke udvidelser der skal tændes.

Linux -brugere er afhængige af din distro - jeg bruger en Ubuntu -baseret distro - og synaptisk som min pakkehåndtering.

Du vil have php7.0-common, php7.0-json, php7.0-cli, php7.0-curl

Jeg tror ikke, jeg brugte CURL med disse, så du har muligvis ikke brug for den. Resten skal findes i din foretrukne pakkemanger eller på https://php.net -webstedet.

To af scripts skal redigeres med din breddegrad og længdegrad - de er ikke særlig lange, og det, der skal ændres, er lige øverst i scriptet. De er iss-location.php og iss-pass-api.php

iss -location.php har mine gamle blink -stick -opkald tilbage i den - jeg er ikke sikker på, at de virker mere - men du kan se, at jeg ændrede LED'en på omtrent samme måde som jeg gør med min "Eric Notification". Jeg tror ikke, de forårsager problemer, men du vil måske kommentere dem.

iss-pass-api.php bruger epoketiden og giver en lokal tid for de forudsagte passeringer. Helt ærligt foretrækker jeg PHP -versionen af dette script sammenlignet med DDuino -versionen (som lige nu kun foretager UTC -forudsigelser)

PHP -versionen er også formateret pænere til visning - men det er virkelig en mindre ting.

Det sidste PHP -script er iss -people.php - og det viser navnene og hvilket rumfartøj de er på. Det er alt, hvad den gør. (Og disse oplysninger ændres ikke ofte)

Det grundlæggende ved at køre et PHP -script fra kommandolinjen er:

$ php iss-people.php

PHP -filer er tekstfiler og kan åbnes af enhver tekstredigerer. Windows -brugere Jeg tror, at jeg gemte disse, så de har både linje- og vognretur. Hvis ikke https://www.editpadlite.com/ måske virker for dem.

Trin 5: Videoer og flere ISS- og skinkeoplysninger

Image
Image

Få en skinkelicens i USA:

Ikke i USA? Hvert land har sit eget sæt regler og licensguider - tjek med hvem der styrer din kommunikation (her i USA er det FCC Federal Communications Commision)

Beregn afstand, peiling og mere mellem bredde- og længdepunkter.

Dette ville have været meget sværere at lave uden de meget nyttige API'er fra Open Notify

Sådan ser du rumstationen fra jorden.

AMSAT Radio Amatør Satellit

AMSAT Information om radio på ISS

ARISS Amatørradio på den internationale rumstation

ISS Fanklub - ISS Frekvenser

Wikipedia -adgang til APRS

APRS.org

Trin 6: Endelige tanker …

Dette var et sjovt projekt med meget enkel hardware.

Der er et par ting, jeg gerne vil ændre, men generelt er jeg meget tilfreds med resultaterne.

Ting der skal ændres:

1) Find ud af en måde at få pass -forudsigelser i lokal tid, ikke UTC

2) Find bedre farvekodenumre for orange og gul.

3) Opdater til arbejde med ESP32 X-board, med OLED og 4 Neopixels.

Hvis du synes, at dette eller nogle af mine projekter er nyttige eller underholdende, kan du støtte mig.

Alt, hvad jeg får, går til at købe flere dele og lave flere/bedre projekter.

www.patreon.com/kd8bxp

ko-fi.com/lfmiller

Anbefalede: