Obsah:
- Krok 1: Jednoduchý hardware
- Krok 2: Skici
- Krok 3: Eric Sketch
- Krok 4: Kód PHP
- Krok 5: Videa a další informace o ISS & Ham
- Krok 6: Závěrečné myšlenky…
Video: Jednoduchý oznamovací systém ISS: 6 kroků (s obrázky)
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:23
Co je to Mezinárodní vesmírná stanice a proč chcete předpovědět, kde se nachází?
Chcete -li odpovědět na první otázku, můžeme odpověď najít na webových stránkách NASA. Což ve zkratce je:
Mezinárodní vesmírná stanice je velká kosmická loď. Obíhá kolem Země. Je to domov, kde žijí astronauti. Vesmírná stanice je také vědeckou laboratoří. Mnoho zemí spolupracovalo na jeho vybudování. Vesmírná stanice je vyrobena z mnoha kusů. Kusy byly ve vesmíru sestaveny astronauty. Oběžná dráha vesmírné stanice je asi 220 mil nad Zemí. NASA používá stanici k učení o životě a práci ve vesmíru. Tyto lekce pomohou NASA prozkoumat vesmír.
www.nasa.gov/audience/forstudents/k-4/stor…
Na druhou otázku je trochu těžší odpovědět - Ale pokusím se.
Jsem amatérský radista (nebo radioamatér Ham) - jedna věc, která mě vždy bavila, bylo používat ruční vysílačku s nízkým výkonem (5 wattů nebo méně) a komunikovat s obíhajícími satelity. ISS má na palubě rádiové zařízení.
Brzy v mých šunkových dnech jsem docela často komunikoval se satelity, dokonce jsem navázal nějaké kontakty pouze s gumovou ducky anténou - něco velmi obtížného. Navázal jsem několik kontaktů s ISS pomocí APRS (systém automatického hlášení paketů) To bylo v roce 2013 - před dlouhou dobou jsem od té doby velmi neaktivní. Je to něco, co jsem chtěl dostat zpátky do tebe.
V roce 2013 jsem napsal několik skriptů PHP pro příkazový řádek, které by mi řekly umístění ISS a pomohly předpovědět, kdy bude nad hlavu. V té době jsem použil mrknutí a nechal změnit barvy, když se přiblížila ISS. Díky práci na https://open-notify.org a jeho API to bylo docela snadné.
2018 - O 5 let později jsem tyto PHP konečně převedl na Arduino C (ve skutečnosti to bylo velmi snadné.)
Můj projekt používá D-Duino (což je opravdu NodeMCU s OLED na palubě), to je vše, co k tomu patří.
Stále používám stejné API z
Také jsem napsal nějaký kód pro použití D1 Mini a WS2812 Shield (více o tom viz můj projekt Supervisor Eric).
Krok 1: Jednoduchý hardware
D-Duino (NodeMCU)
www.aliexpress.com/item/NodeMCU-CP2102-ESP…
To je ono, to je vše, co je požadováno. Samozřejmě můžete použít jiný hardware - to by mělo fungovat na jakémkoli zařízení ESP8266, které může používat I2C OLED. D-Duino je z větší části NodeMCU s přidáním OLED.
Kód najdete
V Arduino IDE budete muset mít nainstalované desky ESP8266. Návod najdete zde:
(nejsnazší způsob je pomocí správce desek)
Budete také potřebovat nějaké knihovny - myslím, že všechny tyto nyní najdete ve správci knihoven (ale tím si nejsem 100% jistý).
Potřebné knihovny: ArduinoJson.h
Adafruit_NeoPixel
WifiManager.h
TimeLib.h
esp8266-oled-ssd1306
(Nejsem si jistý, odkud jsem získal TImeLib, a možná je součástí Arduino IDE ??)
Nejjednodušší způsob, jak je nainstalovat, je použít správce knihoven. Pokud ne, postupujte podle pokynů pro každou knihovnu.
Krok 2: Skici
V repozitáři github jsou v současné době zahrnuty dva skici a tři skripty PHP.
DDuino_ISS_notification, které by mělo být použito s hardwarem D-Duino shora.
A oznámení EricISS, které používá můj předchozí „supervizor Eric“ze show „People of Earth“. (Více o tom později)
V obou náčrtcích blízko linie 30 (nebo někde opravdu blízko ní) - uvidíte pár proměnných typu float, které se nazývají mylat a mylon. Tyto dva řádky budete muset změnit pomocí zeměpisné šířky a délky - pokud neznáte své zeměpisné šířky a délky, můžete použít tento web https://www.latlong.net Centrum vašeho města by mělo být v pořádku. Nemusí se shodovat s vaší přesnou šířkou nebo délkou. Skici provedou určité zaokrouhlení a další matematiku, aby vytvořily přibližnou vzdálenost ISS v amerických mílích.
Věřím, že je to jediná věc, kterou je třeba na náčrtech změnit.
Matematika pro výpočet vzdálenosti je založena na vzdálenosti velkého kruhu mezi dvěma body a formál najdete zde-https://www.movable-type.co.uk/scripts/latlong.htm…
Tento web poskytuje spoustu informací o tom, jak vypočítat vzdálenost mezi dvěma zeměpisnými šířkami a délkami a také s ložiskem. K tomu nepoužíváme žádné výpočty ložisek.
Aby formální práce fungovala, potřebujeme získat theta a převést určitý stupeň na zářivý a naopak na zářivý na stupeň. Protože Arduino neumí tak dobře matematiku, musíme mu s převody trochu pomoci.
neplatné getDistance () {
float theta, dist, mil;
theta = mylon - isslon;
dist = sin (deg2rad (mylat)) * sin (deg2rad (isslat)) + cos (deg2rad (mylat)) * cos (deg2rad (isslat)) * cos (deg2rad (theta));
dist = acos (dist); dist = rad2deg (dist);
míle = vzdálenost * 60 * 1,1515;
vzdálenost = míle;
}
float deg2rad (float n) {
float radian = (n * 71)/4068;
návratový radián;
}
float rad2deg (float n) {
plovoucí stupeň = (n*4068)/71;
návratový stupeň;
}
Převážná část matematiky se provádí v blízkosti řádku 127 - POKUD byste chtěli jinou vzdálenost (řekněme KM nebo Námořní míle)
můžete změnit „míle = vzdálenost * 60 * 1,1515;“čára.
Pro KM by to bylo něco jako „míle = (dist*60*1,1515)*1,609344;“
Pro námořní míle něco jako „míle = (vzdálenost*60*1,1515)*0,8684;"
Pravděpodobně budete také chtít změnit řádek sériového tisku a řádek displeje OLED, které říkají míle k vašemu novému měření.
Což je čára 86 a 96 v náčrtu DDuino_ISS_notification.
Krok 3: Eric Sketch
Supervisor Eric is an AI or alien from the TBS TV People of Earth, Please see my other Instructable on my build.
Úplně základní, co pro tento oznamovací systém potřebujete, je D1 Mini a štít WS2812 - mít ho v hezké krabičce s pěkným objektivem vypadá - dobře.
Opět by měl fungovat jakýkoli ESP8266 s pixelem WS2812, tady se opravdu žádná magie neděje - štít WS2812 je připojen k D2 na D1 mini (což je podle mě pin 4 na deskách NodeMCU a možná i na dalších deskách ESP8266).
K náčrtu:
Jak je uvedeno výše, budete muset změnit svou zeměpisnou šířku a délku v náčrtu poblíž čáry 27. A jako výše, tato skica také vypočítá vzdálenost mezi zeměpisnou šířkou a délkou. Na rozdíl od výše uvedeného náčrtu je tento jediný displej s LED diodou WS2812 Neopixel LED.
Matematika je blízko řádku 96, ale jinak jsou stejné jako výše. Pokud chcete vidět, co se děje, stále existuje sériový výstup. Tato skica provádí pouze výpočty polohy a vzdálenosti ISS - nedělá předpovědi průchodů ani počet lidí ve vesmíru.
* Je třeba poznamenat, že vzdálenost je zde v mílích, lze ji změnit, pokud chcete, ale pro své jednotky budete muset provést několik dalších změn. *
Blízko linky 116:
void setColor () {
if (distance = 1201) {colorDisplay (strip. Color (255, 0, 0), p);}
if (distance = 1151) {colorDisplay (strip. Color (255, 153, 0), p);} // vypadá pro mě více žlutě
if (distance = 951) {colorDisplay (strip. Color (255, 255, 0), p);} // zdá se mi zelená/žlutá
if (vzdálenost <= 950) {colorDisplay (strip. Color (0, 255, 0), p);}
if (vzdálenost> = 1351) {colorDisplay (strip. Color (0, 0, 0), p);}
}
Jednotky jsou v mílích, a pokud potřebujete změnit na KM nebo NM, budete chtít také změnit tyto řádky.
Co se tady děje, na 1350 mil, ISS je právě na obzoru a vy můžete jen začít poslouchat transpondéry z rádia - není to skvělé a komunikace v tomto místě se opravdu nemůže stát. LED se rozsvítí ČERVENĚ - to je heads up - ISS se blíží.
Po krátké době, nebo pokud je ISS mezi 1150 a 1200 mil, se LED rozsvítí oranžově - opravdu to vypadá žlutěji, ale podpora je oranžová. - Na 1150 mil byste měli začít trochu víc slyšet - obousměrná komunikace pravděpodobně stále nebude možná na 5 wattovém HT.
Mezi 950 a 1150 mil - LED by měla zezelenat - máte slušnou šanci navázat kontakt - stále to není skvělé, ale v tuto chvíli je to alespoň možné (Žlutá mi připadá více zelená než žlutá - takže by mělo fungovat něco jiného) na)
Méně než 950 mil bude LED svítit zeleně - a lze vytvořit obousměrné kontakty.
Když se ISS vzdaluje od LED, přejde ze zelené na žlutou, oranžovou na červenou a nakonec na VYPNUTO.
Zde je třeba poznamenat, že se to všechno děje velmi rychle - většina průchodů v mé oblasti trvá méně než 10 minut a normální použitelná doba kontaktu je pod 5 minut.
Je také třeba poznamenat, že ISS může změnit své umístění a že API může nebo nemusí být aktualizováno - takže i když máte zelenou - možná nic neslyšíte.
** Spuštění amatérského vybavení se provádí také dobrovolně a dobrovolně, a zatímco se pokoušejí spustit zařízení, je čas, kdy je musí vypnout kvůli napájení nebo kvůli tomu, co potřebují udělat. Vždy je dobré zkontrolovat webové stránky AMsat nebo ARISS **
Krok 4: Kód PHP
Do úložiště github jsem vložil svůj kód PHP z roku 2013.
Kód byl navržen tak, aby běžel z CLI (nebo z příkazového řádku). Je to už nějaký čas, co jsem je napsal, ale myslím, že jediným požadavkem bylo mít povolená rozšíření JSON.
Skripty stále fungují, a pokud je chcete spustit, můžete tak učinit!
Pro uživatele Windows jsou zde informace o instalaci PHP
Nezapomeňte nainstalovat verzi CLI. Myslím, že při instalaci si můžete vybrat, která rozšíření chcete zapnout.
Uživatelé Linuxu závisí na vašem distru - používám distro založené na Ubuntu - a synaptické jako můj správce balíčků.
Budete chtít php7.0-common, php7.0-json, php7.0-cli, php7.0-curl
Nemyslím si, že jsem s nimi použil CURL, takže to možná nebudete potřebovat. Zbytek byste měli najít ve zvolené správci balíků nebo na webu
Dva ze skriptů bude třeba upravit pomocí vaší zeměpisné šířky a délky - nejsou příliš dlouhé a to, co je třeba změnit, je přímo v horní části skriptu. Jsou to iss-location.php a iss-pass-api.php
na iss -location.php zůstaly moje staré hovory s blikajícími tyčemi - nejsem si jistý, že už fungují - ale vidíte, že jsem LED diodu měnil v podstatě stejným způsobem, jako to dělám u svého „oznámení Eric“. Nemyslím si, že způsobují nějaké problémy, ale možná je budete chtít okomentovat.
iss-pass-api.php používá čas epochy a udává místní čas předpokládaných průchodů. Ve vší upřímnosti dávám přednost verzi PHP tohoto skriptu ve srovnání s verzí DDuino (která právě teď předpovídá pouze UTC)
Verze PHP je také formátována hezčí pro zobrazení - ale to je opravdu drobnost.
Konečný skript PHP je iss -people.php - a zobrazí jména a vesmírné plavidlo, na kterém se nacházejí. To je vše, co dělá. (A tyto informace se často nemění)
Základy spouštění skriptu PHP z příkazového řádku jsou:
$ php iss-people.php
Soubory PHP jsou textové soubory a lze je otevřít v libovolném textovém editoru. Uživatelé systému Windows Myslím, že jsem je uložil, aby měli jak řádkové, tak vozíkové návraty. IF not https://www.editpadlite.com/ by pro ně mohlo fungovat.
Krok 5: Videa a další informace o ISS & Ham
Získání licence na šunku ve Spojených státech:
Nejste v USA? Každá země má vlastní sadu pravidel a licenčních průvodců - zjistěte si, kdo řídí vaši komunikaci (zde v USA je to FCC Federal Communications Commission)
Vypočítejte vzdálenost, směr a další mezi body zeměpisné šířky a délky.
Bylo by mnohem těžší to udělat bez velmi užitečných API z Open Notify
Jak vidět vesmírnou stanici ze země.
Radioamatérský satelit AMSAT
AMSAT Informace o rádiu na ISS
Amatérské rádio ARISS na Mezinárodní vesmírné stanici
ISS Fan Club - Frekvence ISS
Vstup do Wikipedie na APRS
APRS.org
Krok 6: Závěrečné myšlenky…
Byl to zábavný projekt s velmi jednoduchým hardwarem.
Je pár věcí, které bych chtěl změnit, ale celkově jsem s výsledky velmi spokojený.
Věci, které je třeba změnit:
1) Vymyslete způsob, jak předávat předpovědi v místním čase, nikoli v UTC
2) Najděte lepší čísla barevných kódů pro oranžovou a žlutou.
3) Aktualizace bude fungovat s deskou ESP32 X s OLED a 4 neopixely.
Pokud vám tento nebo některý z mých projektů připadá užitečný nebo příjemný, podpořte mě.
Cokoli, co dostanu, jde koupit více dílů a vytvořit více/lepších projektů.
www.patreon.com/kd8bxp
ko-fi.com/lfmiller
Doporučuje:
Jednoduchý stav kopce a rezervační systém s integrací Slack: 12 kroků (s obrázky)
Jednoduchý kopovací stavový a rezervační systém s integrací Slack: Ve společnosti, kde pracuji, je stůl pro kicker. Společnost zabírá mnoho pater a některým zaměstnancům trvá až 3 minuty, než se dostanou ke stolu a … aby si uvědomili, že stůl je již obsazen. Proto vznikla myšlenka postavit ki
Oznamovací lampa Kodak Pi ze 30. let: 6 kroků (s obrázky)
Oznamovací lampa Kodak Pi ze 30. let 20. století: Toto je Kodak Table Viewer ze 30. let 20. století, který jsem přizpůsobil tak, aby zobrazoval oznámení a výstrahy pomocí řady jasných barev. Světelným zdrojem je Unicorn pHAT, programovatelná matice jasných LED diod, který je řízen Raspberry Pi Zero W, který
Oznamovací schránka: 7 kroků
Poštovní schránka s oznámeními: Od: Noah Smith a Harry Singh
Oznamovací vlajka - skvělý úvod do Wi -Fi, IFTTT a Huzzah ESP8266: 9 kroků (s obrázky)
Oznamovací vlajka - skvělý úvod do Wi -Fi, IFTTT a Huzzah ESP8266: Vždy mi chybí důležité věci … tak jsem vytvořil vlajku. Zařízení pro internet věcí (IoT), které mě upozorní nebo připomene tyto důležité věci! Nyní s letmým pohledem na můj stůl vidím, jestli … Mám e -mail, o kterém jsem byl zmíněn ve twe
Jak správně připojit a nastavit mini HiFi policový systém (zvukový systém): 8 kroků (s obrázky)
Jak správně připojit a nastavit mini HiFi policový systém (zvukový systém): Jsem člověk, kterého baví učit se o elektrotechnice. Jsem střední škola na Ann Richards School for Young Women Leaders. Dělám tento návod, abych pomohl každému, kdo si chce užít svou hudbu z Mini LG HiFi Shelf Syste