Suivre la Station spatiale internationale avec Ubidots

Vous êtes passionné d'espace et rêvez d'atteindre les étoiles un jour ? Ce projet simple et rapide pourrait bien être votre premier pas vers cet objectif. Suivez la Station spatiale internationale avec Ubidots et recevez une alerte à chaque passage de la station.

La Station spatiale internationale (ISS) est un satellite habité en orbite basse qui mène des expériences et collecte des données spatiales depuis son lancement initial en novembre 1998. Accueillant six membres d'équipage simultanément, ce vaisseau orbite constamment autour de la Terre et transmet quotidiennement des millions de points de données. Ces données sont utilisées dans la recherche spatiale, chimique, biologique et psychique, au bénéfice de tous les habitants de la Terre.

L'année dernière, les leaders informatiques de Texas Instruments et de la NASA se sont associés pour sensibiliser et impliquer davantage les élèves du secondaire dans l'exploration des sciences, des technologies, de l'ingénierie et des mathématiques (STEM) et les inciter à résoudre des problèmes, à raisonner et à modéliser des pratiques, conformément au programme de base STEM que les professionnels utilisent quotidiennement pour soutenir la Station spatiale internationale.

En tant que fervents défenseurs des sciences, des technologies, de l'ingénierie et des mathématiques (STEM) et de l'informatique en général, Ubidots et ses ingénieurs souhaitaient participer à l'initiative et trouver un moyen d'utiliser son logiciel IoT avec certains des projets STEM les plus passionnants menés dans les écoles du monde entier. Et puisque les STEM, la Station spatiale internationale et Ubidots sont des organisations internationales, quoi de mieux pour collaborer avec l'ISS que de pouvoir la suivre et être notifié de son passage ?.

Grâce à Open Notify, développé par Nathan Bergey, vous pouvez facilement envoyer en temps réel les mises à jour de la position de l'ISS à Ubidots . En consultant ces données en direct, nous pouvons mesurer la distance entre l'ISS et Boston (au moment où j'écris ce billet) et les publier sur Ubidots pour votre plus grand plaisir.

Pour ce faire, saisissez et mettez à jour le code source ci-dessous à l'aide de votre Raspberry Pi . Veillez à remplacer votre clé API et l'identifiant de votre variable par les vôtres, et à modifier les coordonnées pour qu'elles correspondent à votre emplacement. Pour savoir comment envoyer un contexte à l' Ubidots , consultez notre documentation.

Remarque : Ce script se contente de suivre la position de l’ISS et d’utiliser une formule standard pour calculer sa distance par rapport à un point précis sur Terre. Il ne tient pas compte des réelles possibilités d’observation, car celles-ci dépendent davantage des conditions météorologiques et de l’heure que de la simple proximité (c’est-à-dire de votre position relative).

Vous avez une idée de projet pour suivre quelque chose en temps réel ?

Cliquez ici pour commencer avec Ubidots .

from ubidots import ApiClient import requests,time from math import * # Connexion à l'API Ubidots api = ApiClient('a21ebaf64e14d195c0044fcxxb9f6dab9d653af3') # Instanciation de la variable locale depuis Ubidots local_distance = api.get_variable('54ca7a2176254xxxfd4b9493f') def main(): while(1): # Récupération de la position actuelle de l'ISS req_iss = requests.get('http://api.open-notify.org/iss-now.json') dict = req_iss.json() latlong = dict['iss_position']; lat1 = latlong['latitude'] lon1 = latlong['longitude'] # Calcul de la distance au domicile lat2 = 50.085305 lon2 = -5.315853 d = getDistance(lat1,lon1,lat2,lon2) d = round(d,1) # Envoi de la valeur à Ubidots local_distance.save_value({'value':d,'context':{'lat':lat1,'lng':lon1}}) time.sleep(1) def getDistance(lat1,lon1,lat2,lon2): R = 6371; # Rayon de la Terre en km dLat = deg2rad(lat2-lat1); # deg2rad ci-dessous dLon = deg2rad(lon2-lon1); a = sin(dLat/2) * sin(dLat/2) + cos(deg2rad(lat1)) * cos(deg2rad(lat2)) * sin(dLon/2) * sin(dLon/2) c = 2 * atan2(sqrt(a), sqrt(1-a)); d = R * c ; # Distance en km retour d; def deg2rad(deg) : renvoie deg * (pi/180) si __name__ == '__main__' : main()

Une fois les données envoyées à Ubidots, vous pouvez programmer une alerte pour déclencher un événement lorsque la station passe à proximité. Nous avons par exemple configuré une notification pour que je reçoive un courriel dès que l'ISS se trouve à moins de 300 m de Boston.

Note concernant le projet : Ce script suit la position de l’ISS et utilise une formule standard pour calculer sa distance par rapport à un point précis sur Terre. Les conditions d’observation réelles ne seront pas garanties, car elles dépendent de nombreux facteurs, outre la proximité (comme l’heure et les conditions météorologiques).

Bon piratage 🙂