Projets IoT

Suivre la Station spatiale internationale avec Ubidots

Agustín Peláez
· 3 min de lecture
Envoyer par email

Vous êtes passionné d’espace et rêvez d’atteindre un jour les étoiles ? Ce projet simple et rapide pourrait bien être votre première étape pour y arriver. 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. Abritant 6 membres d'équipage à la fois, cet engin est constamment en orbite autour de la Terre et transmet des millions de données. points de données chaque jour. Des données utilisées dans la recherche spatiale, chimique, biologique et phycologique au profit de nous tous qui occupons encore la Terre.

L'année dernière, les leaders informatiques Texas Instrument et la NASA se sont associés pour accroître la sensibilisation et l'activité des élèves du secondaire et du secondaire afin d'explorer les sciences, la technologie, l'ingénierie et les mathématiques (STEM) et de les impliquer dans la résolution de problèmes, le raisonnement et la modélisation des pratiques. programme de base STEM que les professionnels utilisent quotidiennement pour soutenir la Station spatiale internationale.

En tant que partisans des STEM et de tout ce qui concerne l'informatique, Ubidots et nos ingénieurs voulaient se joindre à la fête et trouver un moyen d'utiliser notre logiciel IoT avec certains des projets STEM les plus intéressants qui se déroulent dans les salles de classe du monde entier. Et puisque STEM, la Station spatiale internationale et Ubidots sont toutes des organisations mondiales, quelle meilleure façon de travailler avec l'ISS que de pouvoir la suivre et vous avertir chaque fois qu'elle passe au-dessus de votre tête.

Grâce à Open Notify rendu possible par Nathan Bergey, vous pouvez facilement envoyer des mises à jour de la position de l'ISS en temps réel à Ubidots . En lisant ses données en direct depuis Open Notify, nous sommes en mesure de mesurer la distance entre l'ISS et Boston (au moment où j'écris ce blog), puis de publier l'intégralité des données sur Ubidots pour votre plus grand plaisir.

Pour ce faire, saisissez et mettez à jour le code source ci-dessous avec de votre Raspberry Pi . Assurez-vous de mettre à jour vos informations d'identification avec votre propre clé API et votre identifiant de variable, ainsi que de modifier les coordonnées en fonction de votre emplacement. Pour savoir comment envoyer un contexte à l' Ubidots , consultez notre documentation.

Remarque : ce script suit simplement la position de l'ISS et utilise une formule standard pour calculer sa distance jusqu'à un point spécifique de la Terre. Cela ne reflète pas les opportunités d'observation réelles car cela dépend davantage de variables météorologiques et temporelles que de la simple proximité (c'est-à-dire de l'emplacement par rapport à vous).

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

Cliquez ici pour démarrer avec Ubidots .

à partir d' ubidots importent les requêtes d'importation ApiClient, heure de l'importation mathématique * #Connectez-vous à Ubidots api = ApiClient('a21ebaf64e14d195c0044fcxxb9f6dab9d653af3') #Instancier une variable locale à partir d' Ubidots local_distance = api.get_variable('54ca7a2176254xxxfd4b9493f') def main() : tandis que(1): #Obtenir la position actuelle de l'ISS req_iss = requêtes.get('http://api.open-notify.org/iss-now.json') dict = req_iss.json() latlong = dict['iss_position']; lat1 = latlong['latitude'] lon1 = latlong['longitude'] #Calculer la distance jusqu'au domicile lat2 = 50,085305 lon2 = -5,315853 d = getDistance(lat1,lon1,lat2,lon2) d = round(d,1) #Envoyer 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 en dessous de 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 à chaque fois que la station passe à proximité. Ici, nous avons créé une notification indiquant que chaque fois que l'ISS se trouve à moins de 300 m de Boston, je recevrai un e-mail.

Avis de projet : ce script suit la position de l'ISS et utilise une formule standard pour calculer sa distance jusqu'à un point spécifique de la Terre. Cela ne reflétera pas les véritables opportunités d'observation car cela ne dépend pas seulement de la proximité (c'est-à-dire l'heure de la journée et la météo).

Bon piratage 🙂