Servidor en las nubes: preparándose para su lanzamiento

В post sobre la regata Mencionamos que en agosto habrá un concurso con premios para todos los Habrazhitels. Ha llegado el momento de rasgar el velo del secreto. De alguna manera se nos ocurrió la idea de que la frase "servidor en las nubes" puede tomarse literalmente. ¡Lancemos al cielo un servidor funcional al que se pueda hacer ping! Al principio la idea parecía una locura, pero después de darle vueltas de un lado a otro, discutiéndola en todos los sentidos, finalmente se nos ocurrió una manera de enviar el servidor hacia los pájaros. A finales de agosto se realizará un lanzamiento trascendental, pero por ahora estamos trabajando en la parte de hardware del proyecto. Detalles bajo el corte.

Servidor en las nubes: preparándose para su lanzamiento

  1. El servidor estará basado en Raspberry Pi 3

    Sería interesante levantar en el aire un servidor de una sola unidad, pero su peso + el peso del UPS... Todo esto requeriría una fuerza de elevación considerable. Y por qué, si sobre la base de una Raspberry Pi 3 compacta se puede implementar un servidor bastante decente, con una potencia de cálculo varios cientos de veces mayor que la máquina en la que se divertía Tim Berners-Lee en 1991.

  2. Lanzamos el servidor en un globo aerostático.

    Tuvimos la idea de levantar el servidor con una sonda de helio, pero luego el servidor no hizo ping por mucho tiempo antes de que el globo explotara a gran altura en una atmósfera enrarecida y toda la estructura cayera al suelo. Quería ampliar la “ventana” de tiempo aire a una hora y media. Y luego decidieron usar un globo. La duración del vuelo es de dos horas. Además, aunque el vuelo no es totalmente controlable, en la cesta puede estar nuestro ingeniero, quien, en caso de avería, puede rápidamente, en el acto, “encenderlo y apagarlo”.

  3. Utilizaremos las comunicaciones celulares como red de transporte.

    Las antenas WiFi modernas pueden "perforar" distancias bastante largas, pero para ello sería necesario construir un complejo de comunicaciones que no sea muy inferior en parámetros a una estación de radar militar. Y por el bien de 1,5 a 2 horas de comunicación, no tiene sentido construir un sistema de este tipo, porque a la altura del globo, las comunicaciones celulares deben funcionar de manera estable.

Después de formular estos “postulados”, el proyecto ya no parecía impracticable y pronto comenzamos a trabajar en las tres direcciones a la vez.

En primer lugar, nos dirigimos a los chicos de nearspace.ru, que se comió al perro mientras lanzaba al aire todo tipo de trozos de hierro (con posterior búsqueda y rescate).

Luego sacamos la Raspberry Pi 3, que estaba en la mesita de noche de nuestro administrador, y comenzamos a configurarla.

Servidor en las nubes: preparándose para su lanzamiento
Conectó la cámara:

Servidor en las nubes: preparándose para su lanzamiento
Y lo probamos en nuestro "Semyon":

Servidor en las nubes: preparándose para su lanzamiento
Semyon es muy conveniente como modelo y asistente: no pide comida, no se distrae con el teléfono, siempre está de buen humor y con una amplia sonrisa en todo el casco. Por supuesto, no necesitamos un traje espacial de este tipo para el vuelo, pero crea la atmósfera adecuada en la oficina.

El esquema del proyecto es el siguiente:

Servidor en las nubes: preparándose para su lanzamiento
El Powerbank se utiliza para pruebas en tierra, se necesita algo más confiable para el lanzamiento.

Quizás el hardware más interesante sea una placa para recibir datos de todos los sensores:

Servidor en las nubes: preparándose para su lanzamiento
Chicos de nearspace.ru Luchamos durante mucho tiempo con varios análogos y luego hicimos nosotros mismos la computadora de a bordo, porque la confiabilidad es de importancia decisiva, el destino de todo el proyecto depende de los datos de telemetría. La computadora de a bordo se encarga de recibir datos de todos los sensores conectados y transmitirlos a la Raspberry Pi.

Lo lanzamos, lo configuramos y después de un par de semanas de programación y sentadillas con panderetas logramos obtener datos de telemetría y una foto de Semyon con una cámara gran angular:

Servidor en las nubes: preparándose para su lanzamiento
Los datos de telemetría se transmiten en una línea de la siguiente forma:

Servidor en las nubes: preparándose para su lanzamiento
Luego, este código convierte la cadena en una matriz y envía los datos al sitio:

$str = 'N:647;T:10m55s;MP.Stage:0;MP.Alt:49;MP.VSpeed:0.0;MP.AvgVSpeed:0.0;Baro.Press:1007.06;Baro.Alt:50;Baro.Temp:35.93;GPS.Coord:N56d43m23s,E37d55m68s;GPS.Home:N56d43m23s,E37d55m68s;Dst:5;GPS.HSpeed:0;GPS.Course:357;GPS.Time:11h17m40s;GPS.Date:30.07.2018;DS.Temp:[fc]=33.56;Volt:5.19,0.00,0.00,0.00,0.00,0.00,0.00,0.00';
parse_str(strtr($str, [
	
':' => '=',
	
';' => '&'
]), $result);
print_r($result);

Descripción de algunos datos:

  • N:2432; — número de paquete de datos, siempre creciente
  • T:40m39s; — tiempo desde el momento en que se enciende el controlador de vuelo
  • MP.Etapa:0; — etapa de vuelo (0 — en tierra o por debajo de 1 km, 1 — ascenso, 2 — flotando en altitud, 3 — descenso)
  • MP.Alt:54; — altitud barométrica en metros desde el nivel del mar — debe mostrarse
  • MP.Velocidad:0.0; — velocidad vertical en metros por segundo con filtro de mediana
  • MP.AvgVSpeed:0.0; — velocidad vertical en metros por segundo con filtro promediador
  • Baro.Prensa:1006.49; — presión barométrica en milibares
  • Baro.Alt:54; - altitud según barómetro
  • Temperatura Baro: 36.99; - temperatura del propio barómetro
  • Coord.GPS:N56d43m23s,E37d55m68s; — coordenadas actuales
  • GPS.Inicio:N56d43m23s,E37d55m68s; — coordenadas del punto de partida
  • GPS.Alt:165; — Altitud GPS en metros
  • GPS.Dst:10; — distancia desde el punto de partida en metros
  • DS.Temp:[fc]=34.56; - sensor de temperatura en el tablero

Cómo se ve el resultado:

Array 
(
       [N] => 647
       [Т] => 10m55з
       [MP_Stage] => 0
       [MP_Alt] => 49
       [MP_VSpeed) => 0.0
       [MP_AvgVSpeed] => 0.0
       [Baro Рrеss] => 1007.06
       [Baro_Alt] => 50
       [Baro_Temp] => 35.93
       [GPS_Coord] => N56d43m23s,E37d55m68s 
       [GPS_Home) => N56d43m23s,E37d55m68s 
       [Dst] => 5
       [GPS_HSpeed] => 0
       [GPS_Course] => 357
       [GPS_Time] => 11h17m40s
       [GPS_Date] => 30.07.2018
       [DS_Temp] => [fс] ЗЗ.56
       [Volt] => 5.19, 0.00,0.00,0.00,0.00,0.00,0.00,0.00 
)

¿Qué hacer si la comunicación celular “cae”? Para este caso tenemos una segunda tarjeta, se insertan dos tarjetas SIM en el módem (una ranura a la vez):

Servidor en las nubes: preparándose para su lanzamiento
Puede cambiar automáticamente a un canal libre si el principal deja de responder repentinamente.

¿Qué sucede si ambas redes celulares dejan de estar disponibles?

Servidor en las nubes: preparándose para su lanzamiento(Niño de número "Yeralash" nº 45 No en vano lee "La teoría de la probabilidad")

En este caso dispondremos de un rastreador GPS independiente que envía una señal sobre su ubicación. Tenga en cuenta que esto no lo hace a través de una red celular, cuya disponibilidad a largas distancias nadie garantiza, sino a través de un satélite.

Servidor en las nubes: preparándose para su lanzamiento
Sí, el rastreador GPS es algo más grande que el que le implantaron bajo la piel a James Bond. Dado que nuestra competencia depende de las coordenadas del servidor volador, esta parte de los datos recibidos del tablero será la más importante. Pero hablaremos de esto en el próximo post. ¡Próximamente, sigue nuestro blog!

Creemos tanto en el éxito de toda la empresa que incluso hemos anunciado un concurso para aquellos que de repente quieran adivinar dónde caerá la pelota. Detalles en nuestro nueva publicación.

Fuente: habr.com

Añadir un comentario