תוכן עניינים:

מערכת הודעות ISS פשוטה: 6 שלבים (עם תמונות)
מערכת הודעות ISS פשוטה: 6 שלבים (עם תמונות)

וִידֵאוֹ: מערכת הודעות ISS פשוטה: 6 שלבים (עם תמונות)

וִידֵאוֹ: מערכת הודעות ISS פשוטה: 6 שלבים (עם תמונות)
וִידֵאוֹ: אני רוצה שווארמה 🌯 2024, נוֹבֶמבֶּר
Anonim
מערכת הודעות ISS פשוטה
מערכת הודעות ISS פשוטה
מערכת הודעות ISS פשוטה
מערכת הודעות ISS פשוטה

מהי תחנת החלל הבינלאומית ולמה אתה רוצה לחזות היכן היא נמצאת?

כדי לענות על השאלה הראשונה נוכל לחפש באתר נאס"א תשובה. מה שבקיצור הוא:

תחנת החלל הבינלאומית היא חללית גדולה. הוא מסתובב סביב כדור הארץ. זהו בית בו מתגוררים אסטרונאוטים. תחנת החלל היא גם מעבדת מדע. מדינות רבות פעלו יחד לבנייתו. הם גם עובדים יחד כדי להשתמש בו. תחנת החלל בנויה מחלקים רבים. החלקים הורכבו בחלל על ידי אסטרונאוטים. מסלול תחנת החלל נמצא כ- 220 קילומטרים מעל כדור הארץ. נאס"א משתמשת בתחנה כדי ללמוד על חיים ועבודה בחלל. שיעורים אלה יסייעו לנאס"א לחקור את החלל.

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

על השאלה השנייה קצת יותר קשה לענות - אבל אנסה.

אני מפעיל רדיו חובבני (או מפעיל רדיו חם) - דבר שתמיד מצאתי כיף היה להשתמש ברדיו ידני בעל עוצמה נמוכה (5 וואט או פחות) ולתקשר עם לוויינים המסתובבים. ל- ISS יש ציוד רדיו על הסיפון.

מוקדם בימי החזיר שלי אני משתמש בתקשורת עם הלוויינים לא מעט, אפילו יוצר קשרים רק עם אנטנת הברווז הגומי - דבר שקשה מאוד לעשות. יצרתי כמה קשרים עם ה- ISS באמצעות APRS (מערכת דיווח מנות אוטומטי) זה היה בשנת 2013 - מזמן, מאז אני מאוד לא פעיל. זה משהו שרציתי לחזור אליך.

בשנת 2013 כתבתי כמה סקריפטים של PHP לשורת הפקודה שיגידו לי את המיקום של ה- ISS, ויעזרו לחזות מתי זה יהיה מעל הראש. באותו זמן השתמשתי במבט מהבהב, וגרמתי לו לשנות צבעים כאשר ה- ISS מתקרב. הודות לעבודה ב https://open-notify.org ולממשק ה- API שלו היה די קל להכין אותן.

2018 - 5 שנים מאוחר יותר הסבתי סוף סוף את ה- PHP הזה ל- Arduino C (למעשה היה קל מאוד לעשות זאת).

הפרויקט שלי משתמש ב- D-Duino (שהוא באמת NodeMCU עם OLED על הסיפון), זה כל מה שיש בו.

אני עדיין משתמש באותו ממשק API של

כתבתי גם קוד כלשהו לשימוש ב- D1 Mini ובמגן WS2812 (ראה מידע נוסף על פרויקט הממונה על אריק שלי).

שלב 1: חומרה פשוטה

חומרה פשוטה
חומרה פשוטה

D-Duino (NodeMCU)

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

זהו, זה כל מה שנדרש. כמובן שאתה יכול להשתמש בחומרה אחרת - זה אמור לעבוד על כל מכשיר ESP8266 שיכול להשתמש ב- I2C OLED. ה- D-Duino הוא ברובו NodeMCU בתוספת ה- OLED.

ניתן למצוא את הקוד

יהיה עליך להתקין את לוחות ESP8266 ב- Arduino IDE. הוראות ניתן למצוא כאן:

(הדרך הקלה ביותר היא עם מנהל הלוחות)

תצטרך גם כמה ספריות - אני חושב שאת כל אלה ניתן למצוא כעת במנהל הספרייה (אבל אני לא בטוח במאה אחוז בזה).

דרושות ספריות: ArduinoJson.h

Adafruit_NeoPixel

WifiManager.h

TimeLib.h

esp8266-oled-ssd1306

(אני לא בטוח מאיפה השגתי TImeLib, ואולי זה נכלל ב- Arduino IDE ??)

הדרך הפשוטה ביותר להתקין אותם היא באמצעות מנהל הספרייה. אם לא בצע את ההוראות של כל ספרייה.

שלב 2: הסקיצות

הסקיצות
הסקיצות

כרגע שני סקיצות ושלושה סקריפטים של PHP כלולים במאגר github.

הודעה DDuino_ISS_ שיש להשתמש בה עם חומרת ה- D-Duino מלמעלה.

ו- EricISSnotification שמשתמשת ב"מפקח אריק "הקודם שלי מהפרויקט" אנשי כדור הארץ ". (עוד על כך בהמשך)

בשני המערכונים ליד קו 30 (או איפשהו ממש קרוב לזה) - תראה כמה משתני צף בשם mylat ו- mylon. יהיה עליך לשנות את שני הקווים הללו עם קו הרוחב והאורך שלך - אם אינך יודע את הטורט והלון שלך תוכל להשתמש באתר זה https://www.latlong.net מרכז העיר שלך אמור להיות בסדר. זה לא חייב להתאים לקו הרוחב או לקו האורך שלך. המערכונים עושים קצת עיגולים ומתמטיקה אחרת כדי להגיע למרחק משוער של ה- ISS בארצות הברית מיילס.

אני מאמין שזה הדבר היחיד שצריך לשנות במערכונים.

המתמטיקה לחישוב המרחק מבוססת על מרחק המעגל הגדול בין שתי נקודות, ואת הטופס ניתן למצוא כאן-https://www.movable-type.co.uk/scripts/latlong.htm…

אתר זה מספק מידע רב על אופן חישוב המרחק בין שני קווי רוחב וקווי אורך, כמו גם מסבים. איננו משתמשים בחישובי נושאים לכך.

כדי שהפורמלית תעבוד אנחנו אכן צריכים להשיג תטא ולהמיר תואר כלשהו לזוהר, ולהיפך, קורן לדרגה. מכיוון שהארדואינו לא עושה חשבון כל כך טוב, עלינו לעזור לו מעט עם ההמרות.

void getDistance () {

צף תטא, דיסט, מיילים;

תטא = מילון - איסלון;

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

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

מיילים = דיסט * 60 * 1.1515;

מרחק = מיילים;

}

float deg2rad (float n) {

רדיאן צף = (n * 71)/4068;

החזר רדיאן;

}

לצוף rad2deg (float n) {

תואר צף = (n*4068)/71;

תואר החזרה;

}

עיקר המתמטיקה נעשית ליד קו 127 - אם תרצה מרחק שונה (נניח KM או מייל ימי)

אתה יכול לשנות את "מיילים = dist * 60 * 1.1515;" קַו.

עבור KM זה יהיה משהו כמו "מייל = (dist*60*1.1515)*1.609344;"

עבור מיילים ימיים משהו כמו "מייל = (dist*60*1.1515)*0.8684;"

סביר להניח שתרצה גם לשנות את קו ההדפסה הסידורי ואת קו התצוגה OLED שאומר קילומטרים למדידה החדשה שלך.

שהיא שורה 86 ו -96 במערכון DDuino_ISS_notification.

שלב 3: סקיצה של אריק

הסקיצה של אריק
הסקיצה של אריק
הסקיצה של אריק
הסקיצה של אריק
הסקיצה של אריק
הסקיצה של אריק

המפקח אריק הוא AI או חייזר מאנשי כדור הארץ TBS TV, אנא עיין במדריך השני שלי על הבניה שלי.

הדבר הבסיסי ביותר שאתה צריך עבור מערכת ההודעות הזו הוא D1 מיני ומגן WS2812 - כשהוא נמצא בקופסה יפה עם עדשה נחמדה גורם לה להיראות - טוב.

שוב, כל ESP8266 עם פיקסל WS2812 אמור לעבוד, באמת שאין כאן קסם - מגן WS2812 מחובר ל- D2 במיני D1 (שלדעתי הוא סיכה 4 בלוחות NodeMCU, ואולי לוחות ESP8266 אחרים).

לסקיצה:

כמו לעיל תצטרך לשנות את קו הרוחב והאורך שלך בסקיצה ליד קו 27. וכמו למעלה הסקיצה הזו גם מחשבת מרחק בין קו הרוחב לקווי אורך. שלא כמו הסקיצה לעיל, התצוגה היחידה הזו היא עם ה- WS2812 Neopixel LED.

המתמטיקה קרובה לקו 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);} // נראה לי ירוק/צהוב

אם (מרחק <= 950) {colorDisplay (strip. Color (0, 255, 0), p);}

אם (מרחק> = 1351) {colorDisplay (strip. Color (0, 0, 0), p);}

}

היחידות נמצאות בקילומטרים, ואם אתה צריך לשנות ל- KM או NM, תרצה גם לשנות את השורות האלה.

מה קורה כאן אתה, במרחק 1350 קילומטרים, ה- ISS רק באופק ואתה יכול פשוט להתחיל לשמוע את המשדרים מהרדיו - זה לא נהדר, ותקשורת בשלב זה לא באמת יכולה לקרות. הנורית הופכת לאדומה - זה ראש בראש - ה- ISS מתקרב.

לאחר זמן קצר, או אם ה- ISS נמצא בין 1150 ל- 1200 קילומטרים, ה- LED יהפוך לכתום - זה באמת נראה יותר צהוב אבל זה תמיכה להיות כתום. - ב 1150 קילומטרים אתה צריך להתחיל לשמוע לא מעט יותר - תקשורת דו כיוונית כנראה עדיין לא תתאפשר על HT 5 וואט.

בין 950 ל- 1150 קילומטרים - הנורית צריכה להיות צהובה - יש לך סיכוי לא רע ליצור קשר - עדיין לא נהדר, אבל זה לפחות אפשרי בשלב זה (צהוב נראה לי יותר ירוק מאשר צהוב - אז משהו אחר יעבוד עַל)

מתחת ל -950 מייל הנורית תהיה ירוק יציב - וניתן ליצור קשרים דו -כיווניים.

ככל ש- ISS מתרחק מהנורית יגיע מירוק לצהוב לכתום לאדום ואז לבסוף לכבוי.

יש לציין כאן, כל זה קורה מהר מאוד - רוב המעברים באזור שלי נמשכים פחות מ -10 דקות, וזמן יצירת קשר רגיל הוא מתחת ל -5 דקות.

כמו כן יש לציין כי ה- ISS יכול לשנות את המיקום שלו, וייתכן כי ה- API יתעדכן ואולי לא - כך שגם אם יש לך נורה ירוקה - ייתכן שלא תשמע דבר.

** הפעלת הציוד החובבני מתבצעת גם היא אופציונלית וגם מרצון, ובעוד שהם מנסים להפעיל את הציוד יש זמן שהם צריכים לכבות אותו בגלל כוח, או בגלל מה שהם צריכים לעשות. תמיד כדאי לבדוק באתרי AMsat או ARISS **

שלב 4: קוד ה- PHP

קוד ה- PHP
קוד ה- PHP

במאגר github, כללתי את קוד ה- PHP שלי משנת 2013.

הקוד תוכנן להפעלה מתוך CLI (או שורת הפקודה). עבר זמן מה מאז שכתבתי את אלה אבל אני חושב שהדרישה היחידה הייתה להפעיל את הרחבות JSON.

התסריטים עדיין עובדים, ואם אתה רוצה להריץ אתה מוזמן לעשות זאת!

עבור משתמשי Windows יש כאן מידע על התקנת PHP

הקפד להתקין את גרסת CLI. אני חושב שככל שאתה מתקין אתה יכול לבחור אילו תוספים להפעיל.

משתמשי לינוקס תלויים בהפצה שלך - אני משתמש במערכת הפצה מבוססת אובונטו - וסינפטי כמנהל החבילות שלי.

תרצה php7.0-common, php7.0-json, php7.0-cli, php7.0-curl

אני לא חושב שהשתמשתי ב- CURL עם אלה, כך שאולי לא תזדקק לזה. את השאר יש למצוא באבוס החבילות המועדף עליך או באתר

שניים מהתסריטים יצטרכו לערוך עם קו הרוחב והאורך שלך - הם לא ארוכים במיוחד, ומה שצריך לשנות נמצא בחלק העליון של התסריט. הם iss-location.php ו- iss-pass-api.php

ל- iss -location.php נותרו בו שיחות ההברקה הישנות שלי - אני לא בטוח שהן פועלות יותר - אבל אתה יכול לראות שהחלפתי את הנורית בערך באותו אופן שאני עושה עם "הודעת אריק" שלי. אני לא חושב שהם גורמים לבעיות, אבל כדאי שתעיר אותם.

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 & Ham

Image
Image

קבלת רישיון חם בארצות הברית:

לא בארה"ב? לכל מדינה יש מערך כללים ומדריכי רישיון משלה - בדקו עם מי מנהל את התקשורת שלכם (כאן בארה"ב זו ועדת התקשורת הפדרלית של FCC)

חשב מרחק, מסבים ועוד בין נקודות קו אורך ואורך.

זה היה הרבה יותר קשה לעשות זאת ללא ממשקי ה- API המועילים של Open Notify

כיצד לראות את תחנת החלל מהקרקע.

לוויין חובב רדיו AMSAT

AMSAT מידע על רדיו ב- ISS

רדיו חובבנים ARISS בתחנת החלל הבינלאומית

מועדון מעריצים של ISS - תדרי ISS

ערך ויקיפדיה ב- APRS

APRS.org

שלב 6: מחשבות אחרונות …

זה היה פרויקט מהנה, עם חומרה פשוטה מאוד.

יש כמה דברים שהייתי רוצה לשנות, אבל בסך הכל אני מאוד מרוצה מהתוצאות.

דברים שצריך לשנות:

1) מצא דרך לקבל תחזיות מעבר בזמן המקומי, לא UTC

2) מצא מספרי קוד צבע טובים יותר עבור כתום וצהוב.

3) עדכון לעבודה עם לוח XP ESP32, עם OLED ו- 4 Neopixels.

אם אתה מוצא את זה או כל אחד מהפרויקטים שלי מועילים או מהנים אנא תמכו בי.

כל מה שאני מקבל הולך לרכוש עוד חלקים ולעשות פרויקטים נוספים/טובים יותר.

www.patreon.com/kd8bxp

ko-fi.com/lfmiller

מוּמלָץ: