Cuprins:
- Pasul 1: Hardware simplu
- Pasul 2: Schițele
- Pasul 3: Schița Eric
- Pasul 4: Codul PHP
- Pasul 5: Videoclipuri și mai multe informații ISS și Ham
- Pasul 6: Gânduri finale …
Video: Sistem simplu de notificare ISS: 6 pași (cu imagini)
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:45
Ce este Stația Spațială Internațională și de ce doriți să preziceți unde se află?
Pentru a răspunde la prima întrebare, putem căuta un răspuns pe site-ul NASA. Care pe scurt este:
Stația Spațială Internațională este o navă spațială mare. Orbitează în jurul Pământului. Este o casă în care locuiesc astronauții. Stația spațială este, de asemenea, un laborator științific. Multe țări au lucrat împreună pentru a-l construi. De asemenea, lucrează împreună pentru ao folosi. Stația spațială este realizată din mai multe piese. Piesele au fost puse împreună în spațiu de către astronauți. Orbita stației spațiale se află la aproximativ 220 de mile deasupra Pământului. NASA folosește stația pentru a afla despre a trăi și a lucra în spațiu. Aceste lecții vor ajuta NASA să exploreze spațiul.
www.nasa.gov/audience/forstudents/k-4/stor…
A doua întrebare este puțin mai greu de răspuns - Dar voi încerca.
Sunt Operator de Radio Amator (sau Operator de Radio Ham) - un lucru pe care l-am găsit întotdeauna distractiv a fost să folosesc un radio de mână cu putere redusă (5 wați sau mai puțin) și să comunic cu sateliți care orbitează. ISS are echipamente radio la bord.
La începutul zilelor mele de șuncă, obișnuiam să comunic destul de puțin cu sateliții, chiar făcând niște contacte doar cu antena de cauciuc - ceva foarte greu de făcut. Am făcut câteva contacte cu ISS folosind APRS (sistem automat de raportare a pachetelor). Asta a fost în 2013 - cu mult timp în urmă, am fost foarte inactiv de atunci. Este ceva ce am vrut să mă întorc în tine.
În 2013 am scris câteva scripturi PHP pentru linia de comandă care să-mi spună locația ISS și să ajute la prezicerea momentului în care va fi peste cap. În acel moment, am folosit un stick intermitent și l-am pus să schimbe culorile pe măsură ce ISS se apropia. Datorită muncii de la https://open-notify.org și API-ului său, a fost destul de ușor să le faci.
2018 - 5 ani mai târziu am transformat în cele din urmă aceste PHP în Arduino C (de fapt a fost foarte ușor de făcut.)
Proiectul meu folosește un D-Duino (care este într-adevăr un NodeMCU cu un OLED la bord), asta este tot ce există.
Încă folosesc același API de pe
De asemenea, am scris câteva coduri pentru a folosi un Mini D1 și un Shield WS2812 (consultați Proiectul meu Supervizor Eric pentru mai multe detalii).
Pasul 1: Hardware simplu
D-Duino (NodeMCU)
www.aliexpress.com/item/NodeMCU-CP2102-ESP…
Asta este, asta este tot ce este necesar. Bineînțeles că puteți utiliza alte componente hardware - acest lucru ar trebui să funcționeze pe orice dispozitiv ESP8266 care poate utiliza un OLED I2C. D-Duino este în cea mai mare parte un NodeMCU cu adăugarea OLED.
Codul poate fi găsit
Va trebui să aveți plăcile ESP8266 instalate în Arduino IDE. Instrucțiunile pot fi găsite aici:
(cel mai simplu mod este cu managerul de placi)
De asemenea, veți avea nevoie de câteva biblioteci - cred că toate acestea pot fi găsite acum în managerul de bibliotecă (dar nu sunt 100% sigur de asta).
Biblioteci necesare: ArduinoJson.h
Adafruit_NeoPixel
WifiManager.h
TimeLib.h
esp8266-oled-ssd1306
(Nu sunt sigur de unde am luat TImeLib și poate fi inclus în Arduino IDE ??)
Cel mai simplu mod de a le instala este folosind managerul de bibliotecă. Dacă nu, urmați instrucțiunile cu fiecare bibliotecă.
Pasul 2: Schițele
În prezent, există două schițe și trei scripturi PHP incluse în depozitul github.
DDuino_ISS_notification care ar trebui să fie utilizat cu hardware-ul D-Duino de sus.
Și EricISSnotification care folosește precedentul meu „Supervisor Eric” din emisiunea „People of Earth”. (Mai multe despre asta mai târziu)
În ambele schițe lângă linia 30 (sau undeva foarte aproape de ea) - Veți vedea câteva variabile flotante numite mylat și mylon. Va trebui să schimbați aceste două linii cu Latitudinea și Longitudinea dvs. - dacă nu vă cunoașteți Lat și Lon, puteți utiliza acest site https://www.latlong.net Centrul orașului dvs. ar trebui să fie bine. Nu trebuie să se potrivească cu latitudinea sau longitudinea dvs. extrase. Schițele fac câteva rotunjiri și alte matematici pentru a veni cu o distanță aproximativă de ISS în mile americane.
Cred că acesta este singurul lucru care trebuie schimbat în schițe.
Matematica pentru calculul distanței se bazează pe distanța cercului mare dintre două puncte, iar formalul poate fi găsit aici -
Acest site oferă o mulțime de informații despre cum se calculează distanța dintre două latitudini și longitudini, precum și rulmentul. Nu folosim calcule de rulmenți pentru aceasta.
Pentru ca formalul să funcționeze, trebuie să obținem un theta și să transformăm un anumit grad în radiant, iar invers, radiant în grad. Deoarece Arduino nu face matematica atât de bine, trebuie să o ajutăm puțin cu conversiile.
void getDistance () {
float theta, dist, mile;
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);
mile = dist * 60 * 1.1515;
distanță = mile;
}
float deg2rad (float n) {
floare radian = (n * 71) / 4068;
retur radian;
}
float rad2deg (float n) {
grad de plutire = (n * 4068) / 71;
gradul de întoarcere;
}
Cea mai mare parte a matematicii se face în apropierea liniei 127 - DACĂ doriți o distanță diferită (să spunem KM sau mile nautice)
puteți schimba „mile = dist * 60 * 1.1515;” linia.
Pentru KM ar fi ceva de genul „mile = (dist * 60 * 1.1515) * 1.609344;”
Pentru mile nautice ceva de genul "mile = (dist * 60 * 1.1515) * 0.8684;"
Probabil că veți dori, de asemenea, să schimbați linia de imprimare serială și linia de afișare OLED care indică mile până la noua dvs. măsurare.
Care este linia 86 și 96 din schița DDuino_ISS_notification.
Pasul 3: Schița Eric
Supervizorul Eric este un AI sau un extraterestru al TBS TV Oamenii Pământului.
Elementul de bază de care aveți nevoie pentru acest sistem de notificare este un D1 Mini și scutul WS2812 - dacă îl aveți într-o cutie frumoasă, cu un obiectiv frumos, îl face să arate - bine, frumos.
Încă o dată, orice ESP8266 cu un pixel WS2812 ar trebui să funcționeze, nu există nicio magie aici - Scutul WS2812 este conectat la D2 pe D1 mini (care cred că este pinul 4 pe plăcile NodeMCU și poate alte plăci ESP8266).
Pentru schiță:
Ca mai sus, va trebui să vă schimbați latitudinea și longitudinea în schița de lângă linia 27. Și, ca mai sus, această schiță calculează, de asemenea, distanța dintre latitudine și longitudine. Spre deosebire de schița de mai sus, acest singur afișaj este cu LED-ul WS2812 Neopixel.
Matematica este aproape de linia 96, dar altfel sunt la fel ca mai sus. Există încă ieșire serială dacă doriți să vedeți ce se întâmplă. Această schiță face numai calcule privind locația și distanța ISS - nu face predicțiile de trecere sau câți oameni sunt în spațiu.
* Trebuie remarcat faptul că distanța de aici este în mile, poate fi modificată dacă doriți, dar va trebui să mai faceți câteva modificări pentru unitățile dvs. *
Aproape de linia 116:
void setColor () {
if (distanță = 1201) {colorDisplay (strip. Color (255, 0, 0), p);}
if (distance = 1151) {colorDisplay (strip. Color (255, 153, 0), p);} // mi se pare mai galben
if (distance = 951) {colorDisplay (strip. Color (255, 255, 0), p);} // mi se pare verde / galben
if (distanță <= 950) {colorDisplay (strip. Color (0, 255, 0), p);}
if (distanță> = 1351) {colorDisplay (strip. Color (0, 0, 0), p);}
}
Unitățile sunt în mile și, dacă trebuie să treceți la KM sau NM, veți dori, de asemenea, să schimbați aceste linii.
Ce se întâmplă aici, la 1350 de mile, ISS se află la orizont și poți începe doar să auzi transponderele de la radio - nu este grozav, iar comunicarea în acest moment nu se poate întâmpla cu adevărat. LED-ul devine ROȘU - acesta este un cap în sus - ISS se apropie.
După un timp scurt, sau dacă ISS este între 1150 și 1200 mile, LED-ul va deveni portocaliu - acest lucru arată într-adevăr mai galben, dar este compatibil să fie portocaliu. - La 1150 mile ar trebui să începeți să auziți ceva mai mult - comunicarea bidirecțională probabil nu va fi posibilă încă pe un HT de 5 wați.
Între 950 și 1150 mile - LED-ul ar trebui să devină galben - aveți șanse decente de a face un contact - totuși nu este grozav, dar este cel puțin posibil în acest moment (Galbenul mi se pare mai verde decât galben - așa că altceva să funcționeze pe)
Sub 950 de mile LED-ul va fi un VERDE solid - și se pot face contacte în două sensuri.
Pe măsură ce ISS se îndepărtează de LED-ul va trece de la verde la galben la portocaliu la roșu și apoi în cele din urmă la OFF.
Trebuie remarcat aici, totul se întâmplă foarte repede - majoritatea trecerilor din zona mea durează sub 10 minute, iar timpul normal de contact utilizabil este sub 5 minute.
De asemenea, trebuie remarcat faptul că ISS își poate schimba locația și că API-ul poate fi actualizat sau nu - deci chiar dacă aveți undă verde - este posibil să nu auziți nimic.
** Rularea echipamentului amator se face, de asemenea, opțional și voluntar și, în timp ce încearcă să ruleze echipamentul, există timp când trebuie să-l oprească pentru alimentare sau din cauza a ceea ce trebuie să facă. Este întotdeauna o idee bună să verificați site-urile web AMsat sau ARISS **
Pasul 4: Codul PHP
În depozitul github, am inclus codul meu PHP din 2013.
Codul a fost conceput pentru a rula de la CLI (sau linie de comandă). A trecut ceva timp de când am scris acestea, dar cred că singura cerință a fost să fie activate extensiile JSON.
Scripturile încă funcționează și, dacă doriți să le rulați, nu ezitați să faceți acest lucru!
Pentru utilizatorii Windows există informații aici despre instalarea PHP
Asigurați-vă că instalați versiunea CLI. Cred că, pe măsură ce instalați, puteți selecta ce extensii să activați.
Utilizatorii Linux depind de distribuția dvs. - folosesc o distribuție bazată pe Ubuntu - și de sinaptică ca manager de pachete.
Veți dori php7.0-common, php7.0-json, php7.0-cli, php7.0-curl
Nu cred că am folosit CURL cu acestea, deci este posibil să nu aveți nevoie de acesta. Restul trebuie să fie găsite în iesle de pachete la alegere sau pe site-ul
Două dintre scripturi vor trebui editate cu latitudinea și longitudinea dvs. - acestea nu sunt foarte lungi, iar ceea ce trebuie schimbat este chiar în partea de sus a scriptului. Acestea sunt iss-location.php și iss-pass-api.php
iss-location.php îmi rămâne vechile mele apeluri de clipire - nu sunt sigur că acestea mai funcționează - dar puteți vedea că schimbam LED-ul în același mod în care fac cu „Eric Notification”. Nu cred că cauzează probleme, dar poate doriți să le comentați.
iss-pass-api.php folosește timpul de epocă și oferă o oră locală a trecerilor prezise. Cu sinceritate, prefer versiunea PHP a acestui script în comparație cu versiunea DDuino (care acum face doar predicții UTC)
Versiunea PHP este, de asemenea, mai bine formatată pentru afișare - dar acesta este într-adevăr un lucru minor.
Scriptul final PHP este iss-people.php - și va afișa numele și în ce navă spațială se află. Asta este tot ce face. (Și aceste informații nu se schimbă des)
Elementele de bază pentru rularea unui script PHP din linia de comandă sunt:
$ php iss-people.php
Fișierele PHP sunt fișiere text și pot fi deschise de orice editor de text. Utilizatorii de Windows cred că le-am salvat, astfel încât să aibă atât retururi de linie, cât și de transport. Dacă nu https://www.editpadlite.com/ ar putea funcționa pentru ei.
Pasul 5: Videoclipuri și mai multe informații ISS și Ham
Obținerea unei licențe de șuncă în Statele Unite:
Nu în SUA? Fiecare țară are propriul set de reguli și ghiduri de licență - verificați cu cine vă guvernează comunicațiile (Aici, în S. U. A., aceasta este Comisia FCC pentru comunicații federale)
Calculați distanța, rulmentul și mai mult între punctele de latitudine și longitudine.
Acest lucru ar fi fost mult mai greu de realizat cu API-urile foarte utile din Open Notify
Cum să vezi Stația Spațială de la sol.
AMSAT Radio Amateur Satellite
Informații AMSAT pe radio pe ISS
Radio amator ARISS pe Stația Spațială Internațională
ISS Fan Club - Frecvențe ISS
Intrare Wikipedia pe APRS
APRS.org
Pasul 6: Gânduri finale …
Acesta a fost un proiect distractiv, cu hardware foarte simplu.
Există câteva lucruri pe care aș dori să le schimb, dar, în general, sunt foarte mulțumit de rezultate.
Lucruri care trebuie schimbate:
1) Descoperiți o modalitate de a avea predicții de trecere la ora locală, nu UTC
2) Găsiți numere de cod de culoare mai bune pentru portocaliu și galben.
3) Actualizare pentru a lucra cu placa ESP32 X, cu OLED și 4 Neopixeli.
Dacă vi se pare util sau plăcut acest proiect sau oricare dintre proiectele mele, vă rugăm să mă sprijiniți.
Orice primesc este să cumpăr mai multe piese și să fac proiecte mai bune / mai bune.
www.patreon.com/kd8bxp
ko-fi.com/lfmiller
Recomandat:
GPS Car Tracker cu notificare SMS și încărcare de date Thingspeak, bazat pe Arduino, automatizare la domiciliu: 5 pași (cu imagini)
GPS Car Tracker cu notificare prin SMS și încărcare de date Thingspeak, bazat pe Arduino, automatizare la domiciliu: Am făcut acest tracker GPS anul trecut și, deoarece funcționează bine, îl public acum pe Instructable. Este conectat la mufa accesoriilor din portbagajul meu. Tracker-ul GPS încarcă poziția mașinii, viteza, direcția și temperatura măsurată printr-un telefon mobil
ForgetMeNot - Platforma de notificare Smart Home: 14 pași (cu imagini)
ForgetMeNot - Platforma de notificare Smart Home: În calitate de studenți ocupați, care aleargă între clase, locuri de muncă și obligații familiale, avem tendința de a uita lucrurile mici. O zi de naștere vine și trece fără ca noi să observăm, un termen important este ratat din cauza uitării și, uneori, doar
Sistem de notificare spălătorie bazat pe IoT: 18 pași
Sistem de notificare a rufelor bazat pe IoT: HiThis este instructiv și oferă o introducere pas cu pas a modului de construire a unui sistem de notificare a rufelor bazat pe IoT. Dispozitivul este atașat în sertarele și geanta de rufe. De dragul demonstrației de aici, am luat două sertare și o geantă de rufe. Simte
Lampă de notificare Kodak Pi din anii 1930: 6 pași (cu imagini)
Lampă de notificare Kodak Pi din anii 1930: Acesta este un vizualizator de masă Kodak din anii 1930 pe care l-am adaptat pentru a afișa notificări și alerte folosind o gamă de culori strălucitoare. Sursa de lumină este un Unicorn pHAT, o matrice programabilă de LED-uri luminoase, care este controlată de un Raspberry Pi Zero W, care
Sistem automat de notificare a cafelei: 7 pași (cu imagini)
Sistem automat de notificare a cafelei: În acest proiect, fac o mașină de cafea de birou inteligentă, construind un sistem de alertă de cafea care trimite notificări Slack atunci când cineva prepară o oală proaspătă de cafea. Codul ar putea fi modificat pentru a trimite un e-mail sau un mesaj text. Acest proiect este construit pe un R