Spisu treści:

Prosty system powiadomień ISS: 6 kroków (ze zdjęciami)
Prosty system powiadomień ISS: 6 kroków (ze zdjęciami)

Wideo: Prosty system powiadomień ISS: 6 kroków (ze zdjęciami)

Wideo: Prosty system powiadomień ISS: 6 kroków (ze zdjęciami)
Wideo: Strona Internetowa Dla Fotografa Kompletny Poradnik Jak Zrobić Stronę WWW 2024, Lipiec
Anonim
Prosty system powiadamiania ISS
Prosty system powiadamiania ISS
Prosty system powiadamiania ISS
Prosty system powiadamiania ISS

Czym jest Międzynarodowa Stacja Kosmiczna i dlaczego chcesz przewidzieć, gdzie ona jest?

Aby odpowiedzieć na pierwsze pytanie, możemy zajrzeć na stronę NASA w poszukiwaniu odpowiedzi. Czyli w skrócie:

Międzynarodowa Stacja Kosmiczna to duży statek kosmiczny. Krąży wokół Ziemi. To dom, w którym mieszkają astronauci. Stacja kosmiczna jest również laboratorium naukowym. Wiele krajów współpracowało, aby go zbudować. Pracują również razem, aby z niego korzystać. Stacja kosmiczna składa się z wielu elementów. Kawałki zostały złożone w kosmos przez astronautów. Orbita stacji kosmicznej znajduje się około 220 mil nad Ziemią. NASA wykorzystuje stację do nauki życia i pracy w kosmosie. Te lekcje pomogą NASA zbadać przestrzeń kosmiczną.

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

Na drugie pytanie jest trochę trudniej odpowiedzieć – ale spróbuję.

Jestem radiooperatorem amatorskim (lub radiooperatorem Ham) - jedną rzeczą, która zawsze sprawiała mi przyjemność, było używanie ręcznego radia o małej mocy (5 W lub mniej) i komunikowanie się z satelitami na orbicie. ISS ma na pokładzie sprzęt radiowy.

Na początku mojej pracy krótkofalowca dość często komunikowałem się z satelitami, nawet nawiązując kontakty tylko za pomocą gumowej kaczuszki anteny - coś bardzo trudnego do zrobienia. Nawiązałem kilka kontaktów z ISS za pomocą APRS (automatycznego systemu raportowania pakietów). To było w 2013 roku - dawno temu, od tego czasu byłem bardzo nieaktywny. To coś, co chciałem do ciebie wrócić.

W 2013 napisałem kilka skryptów PHP dla wiersza poleceń, które podawałyby mi lokalizację ISS i pomagały przewidzieć, kiedy będzie nad głową. W tym czasie użyłem mrugającego kija, który zmieniał kolory w miarę zbliżania się ISS. Dzięki pracy na https://open-notify.org i jego API zrobienie tego było całkiem łatwe.

2018 - 5 lat później w końcu przekonwertowałem te PHP do Arduino C (właściwie było to bardzo łatwe do zrobienia.)

Mój projekt używa D-Duino (co tak naprawdę jest NodeMCU z OLED na pokładzie), to wszystko.

Nadal używam tego samego API z

Napisałem również trochę kodu, aby używać D1 Mini i WS2812 Shield (zobacz mój Supervisor Eric Project, aby uzyskać więcej informacji na ten temat).

Krok 1: Prosty sprzęt

Prosty sprzęt
Prosty sprzęt

D-Duino (NodeMCU)

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

To wszystko, to wszystko, co jest wymagane. Oczywiście możesz użyć innego sprzętu - powinno to działać na każdym urządzeniu ESP8266, które może korzystać z I2C OLED. D-Duino jest w większości NodeMCU z dodatkiem OLED.

Kod można znaleźć

Będziesz musiał mieć zainstalowane płyty ESP8266 w Arduino IDE. Instrukcje można znaleźć tutaj:

(najłatwiej jest z menedżerem tablic)

Potrzebne będą też biblioteki - myślę, że wszystkie z nich można teraz znaleźć w menedżerze bibliotek (ale nie jestem tego w 100% pewien).

Potrzebne biblioteki: ArduinoJson.h

Adafruit_NeoPixel

WifiManager.h

TimeLib.h

esp8266-oled-ssd1306

(Nie jestem pewien, skąd mam TImeLib i może jest dołączony do Arduino IDE ??)

Najprostszym sposobem ich zainstalowania jest użycie menedżera biblioteki. Jeśli nie, postępuj zgodnie z instrukcjami dla każdej biblioteki.

Krok 2: Szkice

Szkice
Szkice

Obecnie w repozytorium github znajdują się dwa szkice i trzy skrypty PHP.

DDuino_ISS_notification, który powinien być używany z powyższym sprzętem D-Duino.

Oraz powiadomienie EricISS, które korzysta z mojego poprzedniego "Supervisora Erica" z programu "Ludzie Ziemi". (Więcej na ten temat później)

W obu szkicach w pobliżu linii 30 (lub gdzieś bardzo blisko niej) - Zobaczysz kilka zmiennych pływających zwanych mylat i mylon. Musisz zmienić te dwie linie na szerokość i długość geograficzną - jeśli nie znasz szerokości geograficznej i długości geograficznej, możesz skorzystać z tej strony https://www.latlong.net Centrum twojego miasta powinno być w porządku. Nie musi odpowiadać Twojej dokładnej szerokości lub długości geograficznej. Szkice dokonują pewnych zaokrągleń i innych obliczeń matematycznych, aby uzyskać przybliżoną odległość ISS w milach amerykańskich.

Uważam, że to jedyna rzecz, którą trzeba zmienić w szkicach.

Matematyka do obliczenia odległości opiera się na odległości po wielkim okręgu między dwoma punktami, a formularz można znaleźć tutaj -

Ta strona zawiera wiele informacji na temat obliczania odległości między dwiema szerokościami i długościami geograficznymi oraz namiaru. Nie używamy do tego żadnych obliczeń łożysk.

Aby formalne zadziałało, musimy uzyskać theta i przekonwertować pewien stopień na radiant i odwrotnie, radiant na stopień. Ponieważ Arduino nie radzi sobie tak dobrze z matematyką, musimy trochę pomóc w konwersjach.

void pobierzOdleglosc() {

float theta, dist, mile;

theta = mylon - isslon;

dist = sin(deg2rad(mylat)) * sin(deg2rad(ylat)) + cos(deg2rad(mylat)) * cos(deg2rad(ylat)) * cos(deg2rad(theta));

odl = acos(odleg); odl = rad2stopnie(odleg);

mile = odległość * 60 * 1,1515;

odległość = mile;

}

float deg2rad(liczba n) {

radian zmiennoprzecinkowy = (n * 71)/4068;

powrót radiana;

}

float rad2deg(float n) {

stopień zmiennoprzecinkowy = (n*4068)/71;

stopień powrotu;

}

Większość matematyki jest wykonywana w pobliżu linii 127 – JEŚLI chcesz zmienić odległość (powiedzmy KM lub mile morskie)

możesz zmienić "miles = dist * 60 * 1.1515;" linia.

W przypadku KM byłoby to coś w stylu „mile = (dist*60*1.1515) * 1.609344;”

W przypadku mil morskich coś w rodzaju „miles = (dist*60*1.1515)*0.8684;”

Prawdopodobnie będziesz także chciał zmienić linię druku szeregowego i linię wyświetlacza OLED, które mówią mile do nowego pomiaru.

To jest linia 86 i 96 w szkicu DDuino_ISS_notification.

Krok 3: Szkic Erica

Szkic Erica
Szkic Erica
Szkic Erica
Szkic Erica
Szkic Erica
Szkic Erica

Supervisor Eric jest sztuczną inteligencją lub kosmitą z TBS TV People of Earth. Proszę zobaczyć moje inne instrukcje na mojej budowie.

Podstawą tego systemu powiadomień jest D1 Mini i nakładka WS2812 - posiadanie jej w ładnym pudełku z ładnym obiektywem sprawia, że wygląda - no ładnie.

Po raz kolejny każdy ESP8266 z pikselem WS2812 powinien działać, naprawdę nie dzieje się tu żadna magia - osłona WS2812 jest podłączona do D2 na D1 mini (który, jak sądzę, jest pinem 4 na płytach NodeMCU i być może na innych płytach ESP8266).

Do szkicu:

Jak wyżej, będziesz musiał zmienić szerokość i długość geograficzną na szkicu w pobliżu linii 27. I tak jak powyżej ten szkic również oblicza odległość między szerokością i długością geograficzną. W przeciwieństwie do powyższego szkicu, ten tylko wyświetlacz jest wyposażony w diodę LED Neopixel WS2812.

Matematyka jest blisko linii 96, ale poza tym jest taka sama jak powyżej. Nadal istnieje wyjście szeregowe, jeśli chcesz zobaczyć, co się dzieje. Ten Sketch wykonuje tylko obliczenia lokalizacji i odległości ISS - nie wykonuje przewidywań przelotów ani liczby osób w kosmosie.

* Należy zauważyć, że odległość jest tutaj w milach, można ją zmienić, jeśli chcesz, ale będziesz musiał wprowadzić kilka dodatkowych zmian dla swoich jednostek. *

W pobliżu linii 116:

nieważne ustawKolor() {

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

if (distance =1151) {colorDisplay(strip. Color(255, 153, 0), p);} // dla mnie wygląda bardziej żółto

if (distance = 951) {colorDisplay(strip. Color(255, 255, 0), p);} //dla mnie wygląda na zielono/żółto

if (odległość <=950) {colorDisplay(strip. Color(0, 255, 0), p);}

if (odległość >= 1351) {colorDisplay(strip. Color(0, 0, 0), p);}

}

Jednostki są w milach, a jeśli musisz zmienić na KM lub NM, będziesz chciał również zmienić te linie.

Co tu się dzieje Ty, na 1350 milach ISS jest tuż na horyzoncie i możesz po prostu zacząć słyszeć transpondery z radia - to nie jest wspaniałe, a komunikacja w tym momencie nie może się wydarzyć. Dioda LED zmienia kolor na CZERWONY – to ostrzeżenie – ISS się zbliża.

Po krótkim czasie, lub jeśli ISS znajduje się między 1150 a 1200 mil, dioda LED zmieni kolor na pomarańczowy - to naprawdę wygląda bardziej na żółto, ale pomarańczowe jest wsparcie. - Na 1150 milach powinieneś zacząć słyszeć trochę więcej - dwukierunkowa komunikacja prawdopodobnie nadal nie będzie możliwa na 5 watowym HT.

Między 950 a 1150 mil - Dioda powinna zmienić kolor na żółty - masz spore szanse na nawiązanie kontaktu - nadal nie jest super, ale w tym momencie jest to przynajmniej możliwe (żółty wydaje mi się bardziej zielony niż żółty - więc coś innego do pracy na)

Poniżej 950 mil dioda LED będzie świecić na ZIELONO - i można nawiązać kontakty dwukierunkowe.

W miarę oddalania się ISS od diody LED zmieni się z zielonego na żółty, na pomarańczowy do czerwonego, a następnie na OFF.

Należy tutaj zauważyć, że wszystko dzieje się bardzo szybko - większość przejść w mojej okolicy trwa poniżej 10 minut, a normalny czas kontaktu to mniej niż 5 minut.

Należy również zauważyć, że ISS może zmienić swoją lokalizację i że API może, ale nie musi być aktualizowane - więc nawet jeśli masz zielone światło - możesz nic nie słyszeć.

** Uruchamianie sprzętu amatorskiego jest również opcjonalne i dobrowolne, a gdy próbują uruchomić sprzęt, zdarza się, że muszą go wyłączyć z powodu zasilania lub z powodu tego, co muszą zrobić. Zawsze warto sprawdzić strony AMsat lub ARISS **

Krok 4: Kod PHP

Kod PHP
Kod PHP

W repozytorium github umieściłem swój kod PHP z 2013 roku.

Kod został zaprojektowany do uruchamiania z CLI (lub wiersza poleceń). Minęło trochę czasu, odkąd je napisałem, ale myślę, że jedynym wymaganiem było włączenie rozszerzeń JSON.

Skrypty nadal działają, a jeśli chcesz je uruchomić, możesz to zrobić!

Dla użytkowników systemu Windows informacje na temat instalacji PHP

Pamiętaj, aby zainstalować wersję CLI. Myślę, że podczas instalacji możesz wybrać rozszerzenia, które chcesz włączyć.

Użytkownicy Linuksa polegają na twojej dystrybucji - używam dystrybucji opartej na Ubuntu - i synaptic jako moim menedżerze pakietów.

Będziesz potrzebować php7.0-common, php7.0-json, php7.0-cli, php7.0-curl

Myślę, że nie używałem z nimi CURL, więc możesz nie potrzebować tego. Resztę należy znaleźć w wybranym przez siebie menedżerze pakietów lub na stronie

Dwa skrypty będą musiały być edytowane z twoją szerokością i długością geograficzną - nie są bardzo długie, a to, co należy zmienić, znajduje się na samej górze skryptu. Są to iss-location.php i iss-pass-api.php

iss-location.php ma w sobie moje stare wywołania migającego drążka – nie jestem pewien, czy już działają – ale widać, że zmieniłem diodę LED w taki sam sposób, jak w przypadku mojego „Powiadomienia Erica”. Nie sądzę, że powodują one jakiekolwiek problemy, ale możesz je skomentować.

iss-pass-api.php używa czasu epoki i podaje czas lokalny przewidywanych przejść. Szczerze mówiąc, wolę wersję PHP tego skryptu w porównaniu do wersji DDuino (która obecnie wykonuje tylko prognozy UTC)

Wersja PHP jest również sformatowana ładniej do wyświetlania - ale to naprawdę drobiazg.

Ostateczny skrypt PHP to iss-people.php – wyświetla on nazwy i statek kosmiczny, na którym się znajdują. To wszystko, co robi. (A ta informacja nie zmienia się często)

Podstawy uruchamiania skryptu PHP z wiersza poleceń to:

$ php iss-people.php

Pliki PHP są plikami tekstowymi i mogą być otwierane przez dowolny edytor tekstu. Użytkownicy systemu Windows Myślę, że zapisałem je, więc mają zarówno powrót linii, jak i karetki. Jeśli nie, https://www.editpadlite.com/ może dla nich działać.

Krok 5: Filmy i więcej informacji o ISS i szynce

Image
Image

Uzyskanie licencji szynkowej w Stanach Zjednoczonych:

Nie w USA? Każdy kraj ma własny zestaw zasad i przewodników licencyjnych - sprawdź, kto zarządza Twoją komunikacją (tu w USA jest to Federalna Komisja Komunikacji FCC)

Oblicz odległość, namiar i nie tylko między punktami szerokości i długości geograficznej.

Byłoby to o wiele trudniejsze bez bardzo przydatnych interfejsów API z Open Notify

Jak zobaczyć stację kosmiczną z ziemi.

Radioamatorski satelita AMSAT

AMSAT Informacje w radiu na ISS

Radioamatorskie ARISS na Międzynarodowej Stacji Kosmicznej

ISS Fan Club - Częstotliwości ISS

Wpis w Wikipedii na temat APRS

APRS.org

Krok 6: Ostatnie myśli…

To był fajny projekt, z bardzo prostym sprzętem.

Jest kilka rzeczy, które chciałbym zmienić, ale ogólnie jestem bardzo zadowolony z wyników.

Rzeczy, które należy zmienić:

1) Znajdź sposób, aby przewidywać passę w czasie lokalnym, a nie UTC

2) Znajdź lepsze numery kodów kolorów dla pomarańczowego i żółtego.

3) Aktualizacja do pracy z płytą ESP32 X, z OLED i 4 Neopikselami.

Jeśli uważasz, że ten lub którykolwiek z moich projektów jest przydatny lub przyjemny, proszę wesprzyj mnie.

Wszystko, co dostanę, idzie na kupowanie większej liczby części i robienie większej liczby/lepszych projektów.

www.patreon.com/kd8bxp

ko-fi.com/lfmiller

Zalecana: