Sommario:

Sistema di notifica ISS semplice: 6 passaggi (con immagini)
Sistema di notifica ISS semplice: 6 passaggi (con immagini)

Video: Sistema di notifica ISS semplice: 6 passaggi (con immagini)

Video: Sistema di notifica ISS semplice: 6 passaggi (con immagini)
Video: Con la TECNOLOGIA PoE fai tutto col Cavo di Rete! Recensione Reolink Videocamera di Sorveglianza 2024, Novembre
Anonim
Sistema di notifica ISS semplice
Sistema di notifica ISS semplice
Sistema di notifica ISS semplice
Sistema di notifica ISS semplice

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

Hardware semplice
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

gli schizzi
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

Lo schizzo di Eric
Lo schizzo di Eric
Lo schizzo di Eric
Lo schizzo di Eric
Lo schizzo di Eric
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

Il codice PHP
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

Image
Image

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: