IoT

Seguimiento en vivo de la Estación Espacial Internacional

Agustín Peláez
· 2 minutos de lectura
Enviar por correo electrónico

Durante la reunión de usuarios de Python de Boston del pasado octubre , organizamos este proyecto sencillo pero divertido. Dado que se trataba de una reunión de software, no de hardware, mi objetivo era analizar datos ya disponibles en tiempo real y comprenderlos mediante el Ubidots .

Por suerte, encontré este servicio , gracias a Nathan Bergey, que actualiza la posición de la EEI en tiempo real. Al leer sus datos en tiempo real, podemos medir la distancia entre la EEI y Boston y luego publicar todos los datos en Ubidots

Una vez que los datos estén allí, se puede configurar una alerta para que se active siempre que la estación esté cerca:

Evento ISS

¿Qué tal activar una URL HTTP que encienda una luz cada vez que la estación vuele sobre tu cabeza?

Presentamos el código fuente a continuación. Puede insertar su propia clave API e ID de variable, modificar las coordenadas para que coincidan con su ubicación y debería funcionar como se muestra arriba. Para saber cómo enviar un GeoPoint a la API Ubidots consulte nuestra documentación .

Nota: Este script simplemente rastrea la posición de la EEI y utiliza una fórmula estándar para calcular su distancia a un punto específico de la Tierra. No refleja las oportunidades reales de avistamiento, ya que esto depende de más variables que la proximidad (por ejemplo, la hora del día).

¿Tienes una idea de proyecto para rastrear algo en tiempo real?

Haga clic aquí para comenzar

de ubidots importar ApiClient importar solicitudes, tiempo de math importar * #Conectarse a Ubidots api = ApiClient('a21ebaf64e14d195c0044fcxxb9f6dab9d653af3') #Instanciar variable local de Ubidots local_distance = api.get_variable('54ca7a2176254xxxfd4b9493f') def main(): while(1): #Obtener la posición actual de la ISS req_iss = requests.get(' http://api.open-notify.org/iss-now.json ') dict = req_iss.json() latlong = dict['iss_position']; lat1 = latlong['latitud'] lon1 = latlong['longitud'] #Calcular distancia a casa lat2 = 50.085305 lon2 = -5.315853 d = getDistance(lat1,lon1,lat2,lon2) d = round(d,1) #Enviar valor a Ubidots local_distance.save_value({'value':d,'context':{'lat':lat1,'lng':lon1}}) time.sleep(1) def getDistance(lat1,lon1,lat2,lon2): R = 6371; #Radio de la Tierra en km dLat = deg2rad(lat2-lat1); # deg2rad a continuación 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)); re = R * c; # Distancia en km retorno d; def grados2rad(grados): devuelve grados * (pi/180) si nombre == ' principal ': principal()