Table des matières:

Système de notification ISS simple : 6 étapes (avec photos)
Système de notification ISS simple : 6 étapes (avec photos)

Vidéo: Système de notification ISS simple : 6 étapes (avec photos)

Vidéo: Système de notification ISS simple : 6 étapes (avec photos)
Vidéo: Pourquoi il ne faut pas PLEURER dans l'ESPACE ? 2024, Juillet
Anonim
Système de notification ISS simple
Système de notification ISS simple
Système de notification ISS simple
Système de notification ISS simple

Qu'est-ce que la Station spatiale internationale et pourquoi voulez-vous prédire où elle se trouve ?

Pour répondre à la première question, nous pouvons consulter le site Web de la NASA pour obtenir une réponse. Ce qui en bref est:

La Station spatiale internationale est un gros vaisseau spatial. Il orbite autour de la Terre. C'est une maison où vivent les astronautes. La station spatiale est aussi un laboratoire scientifique. De nombreux pays ont travaillé ensemble pour le construire. Ils travaillent également ensemble pour l'utiliser. La station spatiale est composée de plusieurs pièces. Les pièces ont été assemblées dans l'espace par des astronautes. L'orbite de la station spatiale est à environ 220 miles au-dessus de la Terre. La NASA utilise la station pour apprendre à vivre et à travailler dans l'espace. Ces leçons aideront la NASA à explorer l'espace.

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

La deuxième question est un peu plus difficile à répondre - Mais je vais essayer.

Je suis un opérateur radio amateur (ou opérateur radio amateur) - une chose que j'ai toujours trouvé amusante était d'utiliser une radio portative de faible puissance (5 watts ou moins) et de communiquer avec des satellites en orbite. L'ISS dispose d'équipements radio à bord.

Au début de mes années de radioamateur, je communiquais pas mal avec les satellites, même en établissant des contacts avec juste l'antenne en caoutchouc - quelque chose de très difficile à faire. J'ai fait quelques contacts avec l'ISS grâce à l'APRS (Automatic Packet Reporting System) C'était en 2013 - il y a longtemps, je suis très inactif depuis. C'est quelque chose que je voulais revenir en toi.

En 2013, j'ai écrit quelques scripts PHP pour la ligne de commande qui me diraient l'emplacement de l'ISS et m'aideraient à prédire quand il serait au-dessus de ma tête. À ce moment-là, j'utilisais un bâton clignotant et je le faisais changer de couleur à l'approche de l'ISS. Grâce au travail sur https://open-notify.org et à son API, il était assez facile de les créer.

2018 - 5 ans plus tard, j'ai finalement converti ces PHP en Arduino C (en fait, c'était très facile à faire.)

Mon projet utilise un D-Duino (qui est vraiment un NodeMCU avec un OLED à bord), c'est tout ce qu'il y a à faire.

J'utilise toujours la même API de

J'ai également écrit du code pour utiliser un D1 Mini et un WS2812 Shield (voir mon projet Supervisor Eric pour en savoir plus).

Étape 1: Matériel simple

Matériel simple
Matériel simple

D-Duino (NodeMCU)

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

C'est ça, c'est tout ce qu'il faut. Bien sûr, vous pouvez utiliser un autre matériel - cela devrait fonctionner sur n'importe quel appareil ESP8266 pouvant utiliser un OLED I2C. Le D-Duino est en grande partie un NodeMCU avec en plus l'OLED.

Le code peut être trouvé

Vous aurez besoin d'avoir les cartes ESP8266 installées dans l'IDE Arduino. Les instructions peuvent être trouvées ici:

(le moyen le plus simple est d'utiliser le gestionnaire de cartes)

Vous aurez également besoin de certaines bibliothèques - je pense que toutes celles-ci peuvent être trouvées dans le gestionnaire de bibliothèque maintenant (mais je n'en suis pas sûr à 100%).

Bibliothèques nécessaires: ArduinoJson.h

Adafruit_NeoPixel

WifiManager.h

TimeLib.h

esp8266-oled-ssd1306

(Je ne sais pas d'où j'ai obtenu TIMELib, et il est peut-être inclus dans l'IDE Arduino ??)

La façon la plus simple de les installer est d'utiliser le gestionnaire de bibliothèque. Sinon, suivez les instructions avec chaque bibliothèque.

Étape 2: les croquis

Les croquis
Les croquis

Il y a actuellement deux croquis et trois scripts PHP inclus dans le référentiel github.

DDuino_ISS_notification qui doit être utilisé avec le matériel D-Duino d'en haut.

Et EricISSnotification qui utilise mon précédent projet "Supervisor Eric" de l'émission "People of Earth". (Plus à ce sujet plus tard)

Dans les deux croquis près de la ligne 30 (ou quelque part très proche) - Vous verrez quelques variables flottantes appelées mylat et mylon. Vous devrez changer ces deux lignes avec votre latitude et longitude - si vous ne connaissez pas votre lat et lon, vous pouvez utiliser ce site Web https://www.latlong.net Le centre de votre ville devrait être bien. Il n'a pas besoin de correspondre à votre latitude ou longitude exacte. Les croquis font quelques arrondis et d'autres calculs pour obtenir une distance approximative de l'ISS en miles américains.

Je crois que c'est la seule chose qui doit être changée dans les croquis.

Les mathématiques pour le calcul de la distance sont basées sur la distance orthodromique entre deux points, et le formel peut être trouvé ici -

Ce site fournit de nombreuses informations sur la façon de calculer la distance entre deux latitudes et longitudes ainsi que le relèvement. Nous n'utilisons aucun calcul de roulement pour cela.

Pour que le formel fonctionne, nous devons obtenir un thêta et convertir un certain degré en radiant, et inversement, radiant en degré. Étant donné que l'Arduino ne fait pas si bien les mathématiques, nous devons l'aider un peu avec les conversions.

void getDistance() {

flotteur thêta, dist, miles;

thêta = mylon - isslon;

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

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

miles = distance * 60 * 1,1515;

distance = milles;

}

float deg2rad(float n) {

radian flottant = (n * 71)/4068;

radian de retour;

}

float rad2deg(float n) {

degré flottant = (n*4068)/71;

degré de retour;

}

La majeure partie des calculs est effectuée près de la ligne 127 - SI vous souhaitez une distance différente (disons KM ou miles nautiques)

vous pouvez modifier les "miles = dist * 60 * 1,1515;" ligne.

Pour KM, ce serait quelque chose comme "miles = (dist*60*1.1515) * 1.609344;"

Pour les milles nautiques, quelque chose comme "miles = (dist*60*1.1515)*0.8684;"

Vous voudrez probablement aussi changer la ligne d'impression série et la ligne d'affichage OLED qui indiquent des kilomètres à votre nouvelle mesure.

Ce qui correspond aux lignes 86 et 96 du croquis DDuino_ISS_notification.

Étape 3: L'esquisse d'Eric

L'esquisse d'Eric
L'esquisse d'Eric
Le croquis d'Eric
Le croquis d'Eric
L'esquisse d'Eric
L'esquisse d'Eric

Le superviseur Eric est une IA ou un extraterrestre de TBS TV People of Earth, veuillez voir mon autre Instructable sur ma construction.

Le très basique dont vous avez besoin pour ce système de notification est un D1 Mini et le bouclier WS2812 - l'avoir dans une belle boîte avec un bel objectif lui donne l'air - bien sympa.

Encore une fois, tout ESP8266 avec un pixel WS2812 devrait fonctionner, il n'y a vraiment aucune magie qui se passe ici - Le blindage WS2812 est connecté à D2 sur le D1 mini (qui, je crois, est la broche 4 sur les cartes NodeMCU, et peut-être d'autres cartes ESP8266).

Au croquis:

Comme ci-dessus, vous devrez modifier votre latitude et votre longitude dans le croquis près de la ligne 27. Et comme ci-dessus, ce croquis calcule également une distance entre la latitude et les longitudes. Contrairement au croquis ci-dessus, ce seul affichage est avec la LED WS2812 Neopixel.

Les calculs sont près de la ligne 96, mais sinon, ils sont les mêmes que ci-dessus. Il y a toujours une sortie série si vous souhaitez voir ce qui se passe. Ce croquis ne fait que des calculs de localisation et de distance de l'ISS - il ne fait pas les prédictions de passage ou le nombre de personnes dans l'espace.

* Il convient de noter que la distance ici est en Miles, elle peut être modifiée si vous le souhaitez, mais vous devrez apporter quelques modifications supplémentaires à vos unités. *

Près de la ligne 116:

void setColor() {

if (distance = 1201) {colorDisplay(strip. Color(255, 0, 0), p);}

if (distance =1151) {colorDisplay(strip. Color(255, 153, 0), p);} // me semble plus jaune

if (distance = 951) {colorDisplay(strip. Color(255, 255, 0), p);} // me semble vert/jaune

if (distance <=950) {colorDisplay(strip. Color(0, 255, 0), p);}

if (distance >= 1351) {colorDisplay(strip. Color(0, 0, 0), p);}

}

Les unités sont en miles, et si vous devez changer en KM ou NM, vous voudrez également changer ces lignes.

Que se passe-t-il ici, à 1350 miles, l'ISS est juste à l'horizon et vous pouvez juste commencer à entendre les transpondeurs de la radio - ce n'est pas génial, et la communication à ce stade ne peut pas vraiment se produire. La LED devient ROUGE - c'est un avertissement - l'ISS se rapproche.

Après un court laps de temps, ou si l'ISS se situe entre 1150 et 1200 miles, la LED deviendra orange - cela a vraiment l'air plus jaune mais c'est un support pour être orange. - A 1150 miles, vous devriez commencer à entendre un peu plus - la communication bidirectionnelle ne sera probablement toujours pas possible sur un HT de 5 watts.

Entre 950 et 1150 miles - La LED devrait devenir jaune - vous avez une chance décente d'établir un contact - toujours pas génial, mais c'est au moins possible à ce stade (le jaune me semble plus vert que jaune - donc autre chose à travailler au)

En dessous de 950 miles, la LED sera un VERT fixe - et des contacts bidirectionnels peuvent être établis.

Au fur et à mesure que l'ISS s'éloigne de la LED, la LED passe du vert au jaune, à l'orange puis au rouge, puis s'éteint.

Il convient de noter ici que tout se passe très rapidement - la plupart des passages dans ma région durent moins de 10 minutes et le temps de contact utilisable normal est inférieur à 5 minutes.

Il convient également de noter que l'ISS peut changer d'emplacement et que l'API peut ou non être mise à jour - donc même si vous avez un feu vert - vous pourriez ne rien entendre.

** Le fonctionnement de l'équipement amateur est également facultatif et volontaire, et pendant qu'ils essaient de faire fonctionner l'équipement, ils ont le temps de l'éteindre pour l'alimentation ou à cause de ce qu'ils doivent faire. C'est toujours une bonne idée de consulter les sites Web AMsat ou ARISS **

Étape 4: Le code PHP

Le code PHP
Le code PHP

Dans le référentiel github, j'ai inclus mon code PHP de 2013.

Le code a été conçu pour s'exécuter à partir de la CLI (ou de la ligne de commande). Cela fait un moment que je ne les ai pas écrits, mais je pense que la seule exigence était d'avoir les extensions JSON activées.

Les scripts fonctionnent toujours, et si vous souhaitez les exécuter, n'hésitez pas à le faire !

Pour les utilisateurs de Windows, il y a des informations ici sur l'installation de PHP

Assurez-vous d'installer la version CLI. Je pense que lors de l'installation, vous pouvez sélectionner les extensions à activer.

Les utilisateurs de Linux dépendent de votre distribution - j'utilise une distribution basée sur Ubuntu - et synaptic comme gestionnaire de paquets.

Vous voudrez php7.0-common, php7.0-json, php7.0-cli, php7.0-curl

Je ne pense pas avoir utilisé CURL avec ceux-ci, donc vous n'en aurez peut-être pas besoin. Le reste devrait être trouvé dans le gestionnaire de paquets de votre choix ou sur le site Web

Deux des scripts devront être modifiés avec votre latitude et longitude - ils ne sont pas très longs, et ce qui doit être modifié se trouve juste en haut du script. Ce sont iss-location.php et iss-pass-api.php

iss-location.php contient mes anciens appels de bâton clignotant - je ne suis pas sûr que ceux-ci fonctionnent plus - mais vous pouvez voir que je changeais la LED de la même manière que je le fais avec ma "Notification Eric". Je ne pense pas qu'ils causent de problèmes, mais vous pouvez les commenter.

iss-pass-api.php utilise l'heure d'époque et donne une heure locale des passes prédites. En toute honnêteté, je préfère la version PHP de ce script par rapport à la version DDuino (qui pour le moment ne fait que des prédictions UTC)

La version PHP est également mieux formatée pour l'affichage - mais c'est vraiment une chose mineure.

Le script PHP final est iss-people.php - et il affichera les noms et sur quel vaisseau spatial ils se trouvent. C'est tout ce qu'il fait. (Et cette information ne change pas souvent)

Les bases de l'exécution d'un script PHP à partir de la ligne de commande sont:

$ php iss-personnes.php

Les fichiers PHP sont des fichiers texte et peuvent être ouverts par n'importe quel éditeur de texte. Utilisateurs de Windows, je pense que je les ai sauvegardés afin qu'ils aient à la fois des retours de ligne et des retours chariot. SI pas https://www.editpadlite.com/ pourrait fonctionner pour eux.

Étape 5: Les vidéos et plus d'informations sur l'ISS et le jambon

Image
Image

Obtenir une licence de jambon aux États-Unis:

Vous n'êtes pas aux États-Unis ? Chaque pays a son propre ensemble de règles et de guides de licence - vérifiez auprès de qui régit vos communications (ici aux États-Unis, c'est la Commission fédérale des communications de la FCC)

Calculez la distance, le relèvement et plus encore entre les points de latitude et de longitude.

Cela aurait été beaucoup plus difficile à faire sans les API très utiles d'Open Notify

Comment voir la Station spatiale depuis le sol.

Radioamateur AMSAT par satellite

Informations AMSAT sur la radio sur l'ISS

Radio amateur ARISS sur la Station spatiale internationale

Fan Club ISS - Fréquences ISS

Entrée Wikipedia sur APRS

APRS.org

Étape 6: Réflexions finales…

C'était un projet amusant, avec du matériel très simple.

Il y a quelques choses que j'aimerais changer, mais dans l'ensemble, je suis très content des résultats.

Choses qui doivent être changées:

1) Trouvez un moyen d'avoir des prédictions de réussite en heure locale, pas en UTC

2) Trouvez de meilleurs numéros de code de couleur pour l'orange et le jaune.

3) Mise à jour pour fonctionner avec la carte ESP32 X, avec OLED et 4 Neopixels.

Si vous trouvez ceci ou l'un de mes projets utile ou agréable, veuillez me soutenir.

Tout ce que j'obtiens sert à acheter plus de pièces et à faire plus/de meilleurs projets.

www.patreon.com/kd8bxp

ko-fi.com/lfmiller

Conseillé: