В
- 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.
- 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”.
- 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
Luego sacamos la Raspberry Pi 3, que estaba en la mesita de noche de nuestro administrador, y comenzamos a configurarla.
Conectó la cámara:
Y lo probamos en nuestro "Semyon":
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:
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:
Chicos de
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:
Los datos de telemetría se transmiten en una línea de la siguiente forma:
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):
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?
(Niño de
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.
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
Fuente: habr.com