Talaan ng mga Nilalaman:

Simpleng Sistema ng Notipikasyon ng ISS: 6 na Hakbang (na may Mga Larawan)
Simpleng Sistema ng Notipikasyon ng ISS: 6 na Hakbang (na may Mga Larawan)

Video: Simpleng Sistema ng Notipikasyon ng ISS: 6 na Hakbang (na may Mga Larawan)

Video: Simpleng Sistema ng Notipikasyon ng ISS: 6 na Hakbang (na may Mga Larawan)
Video: Paano Mababasa Ang Isip Ng Isang Tao? (14 PSYCHOLOGICAL TIPS) 2024, Nobyembre
Anonim
Simpleng ISS Notification System
Simpleng ISS Notification System
Simpleng ISS Notification System
Simpleng ISS Notification System

Ano ang International Space Station at Bakit mo nais hulaan kung nasaan ito?

Upang sagutin ang unang katanungan maaari kaming tumingin sa website ng NASA para sa isang sagot. Alin sa maikling salita ay:

Ang International Space Station ay isang malaking spacecraft. Umiikot ito sa paligid ng Earth. Ito ay isang bahay kung saan nakatira ang mga astronaut. Ang istasyon ng kalawakan ay isang lab sa agham din. Maraming mga bansa ang nagtulungan upang mabuo ito. Nagtutulungan din sila upang magamit ito. Ang space station ay gawa sa maraming mga piraso. Ang mga piraso ay pinagsama sa kalawakan ng mga astronaut. Ang orbit ng istasyon ng space ay halos 220 milya sa itaas ng Earth. Ginagamit ng NASA ang istasyon upang malaman ang tungkol sa pamumuhay at pagtatrabaho sa kalawakan. Ang mga araling ito ay makakatulong sa NASA na galugarin ang kalawakan.

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

Ang pangalawang tanong ay medyo mahirap masagot - Ngunit susubukan ko.

Ako ay isang Amateur Radio Operator (o Ham Radio Operator) - isang bagay na palagi kong nahanap na masaya ay ang paggamit ng isang mababang pinagaganaang kamay na hawak (5 wat o mas kaunti) radyo at makipag-usap sa mga umiikot na satellite. Ang ISS ay mayroong kagamitan sa radyo.

Maaga sa aking mga araw ng ham ay ginagamit ko upang makipag-usap sa mga satellite nang kaunti, kahit na ang paggawa ng ilang mga contact na may goma lamang na antena - isang bagay na napakahirap gawin. Gumawa ako ng ilang mga contact sa ISS gamit ang APRS (awtomatikong packet system ng pag-uulat) Iyon ay noong 2013 - matagal na, matagal na akong hindi aktibo mula noon. Ito ay isang bagay na nais kong makabalik sa iyo.

Noong 2013 nagsulat ako ng isang pares ng mga script sa PHP para sa linya ng utos na sasabihin sa akin ang lokasyon ng ISS, at makakatulong upang mahulaan kung kailan ito magiging ulo. Sa oras na iyon gumamit ako ng isang blink stick, at binago ang mga kulay habang papalapit ang ISS. Salamat sa trabaho sa https://open-notify.org at sa kanyang API madali itong gawin.

2018 - 5 taon na ang lumipas sa wakas ay na-convert ko ang PHP na ito sa Arduino C (sa totoo lang napakadaling gawin.)

Gumagamit ang aking proyekto ng isang D-Duino (na talagang isang NodeMCU na may sakay na OLED), iyon lang ang mayroon dito.

Gumagamit pa rin ako ng parehong API mula sa

Sumulat din ako ng ilang code upang magamit ang isang D1 Mini at isang WS2812 Shield (tingnan ang aking Supervisor Eric Project para sa higit pa tungkol dito).

Hakbang 1: Simpleng Hardware

Simpleng Hardware
Simpleng Hardware

D-Duino (NodeMCU)

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

Iyon lang, iyon lang ang kailangan. Syempre maaari kang gumamit ng iba pang mga hardware - dapat itong gumana sa anumang aparato ng ESP8266 na maaaring gumamit ng isang I2C OLED. Ang D-Duino ay para sa pinaka bahagi ng isang NodeMCU na may pagdaragdag ng OLED.

Matatagpuan ang code

Kakailanganin mong magkaroon ng mga naka-install na board ng ESP8266 sa Arduino IDE. Ang mga tagubilin ay matatagpuan dito:

(ang pinakamadaling paraan ay kasama ang board manager)

Kakailanganin mo rin ang ilang mga silid-aklatan - Sa palagay ko lahat ng mga ito ay matatagpuan sa manager ng silid-aklatan ngayon (ngunit hindi ako 100% sigurado tungkol dito).

Kailangan ng Mga Aklatan: ArduinoJson.h

Adafruit_NeoPixel

WifiManager.h

TimeLib.h

esp8266-oled-ssd1306

(Hindi ako sigurado kung saan ako nakakuha ng TImeLib, at maaaring kasama ito sa Arduino IDE ??)

Ang pinakasimpleng paraan upang mai-install ang mga ito ay ang paggamit ng manager ng library. Kung hindi sundin ang mga tagubilin sa bawat silid-aklatan.

Hakbang 2: Ang Mga Sketch

Ang Sketch
Ang Sketch

Kasalukuyang may dalawang sketch at tatlong PHP script na kasama sa repository ng github.

DDuino_ISS_notification na dapat gamitin sa hardware na D-Duino mula sa itaas.

At EricISSnotification na gumagamit ng aking dating "Supervisor Eric" mula sa palabas na proyekto na "People of Earth". (Higit pa rito)

Sa parehong mga sketch na malapit sa linya 30 (o sa isang lugar na talagang malapit dito) - Makikita mo ang isang pares ng mga variable ng float na tinatawag na mylat at mylon. Kakailanganin mong baguhin ang dalawang linya na ito sa iyong Latitude at Longitude - kung hindi mo alam ang iyong Lat at Lon maaari mong gamitin ang website na ito https://www.latlong.net Ang sentro ng iyong bayan ay dapat maging maayos. Hindi nito kailangang tumugma sa iyong hinugot na latitude o longitude. Ang mga sketch ay gumagawa ng ilang pag-ikot, at iba pang matematika upang makabuo ng isang tinatayang distansya ang ISS sa U. S. Miles.

Naniniwala ako na ito lamang ang bagay na kailangang mabago sa mga sketch.

Ang matematika para sa pagkalkula ng distansya ay batay sa distansya ng mahusay na bilog sa pagitan ng dalawang puntos, at ang pormal ay matatagpuan dito -

Nagbibigay ang site na ito ng maraming impormasyon tungkol sa kung paano makalkula ang distansya sa pagitan ng dalawang latitude at longitude pati na rin ang tindig. Hindi kami gumagamit ng anumang mga kalkulasyon ng tindig para dito.

Para sa pormal na upang gumana kailangan namin upang makakuha ng isang theta at i-convert ang ilang mga degree sa maliwanag, at ang iba pang mga paraan sa paligid, nagliliwanag sa degree. Dahil hindi mahusay ang paggawa ng matematika ng Arduino, kailangan namin itong tulungan nang kaunti sa mga conversion.

void getDistance () {

float theta, dist, miles;

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

milya = dist * 60 * 1.1515;

distansya = milya;

}

float deg2rad (float n) {

float radian = (n * 71) / 4068;

ibalik ang radian;

}

float rad2deg (float n) {

float degree = (n * 4068) / 71;

pagbalik degree;

}

Ang karamihan sa mga matematika ay tapos na malapit sa linya 127 - KUNG nais mo ng ibang distansya (sabihin ang KM o Nautical Miles)

maaari mong baguhin ang "miles = dist * 60 * 1.1515;" linya

Para sa KM ito ay magiging isang bagay tulad ng "miles = (dist * 60 * 1.1515) * 1.609344;"

Para sa Nautical Miles isang bagay tulad ng "miles = (dist * 60 * 1.1515) * 0.8684;"

Marahil ay gugustuhin mo ring baguhin ang linya ng Serial print at ang linya ng pagpapakita ng OLED na nagsasabing milya ang iyong bagong pagsukat.

Alin ang linya 86 at 96 sa DDuino_ISS_notification sketch.

Hakbang 3: Ang Eric Sketch

Ang Eric Sketch
Ang Eric Sketch
Ang Eric Sketch
Ang Eric Sketch
Ang Eric Sketch
Ang Eric Sketch

Ang Supervisor na si Eric ay isang AI o dayuhan mula sa TBS TV People of Earth, Mangyaring tingnan ang aking iba pang Maaaring Makatuturo sa aking pagbuo.

Ang napaka pangunahing kailangan mo para sa sistemang notification na ito ay isang D1 Mini at ang kalasag na WS2812 - ang pagkakaroon nito sa isang magandang kahon na may magandang lens ay nakikita - maganda.

Sa sandaling muli, ang anumang ESP8266 na may isang WS2812 pixel ay dapat na gumana, talagang walang magic na nangyayari dito - Ang WS2812 kalasag ay konektado sa D2 sa D1 mini (na sa tingin ko ay pin 4 sa mga board ng NodeMCU, at marahil iba pang mga board ng ESP8266).

Sa sketch:

Tulad ng nasa itaas kakailanganin mong baguhin ang iyong latitude at longitude sa sketch na malapit sa linya 27. At tulad sa itaas ng sketch na ito ay kinakalkula din ang isang distansya sa pagitan ng latitude at longitude. Hindi tulad ng sketch sa itaas, ang display lamang na ito ay kasama ang WS2812 Neopixel LED.

Ang matematika ay malapit sa linya ng 96, ngunit kung hindi man ay pareho sa itaas. Mayroon pa ring serial output kung nais mong makita kung ano ang nangyayari. Ang Sketch na ito ay gumagawa lamang ng mga kalkulasyon ng lokasyon ng ISS - hindi nito ginagawa ang mga hula sa pass o kung gaano karaming mga tao ang nasa kalawakan.

* Dapat pansinin na ang distansya dito ay sa Miles, maaari itong mabago kung nais mo, ngunit kakailanganin mong gumawa ng ilang mga pagbabago para sa iyong mga yunit. *

Malapit sa Line 116:

void setColor () {

kung (distansya = 1201) {colorDisplay (strip. Color (255, 0, 0), p);}

kung (distansya = 1151) {colorDisplay (strip. Color (255, 153, 0), p);} // mukhang mas dilaw sa akin

kung (distansya = 951) {colorDisplay (strip. Color (255, 255, 0), p);} // mukhang berde / dilaw sa akin

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

kung (distansya> = 1351) {colorDisplay (strip. Color (0, 0, 0), p);}

}

Ang mga yunit ay nasa milya, at kung kailangan mong baguhin sa KM o NM gugustuhin mo ring baguhin ang mga linyang ito.

Ano ang nangyayari dito sa iyo, Sa 1350 na milya, ang ISS ay malapit lamang at maaari mo lamang simulang marinig ang mga transponder mula sa radyo - hindi ito maganda, at ang komunikasyon sa puntong ito ay hindi talaga maaaring mangyari. Ang LED ay lumiliko Pula - ito ay isang ulo - ang ISS ay nagiging malapit.

Matapos ang isang maikling panahon, o kung ang ISS ay nasa pagitan ng 1150 at 1200 milya, ang LED ay magiging orange - ito ay talagang mukhang mas dilaw ngunit sinusuportahan ito upang maging kahel. - Sa 1150 na milya dapat mong simulang makarinig ng kaunti pa - ang dalawang paraan ng komunikasyon ay hindi pa rin posible sa isang 5 wat HT.

Sa pagitan ng 950 at 1150 milya - Ang LED ay dapat na dilaw - mayroon kang disenteng pagkakataon na makipag-ugnay - hindi pa rin maganda, ngunit posible na sa puntong ito (Ang dilaw ay mukhang mas berde sa akin kaysa dilaw - kaya may iba pang gagana sa)

Sa ilalim ng 950 na milya ang LED ay magiging isang solidong GREEN - at maaaring gawin ang dalawang paraan ng mga contact.

Habang lumalayo ang ISS mula sa LED ay pupunta mula Green hanggang Yellow hanggang Orange hanggang Pula at sa wakas ay OFF.

Dapat pansinin dito, ang lahat ng ito ay nangyayari nang napakabilis - ang karamihan sa mga pass sa aking lugar ay tumatagal ng mas mababa sa 10 minuto, at ang normal na magagamit na oras ng contact ay mas mababa sa 5 minuto.

Dapat ding pansinin na maaaring baguhin ng ISS ang lokasyon nito, at maaaring ma-update o hindi ang API - kaya kahit na mayroon kang berdeng ilaw - baka wala kang marinig.

** Ang pagpapatakbo ng amatirang kagamitan ay tapos na opsyonal at kusang loob din, at habang sinusubukan nilang patakbuhin ang kagamitan may mga oras na kailangan nilang i-shut down para sa lakas, o dahil sa kailangan nilang gawin. Palaging isang magandang ideya na suriin ang mga website ng AMsat o ARISS **

Hakbang 4: Ang PHP Code

Ang PHP Code
Ang PHP Code

Sa repository ng github, isinama ko ang aking PHP code mula 2013.

Ang code ay idinisenyo upang tumakbo mula sa CLI (o Command line). Ito ay naging sandali mula nang isinulat ko ang mga ito ngunit sa palagay ko ang tanging kinakailangan ay upang paganahin ang mga extension ng JSON.

Gumagana pa rin ang mga script, at kung nais mong patakbuhin ang mga ito huwag mag-atubiling gawin ito!

Para sa Mga Gumagamit ng Windows mayroong impormasyon dito sa pag-install ng PHP

Tiyaking i-install ang bersyon ng CLI. Sa palagay ko habang nai-install mo maaari kang pumili kung aling mga extension ang i-on.

Ang mga gumagamit ng Linux ay nakasalalay sa iyong distro - Gumagamit ako ng isang distro na batay sa Ubuntu - at synaptic bilang aking manager ng package.

Gusto mo ng php7.0-karaniwan, php7.0-json, php7.0-kli, php7.0-curl

Sa palagay ko hindi ko ginamit ang CURL sa mga ito, kaya maaaring hindi mo kailangan ang isa. Ang natitira ay dapat na matagpuan sa iyong package manger of choice o sa https://php.net website.

Ang dalawa sa mga script ay kailangang i-edit gamit ang iyong latitude at longitude - hindi masyadong mahaba, at kung ano ang kailangang baguhin ay nasa tuktok ng script. Ang mga ito ay iss-location.php at iss-pass-api.php

Ang iss-location.php ay may aking mga lumang blink stick na tawag na naiwan dito - Hindi ako sigurado na gagana pa ang mga iyon - ngunit makikita mo na binabago ko ang LED sa katulad na katulad kong paraan sa aking "Eric Notification". Sa palagay ko ay hindi sila nagdudulot ng anumang mga problema, ngunit baka gusto mong i-comment ang mga ito.

Ang isyu ng pass-api.php ay gumagamit ng oras ng panahon at nagbibigay ng lokal na oras ng hinulaang mga pass. Sa lahat ng katapatan ginugusto ko ang bersyon ng PHP ng script na ito kung ihinahambing sa bersyon ng DDuino (na ngayon lamang gumagawa ng mga hula sa UTC)

Ang bersyon ng PHP ay formated din mas mahusay para sa pagpapakita - ngunit iyon ay talagang isang menor de edad na bagay.

Ang pangwakas na script ng PHP ay iss-people.php - at ipapakita nito ang mga pangalan at kung aling space craft sila nakalagay. Iyon lang ang ginagawa nito. (At ang impormasyong ito ay hindi madalas magbago)

Ang mga pangunahing kaalaman sa pagpapatakbo ng isang PHP script mula sa linya ng utos ay:

$ php iss-people.php

Ang mga file ng PHP ay mga file ng teksto, at maaaring buksan ng anumang text editor. Ang mga gumagamit ng Windows sa palagay ko nai-save ko ang mga ito upang mayroon silang parehong pagbalik sa linya at karwahe. KUNG hindi https://www.editpadlite.com/ maaaring gumana para sa kanila.

Hakbang 5: Ang Mga Video at Maraming Impormasyon sa ISS at Ham

Image
Image

Pagkuha ng isang Lisensya ng Ham Sa Estados Unidos: https://www.arrl.org/getting-lic licensed

Wala sa U. S. Ang bawat bansa ay mayroong sariling hanay ng mga patakaran at gabay sa lisensya - suriin kung sino ang namamahala sa iyong mga komunikasyon (Dito sa U. S. iyan ang FCC Federal Communication Commision)

Kalkulahin ang distansya, tindig at higit pa sa pagitan ng mga puntos ng latitude at longitude.

Ito ay magiging isang mas mahirap upang gawin sa labas ng napaka-kapaki-pakinabang na mga API mula sa Open Notify

Paano makita ang Space Station mula sa Ground.

AMSAT Radio Amateur Satellite

Impormasyon sa AMSAT sa Radyo sa ISS

ARISS Amateur Radio sa International Space Station

ISS Fan Club - Frekuensi ng ISS

Wikipedia Entry sa APRS

APRS.org

Hakbang 6: Huling Mga Saloobin…

Ito ay isang nakakatuwang proyekto, na may napakasimpleng hardware.

Mayroong isang pares ng mga bagay na nais kong baguhin, ngunit sa pangkalahatan ay napakasaya ko sa mga resulta.

Mga bagay na kailangang baguhin:

1) Alamin ang isang paraan upang magkaroon ng mga pass prediksiyon sa lokal na oras, hindi UTC

2) Maghanap ng mas mahusay na mga numero ng code ng kulay para sa orange at dilaw.

3) I-update upang gumana sa ESP32 X-board, kasama ang OLED at 4 Neopixels.

Kung nakita mong kapaki-pakinabang o kasiya-siya ito o anuman sa aking mga proyekto mangyaring suportahan ako.

Anumang makuha ko ay napupunta upang bumili ng maraming mga bahagi at gumawa ng higit / mas mahusay na mga proyekto.

www.patreon.com/kd8bxp

ko-fi.com/lfmiller

Inirerekumendang: