Mündəricat:

Sadə ISS Bildiriş Sistemi: 6 Adım (Şəkillərlə birlikdə)
Sadə ISS Bildiriş Sistemi: 6 Adım (Şəkillərlə birlikdə)

Video: Sadə ISS Bildiriş Sistemi: 6 Adım (Şəkillərlə birlikdə)

Video: Sadə ISS Bildiriş Sistemi: 6 Adım (Şəkillərlə birlikdə)
Video: Ən çətin məntiq testi.😉 Kim tapsa 1-ci yer. Yalnız 1 nəfər.❗❗ 2024, Iyul
Anonim
Sadə ISS Bildiriş Sistemi
Sadə ISS Bildiriş Sistemi
Sadə ISS Bildiriş Sistemi
Sadə ISS Bildiriş Sistemi

Beynəlxalq Kosmik Stansiya nədir və niyə harada olduğunu proqnozlaşdırmaq istəyirsiniz?

İlk suala cavab vermək üçün NASA veb saytına baxa bilərik. Qısacası budur:

Beynəlxalq Kosmik Stansiya böyük bir kosmik gəmidir. Yerin ətrafında fırlanır. Astronavtların yaşadığı bir evdir. Kosmik stansiya eyni zamanda bir elm laboratoriyasıdır. Bir çox ölkələr onu qurmaq üçün birlikdə çalışdılar. Kosmos stansiyası bir çox hissədən hazırlanmışdır. Parçalar kosmonavtlar tərəfindən kosmosda bir araya gətirildi. Kosmik stansiyanın orbiti Yerdən təxminən 220 mil yüksəklikdədir. NASA kosmosda yaşamaq və işləmək üçün bu stansiyadan istifadə edir. Bu dərslər NASA -nın kosmosu araşdırmasına kömək edəcək.

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

İkinci suala cavab vermək bir az çətindir - Amma çalışacam.

Mən Həvəskar Radio Operatoruyam (və ya Ham Radio Operatoruyam) - həmişə əyləndiyim bir şey, aşağı gücə malik (5 vat və ya daha az) radio istifadə etmək və orbitə çıxan peyklərlə ünsiyyət qurmaq idi. ISS -in göyərtəsində radio avadanlığı var.

Ham günlərimin əvvəllərində peyklərlə bir az ünsiyyət qurmaq üçün istifadə edirəm, hətta rezin ördək antenası ilə də təmas qururam - bunu etmək çox çətindir. ISS ilə APRS (avtomatik paket hesabat sistemi) istifadə edərək bir neçə əlaqə qurdum. Bu, 2013 -cü ildə idi - uzun müddət əvvəl, o vaxtdan bəri çox fəaliyyətsizəm. Sənə qayıtmaq istədiyim bir şey.

2013 -cü ildə mənə ISS -in yerini bildirəcək və bunun nə vaxt başa çatacağını proqnozlaşdırmağa kömək edəcək bir neçə PHP komanda xətti yazdım. O vaxt bir çırpma çubuğu istifadə etdim və ISS yaxınlaşdıqca rənglərini dəyişdi. Http://open-notify.org saytındakı iş və API sayəsində bunları etmək olduqca asan idi.

2018 - 5 il sonra nəhayət bu PHP -ni Arduino C -yə çevirdim (əslində bunu etmək çox asan idi.)

Layihəm bir D-Duino (həqiqətən də bir OLED ilə NodeMCU olan) istifadə edir, hamısı budur.

Hələ də https://open-notify.org saytından eyni API-dən istifadə edirəm

D1 Mini və WS2812 Shield istifadə etmək üçün bəzi kodlar da yazdım (bu barədə daha çox məlumat üçün Supervisor Eric Project -ə baxın).

Addım 1: Sadə Avadanlıq

Sadə Avadanlıq
Sadə Avadanlıq

D-Duino (NodeMCU)

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

Budur, tələb olunanların hamısı budur. Əlbəttə ki, digər cihazlardan istifadə edə bilərsiniz - bu, I2C OLED istifadə edə bilən hər hansı bir ESP8266 cihazında işləməlidir. D-Duino, əksər hallarda OLED ilə NodeMCU-dur.

Kodu https://github.com/kd8bxp/Simple-ISS-Notification-… tapa bilərsiniz.

Arduino IDE -də ESP8266 lövhələrini quraşdırmalısınız. Təlimatları burada tapa bilərsiniz:

(ən asan yol lövhə meneceri ilədir)

Bəzi kitabxanalara da ehtiyacınız olacaq - düşünürəm ki, bunların hamısını indi kitabxana menecerində tapa bilərsiniz (amma buna 100% əmin deyiləm).

Lazım olan kitabxanalar: ArduinoJson.h

Adafruit_NeoPixel

WifiManager.h

TimeLib.h

esp8266-oled-ssd1306

(TImeLib -i haradan aldığımdan əmin deyiləm və bəlkə də Arduino IDE ilə birlikdədir?)

Bunları qurmağın ən asan yolu kitabxana menecerindən istifadə etməkdir. Əks təqdirdə, hər kitabxananın təlimatlarına əməl edin.

Addım 2: Eskizlər

Eskizlər
Eskizlər

Hal -hazırda github anbarına iki eskiz və üç PHP skript daxil edilmişdir.

Yuxarıdan D-Duino aparatı ilə istifadə edilməli olan DDuino_ISS_notification.

Və "Earth People" layihəsindəki əvvəlki "Supervisor Eric" dən istifadə edən EricISSnotification. (Bu barədə daha sonra)

30 -cu xəttin yaxınlığındakı hər iki eskizdə (və ya ona yaxın bir yerdə) - Mylat və mylon adlı bir neçə dəyişkən dəyişən görəcəksiniz. Bu iki xətti Enlem və Boylam ilə dəyişdirməlisiniz - Lat və Lon dilinizi bilmirsinizsə, bu veb saytdan istifadə edə bilərsiniz https://www.latlong.net Şəhərinizin mərkəzi yaxşı olmalıdır. Çıxarılan enlem və ya boylamla uyğun gəlməməlidir. Eskizlər, ABŞ Miles -də ISS -in təxmini məsafəsini tapmaq üçün bir qədər yuvarlaqlaşdırma və digər riyazi hesablamalar aparır.

İnanıram ki, eskizlərdə dəyişdirilməsi lazım olan tək şey budur.

Məsafənin hesablanması üçün riyaziyyat iki nöqtə arasındakı böyük dairə məsafəsinə əsaslanır və rəsmi burada tapa bilərsiniz-https://www.movable-type.co.uk/scripts/latlong.htm…

Bu sayt, iki enlem və boylam arasındakı məsafəni hesablamaqla yanaşı, daşıyıcı haqqında çoxlu məlumat verir. Bunun üçün heç bir hesablama istifadə etmirik.

Formalın işləməsi üçün bir teta əldə etməliyik və müəyyən dərəcədə parlaqlığa, əksinə dərəcəyə qədər parlaq olmalıyıq. Arduino riyaziyyatı o qədər də yaxşı bacarmadığından, konversiyalara bir az kömək etməliyik.

void getDistance () {

üzmək teta, dist, mil;

teta = mylon - islon;

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

dist = acos (dist); dist = rad2deg (dist);

mil = dist * 60 * 1.1515;

məsafə = mil;

}

float deg2rad (float n) {

float radian = (n * 71)/4068;

radian geri;

}

float rad2deg (float n) {

float dərəcəsi = (n*4068)/71;

qaytarılma dərəcəsi;

}

Riyaziyyatın böyük hissəsi 127 -ci xəttin yaxınlığında aparılır - Fərqli bir məsafə istəsəniz (KM və ya Dəniz Mili deyin)

"mil = dist * 60 * 1.1515;" dəyişdirə bilərsiniz. xətt

KM üçün "mil = (dist*60*1.1515)*1.609344;" kimi bir şey olardı.

Dəniz Milləri üçün "mil = (dist*60*1.1515)*0.8684;"

Yəqin ki, Serial çap xəttini və OLED ekran xəttini yeni ölçünüzə mil deyən dəyişdirmək istəyəcəksiniz.

DDuino_ISS_notification eskizində 86 və 96 -cı sətirlərdir.

Addım 3: Eric Sketch

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

Nəzarətçi Eric, TBS TV People of Earth -dən bir AI və ya yad bir insandır, Zəhmət olmasa digər təlimatçılığa baxın.

Bu bildiriş sistemi üçün ehtiyac duyduğunuz əsas şey D1 Mini və WS2812 qalxanıdır - gözəl bir lens ilə gözəl bir qutuda olması onu gözəl edir.

Bir daha, WS2812 pikselli hər hansı bir ESP8266 işləməlidir, burada heç bir sehr yoxdur - WS2812 qalxanı D1 mini üzərindəki D2 -yə bağlıdır (NodeMCU lövhələrində pin 4 olduğuna inanıram və bəlkə də digər ESP8266 lövhələri).

Eskiz üçün:

Yuxarıda olduğu kimi, 27 -ci xəttin yaxınlığındakı eskizdə enleminizi və boylamınızı dəyişdirməlisiniz. Və yuxarıdakı kimi bu eskiz də enlik və uzunluqlar arasındakı məsafəni hesablayır. Yuxarıdakı eskizdən fərqli olaraq, bu tək ekran WS2812 Neopixel LED -dir.

Riyaziyyat 96 -cı xəttin yaxınlığındadır, lakin əks halda yuxarıdakı kimidir. Nə baş verdiyini görmək istəyirsinizsə hələ də serial çıxışı var. Bu eskiz yalnız ISS -in yeri və məsafə hesablamalarını həyata keçirir - nə keçid proqnozlarını, nə də kosmosda neçə adamın olduğunu bilmir.

* Qeyd etmək lazımdır ki, buradakı məsafə Millərdədir, istəsəniz dəyişdirilə bilər, ancaq vahidləriniz üçün daha bir neçə dəyişiklik etməlisiniz. *

116 nömrəli xəttin yaxınlığında:

boşluq setColor () {

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

if (məsafə = 1151) {colorDisplay (strip. Color (255, 153, 0), p);} // mənə daha çox sarı görünür

if (məsafə = 951) {colorDisplay (strip. Color (255, 255, 0), p);} // mənə yaşıl/sarı görünür

if (məsafə <= 950) {colorDisplay (strip. Color (0, 255, 0), p);}

if (məsafə> = 1351) {colorDisplay (strip. Color (0, 0, 0), p);}

}

Vahidlər millərlədir və KM və ya NM -ə keçmək lazımdırsa, bu xətləri də dəyişdirmək istəyəcəksiniz.

Burada nələr baş verir, 1350 mil məsafədə, ISS yalnız üfüqdədir və yalnız radiodan transponderləri eşitməyə başlaya bilərsiniz - əla deyil və bu nöqtədə ünsiyyət əslində baş verə bilməz. LED QIRMIZI dönür - bu bir xəbərdir - ISS yaxınlaşır.

Qısa bir müddət sonra və ya ISS 1150 ilə 1200 mil arasında olarsa, LED narıncı rəngə çevriləcək - bu, həqiqətən daha sarı görünür, ancaq narıncı olmaq üçün dəstəkdir. - 1150 mil məsafədə bir az daha çox eşitməyə başlamalısınız - 5 vatt HT -də iki tərəfli əlaqə hələ də mümkün olmayacaq.

950 ilə 1150 mil arasında - LED sarıya dönməlidir - əlaqə qurmaq üçün layiqli bir şansınız var - hələ də əla deyil, amma bu nöqtədə ən azından mümkündür (Sarı mənə sarıdan daha yaşıl görünür - buna görə başqa bir iş görmək lazımdır) aktiv)

950 milin altında LED möhkəm bir YEŞİL olacaq və iki tərəfli kontaktlar edilə bilər.

ISS LED -dən uzaqlaşdıqca yaşıldan sarıya narıncıdan qırmızıya və nəhayət OFF olacaq.

Burada qeyd edilməlidir ki, bunların hamısı çox tez baş verir - mənim ərazimdəki keçidlərin çoxu 10 dəqiqədən çox davam edir və normal istifadədə olan əlaqə müddəti 5 dəqiqədən azdır.

ISS -in yerini dəyişə biləcəyini və API -nin yenilənə biləcəyini və ya olmaya biləcəyini də qeyd etmək lazımdır - buna görə də yaşıl işıq yansanız belə - heç nə eşitməyəcəksiniz.

** Həvəskar avadanlıqların işə salınması həm könüllü, həm də könüllü olaraq həyata keçirilir və avadanlıqları işə salmağa çalışarkən, güc üçün və ya etməli olduqları şeylər üzündən onu bağlamalı olduqları vaxtlar olur. AMsat və ya ARISS veb saytlarını yoxlamaq həmişə yaxşı bir fikirdir **

Addım 4: PHP kodu

PHP kodu
PHP kodu

Github anbarına 2013 -cü ildən PHP kodumu daxil etdim.

Kod, CLI (və ya Əmr sətrindən) çalışmaq üçün hazırlanmışdır. Bunları yazmağımdan bir müddət keçdi, amma düşünürəm ki, yeganə tələb JSON uzantılarının aktiv olmasıdır.

Ssenarilər hələ də işləyir və onları işlətmək istəyirsinizsə, bunu etməkdən çekinmeyin!

Windows İstifadəçiləri üçün burada PHP -nin quraşdırılması haqqında məlumat var

CLI versiyasını quraşdırdığınızdan əmin olun. Düşünürəm ki, quraşdırarkən hansı uzantıları açacağınızı seçə bilərsiniz.

Linux istifadəçiləri, distribyutorunuzdan asılıdır - paket idarəçim olaraq Ubuntu əsaslı bir distro istifadə edirəm - və sinaptik.

Php7.0-common, php7.0-json, php7.0-cli, php7.0-curl isteyeceksiniz

Bunlarla CURL istifadə etdiyimi düşünmürəm, buna görə ehtiyacınız olmaya bilər. Qalanları seçdiyiniz paketdə və ya https://php.net saytında tapa bilərsiniz.

Ssenarilərdən ikisini enlem və boylamla birlikdə düzəltmək lazımdır - çox uzun deyil və dəyişdirilməsi lazım olan şey skriptin yuxarı hissəsindədir. Bunlar iss-location.php və iss-pass-api.php-dir

iss -location.php -də mənim köhnə yanıb -sönən çubuq zənglərim var - bunların işlədiyinə əmin deyiləm - ancaq LED -i "Eric Bildirişim" ilə eyni şəkildə dəyişdirdiyimi görə bilərsiniz. Heç bir problem yaratdıqlarını düşünmürəm, amma bunları şərh etmək istəyə bilərsiniz.

iss-pass-api.php epoxadan istifadə edir və proqnozlaşdırılan keçidlərin yerli vaxtını verir. Düzünü desəm, DDuino versiyası ilə müqayisədə bu skriptin PHP versiyasına üstünlük verirəm (hazırda yalnız UTC proqnozlarını verir)

PHP versiyası da göstərmək üçün daha gözəl formatda hazırlanmışdır - amma bu, həqiqətən kiçik bir şeydir.

Son PHP skripti iss -people.php - və adları və hansı kosmik gəmidə olduqlarını göstərəcək. Etdiyi hər şey budur. (Və bu məlumatlar tez -tez dəyişmir)

PHP skriptini əmr satırından işə salmağın əsasları bunlardır:

$ php iss-people.php

PHP faylları mətn sənədləridir və istənilən mətn redaktoru tərəfindən açıla bilər. Windows istifadəçiləri bunları saxladığımı düşünürəm ki, həm xətt, həm də vaqon geri qaytarılsın. Əks halda https://www.editpadlite.com/ onlar üçün işləyə bilər.

Addım 5: Videolar və daha çox ISS və Ham məlumatı

Image
Image

Birləşmiş Ştatlarda Ham Lisenziyası əldə etmək:

ABŞ -da deyil? Hər bir ölkənin öz qaydaları və lisenziya təlimatları var - ünsiyyətinizi kimin idarə etdiyini yoxlayın (burada ABŞ -da FCC Federal Rabitə Komissiyası var)

Enlem və boylam nöqtələri arasındakı məsafəni, yatağı və daha çoxunu hesablayın.

Open Notify -dan çox faydalı API -lərlə bunu etmək çox çətin olardı

Kosmos Stansiyasını yerdən necə görmək olar.

AMSAT Radio Həvəskar Peyk

ISS -də Radioda AMSAT Məlumatı

Beynəlxalq Kosmos Stansiyasında ARISS Həvəskar Radio

ISS Fan Klubu - ISS Tezlikləri

APRS -də Vikipediyaya giriş

APRS.org

Addım 6: Son Fikirlər …

Bu çox sadə bir aparatla əyləncəli bir layihə idi.

Dəyişdirmək istədiyim bir neçə şey var, amma ümumilikdə nəticələrdən çox məmnunam.

Dəyişdirilməsi lazım olan şeylər:

1) UTC yox, yerli vaxtda proqnozlar verməyin yolunu tapın

2) Narıncı və sarı üçün daha yaxşı rəng kodu nömrələri tapın.

3) OLED və 4 Neopixel ilə ESP32 X-board ilə işləmək üçün yeniləyin.

Bu və ya digər layihələrimi faydalı və ya zövqlü görürsünüzsə, mənə dəstək olun.

Əldə etdiyim hər şey daha çox hissə almaq və daha çox/daha yaxşı layihələr etmək üçün gedir.

www.patreon.com/kd8bxp

ko-fi.com/lfmiller

Tövsiyə: