Sommario:
- Passaggio 1: hardware semplice
- Passaggio 2: gli schizzi
- Passaggio 3: lo schizzo di Eric
- Passaggio 4: il codice PHP
- Passaggio 5: i video e altre informazioni su ISS e prosciutto
- Passaggio 6: considerazioni finali…
Video: Sistema di notifica ISS semplice: 6 passaggi (con immagini)
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:04
Cos'è la Stazione Spaziale Internazionale e perché vuoi prevedere dove si trova?
Per rispondere alla prima domanda possiamo dare un'occhiata al sito web della NASA per una risposta. Che in breve è:
La Stazione Spaziale Internazionale è una grande navicella spaziale. Orbita intorno alla Terra. È una casa dove vivono gli astronauti. La stazione spaziale è anche un laboratorio di scienze. Molti paesi hanno lavorato insieme per costruirlo. Inoltre lavorano insieme per usarlo. La stazione spaziale è composta da molti pezzi. I pezzi sono stati messi insieme nello spazio dagli astronauti. L'orbita della stazione spaziale è a circa 220 miglia sopra la Terra. La NASA utilizza la stazione per imparare a vivere e lavorare nello spazio. Queste lezioni aiuteranno la NASA a esplorare lo spazio.
www.nasa.gov/audience/forstudents/k-4/stor…
Alla seconda domanda è un po' più difficile rispondere, ma ci proverò.
Sono un radioamatore (o radioamatore) - una cosa che ho sempre trovato divertente era usare una radio portatile a bassa potenza (5 watt o meno) e comunicare con i satelliti in orbita. L'ISS dispone di apparecchiature radio a bordo.
All'inizio dei miei giorni da radioamatore, comunico un po' con i satelliti, anche solo con l'antenna a papera di gomma, cosa molto difficile da fare. Ho preso alcuni contatti con l'ISS usando APRS (sistema di segnalazione automatica dei pacchetti) Era nel 2013 - molto tempo fa, da allora sono stato molto inattivo. È qualcosa in cui volevo tornare in te.
Nel 2013 ho scritto un paio di script PHP per la riga di comando che mi avrebbero detto la posizione della ISS e mi avrebbero aiutato a prevedere quando sarebbe stata in sovraccarico. A quel tempo ho usato uno stick lampeggiante e ho fatto cambiare colore all'avvicinarsi della ISS. Grazie al lavoro su https://open-notify.org e alla sua API è stato abbastanza facile realizzarli.
2018 - 5 anni dopo ho finalmente convertito questi PHP in Arduino C (in realtà è stato molto facile da fare).
Il mio progetto utilizza un D-Duino (che in realtà è un NodeMCU con un OLED a bordo), questo è tutto.
Sto ancora utilizzando la stessa API da
Ho anche scritto del codice per usare un D1 Mini e un WS2812 Shield (vedi il mio Supervisor Eric Project per ulteriori informazioni).
Passaggio 1: hardware semplice
D-Duino (NodeMCU)
www.aliexpress.com/item/NodeMCU-CP2102-ESP…
Questo è tutto, questo è tutto ciò che è richiesto. Ovviamente puoi usare altro hardware: questo dovrebbe funzionare su qualsiasi dispositivo ESP8266 in grado di utilizzare un OLED I2C. Il D-Duino è per la maggior parte un NodeMCU con l'aggiunta dell'OLED.
Il codice può essere trovato
Dovrai avere le schede ESP8266 installate nell'IDE Arduino. Le istruzioni le trovi qui:
(il modo più semplice è con il gestore delle schede)
Avrai anche bisogno di alcune librerie - penso che tutte queste possano essere trovate nel gestore della libreria ora (ma non ne sono sicuro al 100%).
Librerie necessarie: ArduinoJson.h
Adafruit_NeoPixel
WifiManager.h
TimeLib.h
esp8266-oled-ssd1306
(Non sono sicuro di dove ho preso TImeLib, e forse è incluso con Arduino IDE ??)
Il modo più semplice per installarli è utilizzare il gestore della libreria. In caso contrario, seguire le istruzioni con ciascuna libreria.
Passaggio 2: gli schizzi
Attualmente ci sono due schizzi e tre script PHP inclusi nel repository github.
DDuino_ISS_notification che dovrebbe essere usato con l'hardware D-Duino dall'alto.
E EricISSnotification che utilizza il mio precedente "Supervisor Eric" dal progetto dello show "People of Earth". (Più su questo più tardi)
In entrambi gli schizzi vicino alla linea 30 (o da qualche parte molto vicino ad essa) - Vedrai un paio di variabili float chiamate mylat e mylon. Dovrai cambiare queste due linee con la tua Latitudine e Longitudine - se non conosci Lat e Lon puoi usare questo sito https://www.latlong.net Il centro della tua città dovrebbe andare bene. Non è necessario che corrisponda alla latitudine o alla longitudine calcolate. Gli schizzi fanno alcuni arrotondamenti e altri calcoli per ottenere una distanza approssimativa della ISS in miglia statunitensi.
Credo che questa sia l'unica cosa che deve essere cambiata negli schizzi.
I calcoli matematici per il calcolo della distanza si basano sulla distanza del cerchio massimo tra due punti e il modulo formale può essere trovato qui -
Questo sito fornisce molte informazioni su come calcolare la distanza tra due latitudini e longitudini, nonché il rilevamento. Non stiamo usando alcun calcolo dei cuscinetti per questo.
Perché il formale funzioni abbiamo bisogno di ottenere un theta e convertire un certo grado in radiante, e viceversa, radiante in grado. Dato che Arduino non fa la matematica così bene, dobbiamo aiutarlo un po' con le conversioni.
void getDistance() {
galleggiante theta, dist, miglia;
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);
miglia = distanza * 60 * 1,1515;
distanza = miglia;
}
float deg2rad(float n) {
radianti float = (n * 71)/4068;
radiante di ritorno;
}
float rad2deg(float n) {
grado float = (n*4068)/71;
laurea di ritorno;
}
La maggior parte dei calcoli viene eseguita vicino alla linea 127 - SE desideri una distanza diversa (diciamo KM o miglia nautiche)
puoi cambiare "miglia = dist * 60 * 1.1515;" linea.
Per KM sarebbe qualcosa come "miglia = (dist*60*1.1515) * 1.609344;"
Per miglia nautiche qualcosa come "miglia = (dist*60*1.1515)*0.8684;"
Probabilmente vorrai anche cambiare la linea di stampa seriale e la linea del display OLED che dicono miglia alla tua nuova misurazione.
Che è la riga 86 e 96 nello schizzo DDuino_ISS_notification.
Passaggio 3: lo schizzo di Eric
Il supervisore Eric è un'intelligenza artificiale o un alieno della TBS TV People of Earth, per favore guarda il mio altro Instructable sulla mia build.
La base di cui hai bisogno per questo sistema di notifica è un D1 Mini e lo scudo WS2812 - averlo in una bella scatola con una bella lente lo fa sembrare - ben carino.
Ancora una volta, qualsiasi ESP8266 con un pixel WS2812 dovrebbe funzionare, non c'è davvero nessuna magia in corso qui: lo shield WS2812 è collegato a D2 sul D1 mini (che credo sia il pin 4 sulle schede NodeMCU e forse su altre schede ESP8266).
Al bozzetto:
Come sopra, dovrai modificare la latitudine e la longitudine nello schizzo vicino alla linea 27. E come sopra, questo schizzo calcola anche una distanza tra latitudine e longitudine. A differenza dello schizzo sopra, questo solo display è con il LED Neopixel WS2812.
I calcoli sono vicini alla riga 96, ma per il resto sono gli stessi di sopra. C'è ancora un output seriale se vuoi vedere cosa sta succedendo. Questo schizzo fa solo i calcoli della posizione e della distanza della ISS - non fa le previsioni di passaggio o quante persone sono nello spazio.
* Va notato che la distanza qui è in miglia, può essere modificata se lo desideri, ma dovrai apportare alcune modifiche in più per le tue unità. *
Vicino alla linea 116:
void setColor() {
if (distanza =1201) {colorDisplay(strip. Color(255, 0, 0), p);}
if (distanza =1151) {colorDisplay(strip. Color(255, 153, 0), p);} // mi sembra più giallo
if (distanza = 951) {colorDisplay(strip. Color(255, 255, 0), p);} // mi sembra verde/giallo
if (distanza <=950) {colorDisplay(strip. Color(0, 255, 0), p);}
if (distanza >= 1351) {colorDisplay(strip. Color(0, 0, 0), p);}
}
Le unità sono in miglia e se hai bisogno di cambiare in KM o NM, vorrai anche cambiare queste linee.
Cosa sta succedendo qui, a 1350 miglia, la ISS è proprio all'orizzonte e puoi iniziare a sentire i transponder dalla radio - non è eccezionale, e la comunicazione a questo punto non può davvero avvenire. Il LED diventa ROSSO - questo è un avvertimento - la ISS si sta avvicinando.
Dopo poco tempo, o se l'ISS è tra 1150 e 1200 miglia, il LED diventa arancione - questo sembra davvero più giallo, ma è il supporto per essere arancione. - A 1150 miglia dovresti iniziare a sentire un po' di più - la comunicazione bidirezionale probabilmente non sarà ancora possibile su un HT da 5 watt.
Tra 950 e 1150 miglia - Il LED dovrebbe diventare giallo - hai una discreta possibilità di stabilire un contatto - ancora non eccezionale, ma almeno è possibile a questo punto (il giallo mi sembra più verde che giallo - quindi qualcos'altro su cui lavorare Su)
Al di sotto delle 950 miglia il LED sarà di un VERDE fisso e si possono stabilire contatti bidirezionali.
Quando l'ISS si allontana dal LED passerà da verde a giallo, a arancione a rosso e infine a OFF.
Va notato qui, tutto ciò accade molto rapidamente: la maggior parte dei passaggi nella mia zona dura meno di 10 minuti e il normale tempo di contatto utilizzabile è inferiore a 5 minuti.
Va anche notato che l'ISS può cambiare la sua posizione e che l'API può essere aggiornata o meno, quindi anche se hai una luce verde, potresti non sentire nulla.
** Anche il funzionamento dell'attrezzatura amatoriale è facoltativo e volontario, e mentre cercano di far funzionare l'attrezzatura ci sono momenti in cui devono spegnerla per l'alimentazione, o per quello che devono fare. È sempre una buona idea controllare i siti AMsat o ARISS **
Passaggio 4: il codice PHP
Nel repository github, ho incluso il mio codice PHP dal 2013.
Il codice è stato progettato per essere eseguito dalla CLI (o riga di comando). È passato un po' di tempo da quando li ho scritti, ma penso che l'unico requisito fosse avere le estensioni JSON abilitate.
Gli script funzionano ancora e, se desideri eseguirli, sentiti libero di farlo!
Per gli utenti Windows ci sono informazioni qui sull'installazione di PHP
Assicurati di installare la versione CLI. Penso che mentre installi puoi selezionare quali estensioni attivare.
Gli utenti Linux dipendono dalla tua distribuzione - io uso una distribuzione basata su Ubuntu - e synaptic come gestore di pacchetti.
Avrai bisogno di php7.0-common, php7.0-json, php7.0-cli, php7.0-curl
Non credo di aver usato CURL con questi, quindi potresti non averne bisogno. Il resto dovrebbe essere trovato nel tuo gestore di pacchetti preferito o sul sito Web
Due degli script dovranno essere modificati con la tua latitudine e longitudine: non sono molto lunghi e ciò che deve essere modificato è proprio nella parte superiore dello script. Sono iss-location.php e iss-pass-api.php
iss-location.php ha le mie vecchie chiamate del blink stick - non sono sicuro che funzionino più - ma puoi vedere che stavo cambiando il LED più o meno nello stesso modo in cui faccio con la mia "Notifica Eric". Non credo che stiano causando problemi, ma potresti volerli commentare.
iss-pass-api.php utilizza l'ora dell'epoca e fornisce l'ora locale dei passaggi previsti. In tutta onestà preferisco la versione PHP di questo script rispetto alla versione DDuino (che in questo momento fa solo previsioni UTC)
La versione PHP è anche formattata in modo migliore per la visualizzazione, ma questa è davvero una cosa minore.
Lo script PHP finale è iss-people.php - e visualizzerà i nomi e la navicella spaziale su cui si trovano. Questo è tutto ciò che fa. (E queste informazioni non cambiano spesso)
Le basi per eseguire uno script PHP dalla riga di comando sono:
$ php iss-persone.php
I file PHP sono file di testo e possono essere aperti da qualsiasi editor di testo. Gli utenti di Windows penso di averli salvati in modo che abbiano sia i ritorni di riga che i ritorni a capo. SE non https://www.editpadlite.com/ potrebbe funzionare per loro.
Passaggio 5: i video e altre informazioni su ISS e prosciutto
Ottenere una licenza di prosciutto negli Stati Uniti:
Non negli Stati Uniti? Ogni paese ha una propria serie di regole e guide alle licenze: controlla con chi governa le tue comunicazioni (qui negli Stati Uniti è la Federal Communications Commission della FCC)
Calcola distanza, rilevamento e altro tra i punti di latitudine e longitudine.
Questo sarebbe stato molto più difficile da realizzare senza le utilissime API di Open Notify
Come vedere la Stazione Spaziale da Terra.
AMSAT Radioamatore Satellite
Informazioni AMSAT sulla radio sulla ISS
ARISS Amateur Radio sulla Stazione Spaziale Internazionale
ISS Fan Club - ISS Frequenze
Voce di Wikipedia su APRS
APRS.org
Passaggio 6: considerazioni finali…
Questo è stato un progetto divertente, con un hardware molto semplice.
Ci sono un paio di cose che vorrei cambiare, ma nel complesso sono molto contento dei risultati.
Cose che devono essere cambiate:
1) Trova un modo per far passare le previsioni in ora locale, non UTC
2) Trova numeri di codice colore migliori per l'arancione e il giallo.
3) Aggiornamento per funzionare con la X-board ESP32, con OLED e 4 Neopixel.
Se trovi utile o divertente questo o uno dei miei progetti, supportami.
Tutto ciò che ottengo serve per acquistare più parti e realizzare progetti più/migliori.
www.patreon.com/kd8bxp
ko-fi.com/lfmiller
Consigliato:
Localizzatore GPS per auto con notifica SMS e caricamento dati Thingspeak, basato su Arduino, automazione domestica: 5 passaggi (con immagini)
Localizzatore GPS per auto con notifica SMS e caricamento dati Thingspeak, basato su Arduino, automazione domestica: ho realizzato questo localizzatore GPS l'anno scorso e dato che funziona bene lo pubblico ora su Instructable. È collegato alla presa degli accessori nel mio bagagliaio. Il localizzatore GPS carica la posizione dell'auto, la velocità, la direzione e la temperatura misurata tramite un dato mobile
ForgetMeNot - Piattaforma di notifica Smart Home: 14 passaggi (con immagini)
ForgetMeNot - Piattaforma di notifica Smart Home: in quanto studenti universitari impegnati, in giro tra le lezioni, il lavoro e gli obblighi familiari, tendiamo a dimenticare le piccole cose. Un compleanno va e viene senza che ce ne accorgiamo, manca una scadenza importante per pura dimenticanza e a volte, semplicemente
Lampada di notifica Kodak Pi degli anni '30: 6 passaggi (con immagini)
Lampada di notifica Kodak Pi degli anni '30: questo è un visualizzatore da tavolo Kodak degli anni '30 che ho adattato per visualizzare notifiche e avvisi utilizzando una gamma di colori vivaci. La sorgente luminosa è un Unicorn pHAT, una matrice programmabile di LED luminosi, e questo è controllato da un Raspberry Pi Zero W, che
Sistema di notifica automatico del caffè: 7 passaggi (con immagini)
Sistema di notifica automatica del caffè: in questo progetto rendo intelligente una caffettiera da ufficio, costruendo un sistema di avviso del caffè che invia notifiche Slack quando qualcuno prepara una tazza di caffè fresca. Il codice può essere modificato per inviare un'e-mail o un messaggio di testo. Questo progetto è costruito su un R
Avviso lavatrice Arduino - Notifica push al telefono con Blynk: 5 passaggi (con immagini)
Avviso lavatrice Arduino - Invia notifica al telefono con Blynk: la nostra lavatrice è in garage e non possiamo sentire i segnali acustici per indicare che il lavaggio è completo. Volevo trovare un modo per essere avvisato, ovunque ci trovassimo in casa, quando il ciclo era finito. Ho armeggiato con Arduino, ESP8266 WiFi