İçindekiler:

Basit ISS Bildirim Sistemi: 6 Adım (Resimlerle)
Basit ISS Bildirim Sistemi: 6 Adım (Resimlerle)

Video: Basit ISS Bildirim Sistemi: 6 Adım (Resimlerle)

Video: Basit ISS Bildirim Sistemi: 6 Adım (Resimlerle)
Video: Gözümün içine piercing yaptırdım 2024, Kasım
Anonim
Basit ISS Bildirim Sistemi
Basit ISS Bildirim Sistemi
Basit ISS Bildirim Sistemi
Basit ISS Bildirim Sistemi

Uluslararası Uzay İstasyonu nedir ve nerede olduğunu neden tahmin etmek istiyorsunuz?

İlk soruyu cevaplamak için bir cevap için NASA web sitesine bakabiliriz. Hangisi kısaca:

Uluslararası Uzay İstasyonu büyük bir uzay aracıdır. Dünya'nın etrafında dönüyor. Astronotların yaşadığı bir evdir. Uzay istasyonu aynı zamanda bir bilim laboratuvarıdır. Birçok ülke onu inşa etmek için birlikte çalıştı. Ayrıca onu kullanmak için birlikte çalışırlar. Uzay istasyonu birçok parçadan oluşur. Parçalar astronotlar tarafından uzayda bir araya getirildi. Uzay istasyonunun yörüngesi Dünya'nın yaklaşık 220 mil üzerindedir. NASA, uzayda yaşamayı ve çalışmayı öğrenmek için istasyonu kullanıyor. Bu dersler NASA'nın uzayı keşfetmesine yardımcı olacak.

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

İkinci soruyu cevaplamak biraz daha zor - Ama deneyeceğim.

Ben bir Amatör Radyo Operatörüyüm (veya Ham Radyo Operatörü) - her zaman eğlenceli bulduğum bir şey, düşük güçlü (5 watt veya daha az) bir el telsizi kullanmak ve yörüngedeki uydularla iletişim kurmaktı. ISS gemide radyo ekipmanına sahiptir.

Jambon günlerimin başlarında, uydularla biraz iletişim kurarım, hatta sadece lastik ördek anteniyle bazı bağlantılar kurarım - yapması çok zor bir şey. APRS (otomatik paket raporlama sistemi) kullanarak ISS ile birkaç bağlantı kurdum. 2013'teydi - uzun zaman önce, o zamandan beri çok hareketsizdim. Sana geri dönmek istediğim bir şeydi.

2013'te komut satırı için bana ISS'nin yerini söyleyecek ve ne zaman biteceğini tahmin etmeye yardımcı olacak birkaç PHP betiği yazdım. O zaman bir göz kırpma çubuğu kullandım ve ISS yaklaştıkça renk değiştirmesini sağladım. https://open-notify.org'daki çalışma ve API'si sayesinde bunları yapmak oldukça kolaydı.

2018 - 5 yıl sonra nihayet bu PHP'yi Arduino C'ye dönüştürdüm (aslında yapması çok kolaydı.)

Projem bir D-Duino kullanıyor (ki bu gerçekten yerleşik bir OLED'li bir NodeMCU'dur), hepsi bu kadar.

Hâlâ https://open-notify.org adresinden aynı API'yi kullanıyorum

Ayrıca bir D1 Mini ve bir WS2812 Kalkanı kullanmak için bazı kodlar yazdım (bununla ilgili daha fazla bilgi için Süpervizör Eric Projeme bakın).

Adım 1: Basit Donanım

Basit Donanım
Basit Donanım

D-Duino (NodeMCU)

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

İşte bu, gerekli olan tek şey bu. Elbette diğer donanımları da kullanabilirsiniz - bu, I2C OLED kullanabilen herhangi bir ESP8266 cihazında çalışmalıdır. D-Duino, çoğunlukla OLED'in eklenmesiyle bir NodeMCU'dur.

Kod https://github.com/kd8bxp/Simple-ISS-Notification-… adresinde bulunabilir.

Arduino IDE'de ESP8266 kartlarının kurulu olması gerekir. Talimatlar burada bulunabilir:

(en kolay yol pano yöneticisidir)

Ayrıca bazı kitaplıklara da ihtiyacınız olacak - bunların hepsinin artık kitaplık yöneticisinde bulunabileceğini düşünüyorum (ancak bundan %100 emin değilim).

Gerekli Kütüphaneler: ArduinoJson.h

Adafruit_NeoPixel

WifiManager.h

TimeLib.h

esp8266-oled-ssd1306

(TIMELib'i nereden aldığımdan emin değilim ve belki Arduino IDE'ye dahil edilmiştir?)

Bunları kurmanın en basit yolu kütüphane yöneticisini kullanmaktır. Değilse, her kitaplıktaki talimatları izleyin.

2. Adım: Eskizler

Eskizler
Eskizler

Şu anda github deposuna dahil edilmiş iki eskiz ve üç PHP betiği var.

D-Duino donanımıyla yukarıdan kullanılması gereken DDuino_ISS_notification.

Ve "People of Earth" projesindeki önceki "Supervisor Eric"imi kullanan EricISS notification. (Daha sonra bu konuda daha fazlası)

Her iki çizimde de 30. satıra yakın (veya ona gerçekten yakın bir yerde) - mylat ve mylon adında birkaç değişken değişken göreceksiniz. Enlem ve Boylam bilgileriniz ile bu iki çizgiyi değiştirmeniz gerekecektir - Enlem ve Boylamınızı bilmiyorsanız bu web sitesini kullanabilirsiniz https://www.latlong.net Kasabanızın merkezi iyi olmalıdır. Çıkardığınız enlem veya boylamla eşleşmesi gerekmez. Eskizler, ABD Millerinde ISS'nin yaklaşık mesafesini bulmak için biraz yuvarlama ve diğer matematik işlemleri yapıyor.

Bence skeçlerde değiştirilmesi gereken tek şey bu.

Mesafe hesaplaması için matematik, iki nokta arasındaki büyük daire mesafesine dayanmaktadır ve resmi burada bulunabilir -

Bu site, iki enlem ve boylam arasındaki mesafenin yanı sıra kerteriz arasındaki mesafenin nasıl hesaplanacağı hakkında birçok bilgi sağlar. Bunun için herhangi bir rulman hesaplaması kullanmıyoruz.

Formalin çalışması için bir teta almamız ve bir dereceyi radyant'a çevirmemiz gerekir, bunun tersi de radyantı dereceye çevirmemiz gerekir. Arduino o kadar iyi matematik yapmadığı için, dönüşümlerle biraz yardım etmemiz gerekiyor.

geçersiz getDistance() {

float teta, dist, mil;

teta = mylon - isslon;

dist = günah(deg2rad(mylat)) * günah(deg2rad(isslat)) + cos(deg2rad(mylat)) * cos(deg2rad(isslat)) * cos(deg2rad(theta));

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

mil = uzak * 60 * 1.1515;

mesafe = mil;

}

float deg2rad(float n) {

kayan radyan = (n * 71)/4068;

dönüş radyan;

}

float rad2deg(float n) {

kayan nokta derecesi = (n*4068)/71;

dönüş derecesi;

}

Matematiğin büyük kısmı 127. satırın yakınında yapılır - EĞER farklı bir mesafe istiyorsanız (KM veya Deniz Mili)

"mil = dist * 60 * 1.1515;" değerini değiştirebilirsiniz. hat.

KM için "mil = (dist*60*1.1155) * 1.609344;" gibi bir şey olurdu.

Deniz Milleri için "mil = (dist*60*1.1155)*0.8684;" gibi bir şey

Muhtemelen, yeni ölçümünüze göre kilometreler yazan Seri baskı satırını ve OLED ekran satırını da değiştirmek isteyeceksiniz.

Bu, DDuino_ISS_notification taslağındaki satır 86 ve 96'dır.

3. Adım: Eric Kroki

Eric Kroki
Eric Kroki
Eric Kroki
Eric Kroki
Eric Kroki
Eric Kroki

Süpervizör Eric, TBS TV People of Earth'ten bir AI veya uzaylı, Lütfen yapımdaki diğer Eğitilebilir Tabloma bakın.

Bu bildirim sistemi için ihtiyacınız olan en temel şey, bir D1 Mini ve WS2812 kalkanıdır - güzel bir lensli güzel bir kutuda bulundurmak, iyi görünmesini sağlar.

Bir kez daha, WS2812 pikselli herhangi bir ESP8266 çalışmalıdır, burada gerçekten bir sihir yoktur - WS2812 kalkanı D1 mini'deki D2'ye bağlıdır (bunun NodeMCU panolarında ve belki diğer ESP8266 panolarında pin 4 olduğuna inanıyorum).

Kroki için:

Yukarıdaki gibi, 27. satırın yakınındaki çizimde enlem ve boylamınızı değiştirmeniz gerekecektir. Ve yukarıdaki gibi, bu çizim de enlem ve boylamlar arasındaki mesafeyi hesaplar. Yukarıdaki çizimden farklı olarak, bu tek ekran WS2812 Neopiksel LED'lidir.

Matematik satır 96'ya yakındır, ancak bunun dışında yukarıdakiyle aynıdır. Neler olup bittiğini görmek istiyorsanız hala seri çıktı var. Bu Sketch yalnızca ISS konum ve mesafe hesaplamaları yapar - geçiş tahminlerini veya uzayda kaç kişinin olduğunu yapmaz.

* Unutulmamalıdır ki buradaki mesafe Mil cinsindendir, isterseniz değiştirilebilir, ancak birimleriniz için birkaç değişiklik daha yapmanız gerekecektir. *

Yakın Hat 116:

geçersiz setColor() {

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

if (mesafe =1151) {colorDisplay(strip. Color(255, 153, 0), p);} //bana daha sarı görünüyor

if (mesafe = 951) {colorDisplay(strip. Color(255, 255, 0), p);} //bana yeşil/sarı görünüyor

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

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

}

Birimler mil cinsindendir ve KM veya NM olarak değiştirmeniz gerekiyorsa bu satırları da değiştirmek isteyeceksiniz.

Burada neler oluyor, 1350 milde, ISS tam ufukta ve radyodan transponderleri duymaya başlayabilirsiniz - bu harika değil ve bu noktada iletişim gerçekten olamaz. LED KIRMIZIya dönüyor - bu bir uyarı - ISS yaklaşıyor.

Kısa bir süre sonra veya ISS 1150 ile 1200 mil arasındaysa, LED turuncuya döner - bu gerçekten daha sarı görünür ancak turuncu olması desteklenir. - 1150 mil'de biraz daha fazla duymaya başlamalısınız - 5 watt HT'de muhtemelen iki yönlü iletişim mümkün olmayacaktır.

950 ila 1150 mil arasında - LED sarıya dönmelidir - temas kurmak için iyi bir şansınız var - hala harika değil, ama en azından bu noktada mümkün (Sarı bana sarıdan daha yeşil görünüyor - bu yüzden çalışacak başka bir şey var) üzerinde)

950 milin altında LED sabit YEŞİL olacaktır - ve iki yönlü temas kurulabilir.

ISS LED'den uzaklaştıkça Yeşil'den Sarı'ya, Turuncu'dan Kırmızı'ya ve ardından son olarak KAPALI'ya gidecektir.

Burada not edilmelidir, bunların hepsi çok hızlı gerçekleşir - bölgemdeki geçişlerin çoğu 10 dakikadan kısa sürer ve normal kullanılabilir temas süresi 5 dakikanın altındadır.

Ayrıca ISS'nin konumunu değiştirebileceğine ve API'nin güncellenip güncellenmeyebileceğine dikkat edilmelidir - bu nedenle yeşil ışık yansa bile - hiçbir şey duymayabilirsiniz.

** Amatör ekipmanı çalıştırmak isteğe bağlı ve gönüllü olarak da yapılır ve ekipmanı çalıştırmaya çalışırken güç için veya yapmaları gerekenlerden dolayı kapatmak zorunda kaldıkları zamanlar vardır. AMsat veya ARISS web sitelerini kontrol etmek her zaman iyi bir fikirdir **

Adım 4: PHP Kodu

PHP Kodu
PHP Kodu

Github deposuna 2013'ten itibaren PHP kodumu ekledim.

Kod, CLI'den (veya Komut satırından) çalışacak şekilde tasarlanmıştır. Bunları yazalı epey oldu ama sanırım tek gereklilik JSON uzantılarının etkinleştirilmesiydi.

Komut dosyaları hala çalışıyor ve bunları çalıştırmak istiyorsanız, bunu yapmaktan çekinmeyin!

Windows Kullanıcıları için burada PHP https://windows.php.net/ kurulumu hakkında bilgi bulunmaktadır.

CLI sürümünü yüklediğinizden emin olun. Yüklerken hangi uzantıların açılacağını seçebileceğinizi düşünüyorum.

Linux kullanıcıları dağıtımınıza bağlıdır - Ubuntu tabanlı bir dağıtım kullanıyorum - ve paket yöneticim olarak sinaptik.

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

Bunlarla CURL kullandığımı sanmıyorum, bu yüzden buna ihtiyacınız olmayabilir. Geri kalanı, seçtiğiniz paket yöneticinizde veya https://php.net web sitesinde bulunmalıdır.

Komut dosyalarının ikisinin enlem ve boylamınızla düzenlenmesi gerekecek - bunlar çok uzun değil ve değiştirilmesi gerekenler komut dosyasının tam üstünde. Bunlar iss-location.php ve iss-pass-api.php'dir.

iss-location.php'de eski flash stick çağrılarım kaldı - bunların artık işe yaradığından emin değilim - ama LED'i "Eric Bildirimi" ile yaptığım gibi değiştirdiğimi görebilirsiniz. Herhangi bir soruna neden olduklarını sanmıyorum, ancak bunları yorumlamak isteyebilirsiniz.

iss-pass-api.php epoch zamanını kullanır ve tahmin edilen geçişlerin yerel zamanını verir. Dürüst olmak gerekirse, DDuino sürümüyle karşılaştırıldığında bu betiğin PHP sürümünü tercih ediyorum (şu anda yalnızca UTC tahminlerini yapıyor)

PHP sürümü ayrıca görüntülenmek için daha iyi biçimlendirilmiştir - ancak bu gerçekten küçük bir şeydir.

Son PHP betiği iss-people.php - ve isimleri ve hangi uzay gemisinde olduklarını gösterecek. Tüm yaptığı bu. (Ve bu bilgi sık sık değişmez)

PHP betiğini komut satırından çalıştırmanın temelleri şunlardır:

$ php iss-people.php

PHP dosyaları metin dosyalarıdır ve herhangi bir metin düzenleyici tarafından açılabilir. Windows kullanıcıları, bunları hem satır hem de satır dönüşleri olsun diye kaydettiğimi düşünüyorum. EĞER https://www.editpadlite.com/ onlar için işe yarayabilir.

Adım 5: Videolar ve Daha Fazla ISS ve Ham Bilgisi

Image
Image

Amerika Birleşik Devletleri'nde Jambon Lisansı Alma:

ABD'de değil mi? Her ülkenin kendi kuralları ve lisans kılavuzları vardır - iletişiminizi kimin yönettiğini kontrol edin (Burada ABD'de FCC Federal İletişim Komisyonu budur)

Enlem ve boylam noktaları arasındaki mesafeyi, yönü ve daha fazlasını hesaplayın.

Open Notify'ın çok kullanışlı API'leri olmadan bunu yapmak çok daha zor olurdu.

Uzay İstasyonu Yerden Nasıl Görülür?

AMSAT Radyo Amatör Uydu

ISS'de Radyo Hakkında AMSAT Bilgileri

ARISS Amatör Radyo Uluslararası Uzay İstasyonunda

ISS Fan Club - ISS Frekansları

APRS'de Wikipedia Girişi

APRS.org

Adım 6: Son Düşünceler…

Bu çok basit bir donanıma sahip eğlenceli bir projeydi.

Değiştirmek istediğim birkaç şey var ama genel olarak sonuçlardan çok memnunum.

Değiştirilmesi gereken şeyler:

1) UTC'de değil, yerel saatte geçen tahminlere sahip olmanın bir yolunu bulun

2) Turuncu ve sarı için daha iyi renk kodu numaraları bulun.

3) OLED ve 4 Neopiksel ile ESP32 X-board ile çalışacak şekilde güncelleyin.

Bunu veya herhangi bir projemi faydalı veya eğlenceli bulursanız, lütfen beni destekleyin.

Aldığım her şey daha fazla parça satın almak ve daha fazla/daha iyi projeler yapmak için gidiyor.

www.patreon.com/kd8bxp

ko-fi.com/lfmiller

Önerilen: