Πίνακας περιεχομένων:

Απλό σύστημα ειδοποιήσεων ISS: 6 βήματα (με εικόνες)
Απλό σύστημα ειδοποιήσεων ISS: 6 βήματα (με εικόνες)

Βίντεο: Απλό σύστημα ειδοποιήσεων ISS: 6 βήματα (με εικόνες)

Βίντεο: Απλό σύστημα ειδοποιήσεων ISS: 6 βήματα (με εικόνες)
Βίντεο: Τρανός τα σπάει σε παιδικό πάρτι 2024, Νοέμβριος
Anonim
Απλό σύστημα ειδοποιήσεων ISS
Απλό σύστημα ειδοποιήσεων ISS
Απλό σύστημα ειδοποιήσεων ISS
Απλό σύστημα ειδοποιήσεων ISS

Τι είναι ο Διεθνής Διαστημικός Σταθμός και γιατί θέλετε να προβλέψετε πού βρίσκεται;

Για να απαντήσουμε στην πρώτη ερώτηση, μπορούμε να δούμε μια απάντηση στον ιστότοπο της NASA. Το οποίο εν συντομία είναι:

Ο Διεθνής Διαστημικός Σταθμός είναι ένα μεγάλο διαστημόπλοιο. Περιφέρεται γύρω από τη Γη. Είναι ένα σπίτι όπου ζουν αστροναύτες. Ο διαστημικός σταθμός είναι επίσης ένα επιστημονικό εργαστήριο. Πολλές χώρες συνεργάστηκαν για την κατασκευή του. Συνεργάζονται επίσης για να το χρησιμοποιήσουν. Ο διαστημικός σταθμός αποτελείται από πολλά κομμάτια. Τα κομμάτια συγκεντρώθηκαν στο διάστημα από αστροναύτες. Η τροχιά του διαστημικού σταθμού βρίσκεται περίπου 220 μίλια πάνω από τη Γη. Η NASA χρησιμοποιεί το σταθμό για να μάθει πώς να ζει και να εργάζεται στο διάστημα. Αυτά τα μαθήματα θα βοηθήσουν τη NASA να εξερευνήσει το διάστημα.

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

Η δεύτερη ερώτηση είναι λίγο πιο δύσκολο να απαντηθεί - αλλά θα προσπαθήσω.

Είμαι ερασιτέχνης χειριστής ραδιοφώνου (ή χειριστής ραδιοφώνου Ham) - ένα πράγμα που πάντα έβρισκα διασκεδαστικό ήταν να χρησιμοποιώ ένα ραδιόφωνο χειρός χαμηλής ισχύος (5 watt ή λιγότερο) και να επικοινωνώ με δορυφόρους σε τροχιά. Το ISS διαθέτει ραδιοεξοπλισμό.

Στις αρχές του ζαμπόν μου επικοινωνώ αρκετά με τους δορυφόρους, ακόμη και κάνοντας κάποιες επαφές μόνο με την ελαστική πάπια - μια πολύ δύσκολη δουλειά. Έκανα μερικές επαφές με τον ISS χρησιμοποιώντας APRS (αυτόματο σύστημα αναφοράς πακέτων) wasταν το 2013 - πολύ καιρό πριν, ήμουν πολύ ανενεργός από τότε. Είναι κάτι που ήθελα να επιστρέψω σε εσένα.

Το 2013 έγραψα δύο σενάρια PHP για τη γραμμή εντολών που θα μου έλεγαν τη θέση του ISS και θα βοηθούσα να προβλέψω πότε θα είναι overhead. Εκείνη τη στιγμή χρησιμοποίησα ένα ραβδί αναλαμπής και το άλλαξα χρώμα καθώς πλησίαζε ο ISS. Χάρη στην εργασία στο https://open-notify.org και στο API του, ήταν αρκετά εύκολο να τα φτιάξετε.

2018 - 5 χρόνια αργότερα μετέτρεψα τελικά αυτές τις PHP σε Arduino C (στην πραγματικότητα ήταν πολύ εύκολο να το κάνω.)

Το έργο μου χρησιμοποιεί ένα D-Duino (το οποίο είναι πραγματικά ένα NodeMCU με OLED επί του σκάφους), αυτό είναι το μόνο που υπάρχει σε αυτό.

Εξακολουθώ να χρησιμοποιώ το ίδιο API από το

Έχω γράψει επίσης κάποιον κώδικα για τη χρήση ενός D1 Mini και ενός WS2812 Shield (ανατρέξτε στο Supervisor Eric Project μου για περισσότερα σχετικά).

Βήμα 1: Απλό υλικό

Απλό Υλικό
Απλό Υλικό

D-Duino (NodeMCU)

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

Αυτό είναι, αυτό είναι το μόνο που απαιτείται. Φυσικά, μπορείτε να χρησιμοποιήσετε άλλο υλικό - αυτό θα πρέπει να λειτουργεί σε οποιαδήποτε συσκευή ESP8266 που μπορεί να χρησιμοποιήσει OLED I2C. Το D-Duino είναι ως επί το πλείστον ένα NodeMCU με την προσθήκη του OLED.

Μπορείτε να βρείτε τον κωδικό

Θα πρέπει να έχετε εγκαταστήσει τους πίνακες ESP8266 στο Arduino IDE. Οδηγίες μπορείτε να βρείτε εδώ:

(ο ευκολότερος τρόπος είναι με τον διαχειριστή πινάκων)

Θα χρειαστείτε επίσης μερικές βιβλιοθήκες - νομίζω ότι όλα αυτά μπορούν να βρεθούν στο διαχειριστή της βιβλιοθήκης τώρα (αλλά δεν είμαι 100% σίγουρος για αυτό).

Βιβλιοθήκες που απαιτούνται: ArduinoJson.h

Adafruit_NeoPixel

WifiManager.h

TimeLib.h

esp8266-oled-ssd1306

(Δεν είμαι σίγουρος από πού πήρα το TImeLib και ίσως περιλαμβάνεται στο Arduino IDE;)

Ο απλούστερος τρόπος εγκατάστασης αυτών είναι η χρήση του διαχειριστή βιβλιοθήκης. Εάν όχι, ακολουθήστε τις οδηγίες σε κάθε βιβλιοθήκη.

Βήμα 2: Τα σκίτσα

Τα Σκίτσα
Τα Σκίτσα

Αυτή τη στιγμή δύο σκίτσα και τρία σενάρια PHP περιλαμβάνονται στο αποθετήριο github.

Ειδοποίηση DDuino_ISS_ που πρέπει να χρησιμοποιείται με το υλικό D-Duino από πάνω.

Και EricISSnotification που χρησιμοποιεί το προηγούμενο "Supervisor Eric" μου από την εκπομπή "People of Earth". (Περισσότερα για αυτό αργότερα)

Και στα δύο σκίτσα κοντά στη γραμμή 30 (ή κάπου πολύ κοντά σε αυτήν) - Θα δείτε μερικές μεταβλητές πλωτήρα που ονομάζονται mylat και mylon. Θα χρειαστεί να αλλάξετε αυτές τις δύο γραμμές με το γεωγραφικό πλάτος και το γεωγραφικό μήκος - εάν δεν γνωρίζετε το Lat και το Lon, μπορείτε να χρησιμοποιήσετε αυτόν τον ιστότοπο https://www.latlong.net Το κέντρο της πόλης σας πρέπει να είναι εντάξει. Δεν χρειάζεται να ταιριάζει με το ακριβές γεωγραφικό πλάτος ή γεωγραφικό μήκος. Τα σκίτσα κάνουν κάποια στρογγυλοποίηση και άλλα μαθηματικά για να καταλήξουν σε μια κατά προσέγγιση απόσταση του ISS στα Μίλια ΗΠΑ.

Πιστεύω ότι αυτό είναι το μόνο πράγμα που πρέπει να αλλάξει στα σκίτσα.

Τα μαθηματικά για τον υπολογισμό της απόστασης βασίζονται στην απόσταση μεγάλου κύκλου μεταξύ δύο σημείων και το επίσημο μπορείτε να το βρείτε εδώ-https://www.movable-type.co.uk/scripts/latlong.htm…

Αυτός ο ιστότοπος παρέχει πολλές πληροφορίες σχετικά με τον τρόπο υπολογισμού της απόστασης μεταξύ δύο γεωγραφικών πλάτων και γεωγραφικών μήκος, καθώς και του εδράνου. Δεν χρησιμοποιούμε κανέναν υπολογισμό ρουλεμάν για αυτό.

Για να λειτουργήσει το επίσημο πρέπει να πάρουμε ένα θήτα και να μετατρέψουμε κάποιο βαθμό σε ακτινοβόλο, και το αντίστροφο, ακτινοβόλο σε βαθμό. Δεδομένου ότι το Arduino δεν κάνει μαθηματικά τόσο καλά, πρέπει να το βοηθήσουμε λίγο με τις μετατροπές.

void getDistance () {

float theta, dist, μίλια?

θετα = μυλων - ισλλον?

dist = sin (deg2rad (mylat)) * sin (deg2rad (isslat)) + cos (deg2rad (mylat)) * cos (deg2rad (isslat)) * cos (deg2rad (theta));

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

μίλια = dist * 60 * 1.1515;

απόσταση = μίλια?

}

float deg2rad (float n) {

float radian = (n * 71)/4068;

επιστροφή ακτίνων?

}

float rad2deg (float n) {

βαθμός επίπλευσης = (n*4068)/71;

πτυχίο επιστροφής ·

}

Το μεγαλύτερο μέρος των μαθηματικών γίνεται κοντά στη γραμμή 127 - ΑΝ θέλετε μια διαφορετική απόσταση (πείτε ΚΜ ή Ναυτικά μίλια)

μπορείτε να αλλάξετε το "μίλια = dist * 60 * 1.1515;" γραμμή.

Για το KM θα ήταν κάτι σαν "μίλια = (dist*60*1.1515)*1.609344;"

Για ναυτικά μίλια κάτι σαν "μίλια = (απόσταση*60*1.1515)*0.8684;"

Πιθανότατα θα θέλετε επίσης να αλλάξετε τη σειρά σειριακής εκτύπωσης και τη γραμμή οθόνης OLED που λένε μίλια στη νέα σας μέτρηση.

Ποια είναι η γραμμή 86 και 96 στο σκίτσο DDuino_ISS_notification.

Βήμα 3: Το σκίτσο του Έρικ

Το σκίτσο του Έρικ
Το σκίτσο του Έρικ
Το σκίτσο του Έρικ
Το σκίτσο του Έρικ
Το σκίτσο του Έρικ
Το σκίτσο του Έρικ

Ο Supervisor Eric είναι τεχνητή νοημοσύνη ή είναι εξωγήινος από το TBS TV People of Earth, δείτε το άλλο μου Instructable στο build μου.

Το βασικό που χρειάζεστε για αυτό το σύστημα ειδοποιήσεων είστε ένα D1 Mini και η ασπίδα WS2812 - το έχετε σε ένα ωραίο κουτί με έναν ωραίο φακό το κάνει να φαίνεται - πολύ ωραίο.

Για άλλη μια φορά, κάθε ESP8266 με εικονοστοιχείο WS2812 πρέπει να λειτουργεί, πραγματικά δεν υπάρχει μαγεία εδώ - η ασπίδα WS2812 είναι συνδεδεμένη με το D2 στο D1 mini (το οποίο πιστεύω ότι είναι το pin 4 στις πλακέτες NodeMCU, και ίσως άλλες πλακέτες ESP8266).

Στο σκίτσο:

Όπως παραπάνω θα χρειαστεί να αλλάξετε το γεωγραφικό πλάτος και το γεωγραφικό μήκος στο σκίτσο κοντά στη γραμμή 27. Και όπως παραπάνω, αυτό το σκίτσο υπολογίζει επίσης την απόσταση μεταξύ γεωγραφικού πλάτους και γεωγραφικού μήκους. Σε αντίθεση με το παραπάνω σκίτσο, αυτή η μόνη οθόνη είναι με το LED WS2812 Neopixel.

Τα μαθηματικά είναι κοντά στη γραμμή 96, αλλά κατά τα άλλα είναι τα ίδια με τα παραπάνω. Υπάρχει ακόμη σειριακή έξοδος αν θέλετε να δείτε τι συμβαίνει. Αυτό το σκίτσο κάνει μόνο υπολογισμούς θέσης και απόστασης ISS - δεν κάνει τις προβλέψεις για το πέρασμα ή πόσα άτομα βρίσκονται στο διάστημα.

* Πρέπει να σημειωθεί ότι η απόσταση εδώ είναι σε μίλια, μπορεί να αλλάξει αν θέλετε, αλλά θα χρειαστεί να κάνετε μερικές ακόμη αλλαγές για τις μονάδες σας. *

Κοντά στη γραμμή 116:

void setColor () {

εάν (απόσταση = 1201) {colorDisplay (strip. Color (255, 0, 0), p);}

εάν (απόσταση = 1151) {colorDisplay (strip. Color (255, 153, 0), p);} // μου φαίνεται πιο κίτρινο

εάν (απόσταση = 951) {colorDisplay (strip. Color (255, 255, 0), p);} // μου φαίνεται πράσινο/κίτρινο

if (απόσταση <= 950) {colorDisplay (strip. Color (0, 255, 0), p);}

if (απόσταση> = 1351) {colorDisplay (strip. Color (0, 0, 0), p);}

}

Οι μονάδες είναι σε μίλια και αν χρειαστεί να αλλάξετε σε KM ή NM, θα θέλετε επίσης να αλλάξετε αυτές τις γραμμές.

Τι συμβαίνει εδώ, στα 1350 μίλια, ο ΔΔΣ βρίσκεται στον ορίζοντα και μπορείτε απλώς να αρχίσετε να ακούτε τους αναμεταδότες από το ραδιόφωνο - δεν είναι υπέροχο και η επικοινωνία σε αυτό το σημείο δεν μπορεί πραγματικά να συμβεί. Η λυχνία LED γίνεται ΚΟΚΚΙΝΗ - αυτό είναι ένα κεφάλι προς τα πάνω - ο ISS πλησιάζει.

Μετά από σύντομο χρονικό διάστημα, ή εάν ο ISS είναι μεταξύ 1150 και 1200 μιλίων, το LED θα γίνει πορτοκαλί - αυτό φαίνεται πραγματικά πιο κίτρινο, αλλά υποστηρίζει να είναι πορτοκαλί. - Στα 1150 μίλια θα πρέπει να αρχίσετε να ακούτε λίγο περισσότερο - η αμφίδρομη επικοινωνία πιθανότατα δεν θα είναι ακόμα δυνατή σε ένα HT 5 watt.

Μεταξύ 950 και 1150 μιλίων - Το LED πρέπει να γίνει κίτρινο - έχετε μια αξιοπρεπή πιθανότητα να κάνετε μια επαφή - ακόμα δεν είναι μεγάλη, αλλά είναι τουλάχιστον δυνατό σε αυτό το σημείο (το κίτρινο μου φαίνεται πιο πράσινο από το κίτρινο - οπότε κάτι άλλο για να λειτουργήσει επί)

Κάτω από 950 μίλια το LED θα είναι σταθερό ΠΡΑΣΙΝΟ - και μπορούν να γίνουν αμφίδρομες επαφές.

Καθώς ο ISS απομακρύνεται από το LED θα μεταβεί από το πράσινο στο κίτρινο στο πορτοκαλί στο κόκκινο και στη συνέχεια στο OFF.

Πρέπει να σημειωθεί εδώ, όλα συμβαίνουν πολύ γρήγορα - τα περισσότερα περάσματα στην περιοχή μου διαρκούν κάτω από 10 λεπτά και ο κανονικός χρήσιμος χρόνος επαφής είναι κάτω από 5 λεπτά.

Θα πρέπει επίσης να σημειωθεί ότι ο ISS μπορεί να αλλάξει τη θέση του και ότι το API μπορεί να ενημερώνεται ή όχι - οπότε ακόμα και αν έχετε πράσινο φως - μπορεί να μην ακούτε τίποτα.

** Η λειτουργία του ερασιτεχνικού εξοπλισμού γίνεται επίσης προαιρετικά και εθελοντικά, και ενώ προσπαθούν να λειτουργήσουν τον εξοπλισμό, υπάρχει χρόνος όταν πρέπει να τον κλείσουν για ρεύμα ή λόγω του τι πρέπει να κάνουν. Είναι πάντα καλή ιδέα να ελέγχετε τους ιστότοπους AMsat ή ARISS **

Βήμα 4: Ο κώδικας PHP

Ο κώδικας PHP
Ο κώδικας PHP

Στο αποθετήριο github, έχω συμπεριλάβει τον κώδικα PHP μου από το 2013.

Ο κώδικας σχεδιάστηκε για να εκτελείται από το CLI (ή τη γραμμή εντολών). Έχει περάσει πολύς καιρός από τότε που τα έγραψα, αλλά νομίζω ότι η μόνη απαίτηση ήταν να είναι ενεργοποιημένες οι επεκτάσεις JSON.

Τα σενάρια εξακολουθούν να λειτουργούν και αν θέλετε να τα εκτελέσετε, κάντε το ελεύθερο!

Για χρήστες Windows υπάρχουν πληροφορίες εδώ σχετικά με την εγκατάσταση της PHP

Βεβαιωθείτε ότι έχετε εγκαταστήσει την έκδοση CLI. Νομίζω ότι κατά την εγκατάσταση μπορείτε να επιλέξετε ποιες επεκτάσεις θα ενεργοποιήσετε.

Οι χρήστες Linux εξαρτώνται από τη διανομή σας - χρησιμοποιώ διανομή που βασίζεται στο Ubuntu - και τους συναπτικούς ως διαχειριστή πακέτων.

Θα θέλετε php7.0-common, php7.0-json, php7.0-cli, php7.0-curl

Δεν νομίζω ότι χρησιμοποίησα το CURL με αυτά, οπότε μπορεί να μην το χρειάζεστε. Τα υπόλοιπα θα τα βρείτε στη φάτνη της επιλογής σας ή στον ιστότοπο

Δύο από τα σενάρια θα πρέπει να επεξεργαστούν με το γεωγραφικό πλάτος και το γεωγραφικό μήκος σας - δεν είναι πολύ μεγάλα και αυτό που πρέπει να αλλάξει είναι ακριβώς στην κορυφή του σεναρίου. Είναι iss-location.php και iss-pass-api.php

Το iss -location.php έχει αφήσει τις παλιές μου κλήσεις blink stick - δεν είμαι σίγουρος ότι λειτουργούν πλέον - αλλά μπορείτε να δείτε ότι άλλαζα τη λυχνία LED με τον ίδιο τρόπο που κάνω με την "Ειδοποίηση Eric". Δεν νομίζω ότι προκαλούν προβλήματα, αλλά μπορεί να θέλετε να τα σχολιάσετε.

iss-pass-api.php χρησιμοποιεί την εποχή εποχής και δίνει μια τοπική ώρα των προβλεπόμενων περάσεων. Με κάθε ειλικρίνεια προτιμώ την έκδοση PHP αυτού του σεναρίου σε σύγκριση με την έκδοση DDuino (η οποία αυτή τη στιγμή κάνει μόνο προβλέψεις UTC)

Η έκδοση PHP διαμορφώνεται επίσης καλύτερα για εμφάνιση - αλλά αυτό είναι πραγματικά ένα μικρό πράγμα.

Το τελικό σενάριο PHP είναι iss -people.php - και θα εμφανίζει τα ονόματα και σε ποια διαστημικά σκάφη βρίσκονται. Αυτό είναι το μόνο που κάνει. (Και αυτές οι πληροφορίες δεν αλλάζουν συχνά)

Τα βασικά για την εκτέλεση ενός σεναρίου PHP από τη γραμμή εντολών είναι:

$ php iss-people.php

Τα αρχεία PHP είναι αρχεία κειμένου και μπορούν να ανοίξουν από οποιονδήποτε επεξεργαστή κειμένου. Χρήστες των Windows Νομίζω ότι τα έχω αποθηκεύσει έτσι ώστε να έχουν επιστροφή γραμμής και μεταφοράς. ΑΝ δεν https://www.editpadlite.com/ μπορεί να λειτουργήσει γι 'αυτούς.

Βήμα 5: Τα βίντεο και περισσότερες πληροφορίες ISS & ζαμπόν

Image
Image

Λήψη άδειας ζαμπόν στην Ηνωμένη Πολιτεία:

Όχι στις ΗΠΑ; Κάθε χώρα έχει τους δικούς της κανόνες και οδηγούς αδειών - ελέγξτε με το ποιος διέπει τις επικοινωνίες σας (Εδώ στις ΗΠΑ είναι η Ομοσπονδιακή Επιτροπή Επικοινωνιών της FCC)

Υπολογίστε την απόσταση, το ρουλεμάν και άλλα μεταξύ των σημείων γεωγραφικού πλάτους και γεωγραφικού μήκους.

Αυτό θα ήταν πολύ πιο δύσκολο να γίνει χωρίς τα πολύ χρήσιμα API από το Open Notify

Πώς να δείτε τον Διαστημικό Σταθμό από το έδαφος.

Ραδιοερασιτεχνικός Δορυφόρος AMSAT

Πληροφορίες AMSAT για το ραδιόφωνο στο ISS

Ερασιτεχνικό ραδιόφωνο ARISS στο Διεθνή Διαστημικό Σταθμό

ISS Fan Club - Συχνότητες ISS

Καταχώρηση Wikipedia στο APRS

APRS.org

Βήμα 6: Τελικές σκέψεις…

Αυτό ήταν ένα διασκεδαστικό έργο, με πολύ απλό υλικό.

Υπάρχουν μερικά πράγματα που θα ήθελα να αλλάξω, αλλά συνολικά είμαι πολύ ευχαριστημένος με τα αποτελέσματα.

Πράγματα που πρέπει να αλλάξουν:

1) Βρείτε έναν τρόπο για να έχετε προβλέψεις σε τοπική ώρα και όχι UTC

2) Βρείτε καλύτερους κωδικούς αριθμούς χρωμάτων για πορτοκαλί και κίτρινο.

3) Ενημερώστε για εργασία με την πλακέτα ESP32 X, με OLED και 4 Neopixels.

Εάν θεωρείτε ότι αυτό ή οποιοδήποτε από τα έργα μου είναι χρήσιμο ή ευχάριστο, υποστηρίξτε με.

Οτιδήποτε παίρνω πηγαίνει για να αγοράσω περισσότερα μέρη και να κάνω περισσότερα/καλύτερα έργα.

www.patreon.com/kd8bxp

ko-fi.com/lfmiller

Συνιστάται: