Servidor als núvols: preparant-se per llançar-se

В post sobre la regata Hem comentat que a l'agost hi haurà un concurs amb premis per a tots els Habrazhitels. Ha arribat el moment d'arrencar el vel del secret. D'alguna manera vam tenir la idea que la frase "servidor als núvols" es pot prendre al peu de la lletra. De fet, llancem un servidor que funcioni al cel al qual es pot fer ping! Al principi la idea semblava una bogeria, però després de retorçar-la d'una banda a l'altra, discutint-la en tots els sentits, finalment vam trobar una manera d'enviar el servidor cap als ocells. A finals d'agost es farà un llançament que farà època, però de moment estem treballant en la part de maquinari del projecte. Detalls sota el tall.

Servidor als núvols: preparant-se per llançar-se

  1. El servidor es basarà en Raspberry Pi 3

    Seria interessant aixecar un servidor d'una sola unitat a l'aire, però el seu pes + el pes del SAI... Tot això requeriria una força d'elevació considerable. I per què, si a partir d'un Raspberry Pi 3 compacte pots desplegar un servidor bastant decent, amb una potència de càlcul uns centenars de vegades superior a la màquina en què Tim Berners-Lee es va divertir el 1991.

  2. Llencem el servidor en un globus aerostàtic

    Teníem idees per aixecar el servidor amb una sonda d'heli, però aleshores el servidor no feia ping durant molt de temps abans que el globus esclatés a gran altitud en una atmosfera enraritzada i tota l'estructura caigués a terra. Volia ampliar la "finestra" del temps d'aire a una hora i mitja. I aleshores van decidir fer servir un globus. La durada del vol és de dues hores. A més, tot i que el vol no és del tot controlable, pot haver-hi el nostre enginyer a la cistella que, en cas d'un mal funcionament, pugui ràpidament, en el mateix moment, "encendre-lo i apagar-lo".

  3. Utilitzarem les comunicacions cel·lulars com a xarxa de transport

    Les antenes WiFi modernes poden "perforar" distàncies força llargues, però per això caldria construir un complex de comunicacions que no sigui molt inferior en els seus paràmetres a una estació de radar militar. I pel bé d'1,5-2 hores de comunicació, no té sentit construir aquest sistema, perquè a l'altitud del globus, les comunicacions cel·lulars han de funcionar de manera estable.

Després de formular aquests "postulats", el projecte ja no semblava impracticable, i aviat vam començar a treballar en les tres direccions alhora.

En primer lloc, ens vam dirigir als nois de nearspace.ru, que es va menjar el gos mentre llançava a l'aire tota mena de peces de ferro (amb la posterior recerca i rescat).

Llavors vam treure el Raspberry Pi 3, que estava a la tauleta de nit del nostre administrador, i vam començar a configurar-lo.

Servidor als núvols: preparant-se per llançar-se
Connectada la càmera:

Servidor als núvols: preparant-se per llançar-se
I ho vam provar al nostre "Semyon":

Servidor als núvols: preparant-se per llançar-se
Semyon és molt còmode com a model i assistent: no demana menjar, no es distreu amb el telèfon, sempre està de bon humor i amb un ampli somriure des de tot el seu casc. Per descomptat, no necessitem aquest vestit espacial per al vol, però crea l'ambient adequat a l'oficina.

L'esquema del projecte és el següent:

Servidor als núvols: preparant-se per llançar-se
El Powerbank s'utilitza per a proves a terra; es necessita alguna cosa més fiable per al llançament.

Potser la peça de maquinari més interessant és una placa per rebre dades de tots els sensors:

Servidor als núvols: preparant-se per llançar-se
Nois de nearspace.ru Vam lluitar durant molt de temps amb diversos anàlegs, i després vam fer nosaltres mateixos un ordinador de bord, perquè la fiabilitat és d'una importància decisiva, el destí de tot el projecte depèn de les dades de telemetria. L'ordinador de bord s'encarrega de rebre les dades de tots els sensors connectats i transmetre-les al Raspberry Pi.

El vam posar en marxa, el vam configurar i després d'un parell de setmanes de programació i squat amb panderetes, vam aconseguir obtenir dades de telemetria i una foto de Semyon d'una càmera gran angular:

Servidor als núvols: preparant-se per llançar-se
Les dades de telemetria es transmeten en una línia de la forma següent:

Servidor als núvols: preparant-se per llançar-se
A continuació, aquest codi converteix la cadena en una matriu i envia les dades al lloc:

$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ó d'algunes dades:

  • N:2432; — nombre de paquets de dades, sempre creixent
  • T:40m39s; — temps des del moment en què s'activa el controlador de vol
  • MP.Stage:0; — etapa de vol (0 — a terra o per sota d'1 km, 1 — ascens, 2 — flotant en altitud, 3 — baixada)
  • MP.Alt:54; - altitud baromètrica en metres des del nivell del mar - s'ha de mostrar
  • MP.VSpeed: 0.0; — velocitat vertical en metres per segon amb filtre mitjà
  • MP.Velocitat mitjana: 0.0; — velocitat vertical en metres per segon amb filtre de mitjana
  • Baro.Premsa:1006.49; — Pressió del baròmetre en mil·libars
  • Baro.Alt:54; - altitud segons baròmetre
  • Baro.Temp:36.99; - temperatura del propi baròmetre
  • GPS.Coord:N56d43m23s,E37d55m68s; - coordenades actuals
  • GPS.Inici:N56d43m23s,E37d55m68s; — coordenades del punt de partida
  • GPS.Alt:165; — Altitud GPS en metres
  • GPS.Dst:10; — Distància des del punt de partida en metres
  • DS.Temp:[fc]=34.56; - sensor de temperatura a la placa

Com es veu la sortida:

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è fer si la comunicació cel·lular "cau"? Per a aquest cas, tenim una segona targeta; dues targetes SIM s'insereixen al mòdem (una ranura a la vegada):

Servidor als núvols: preparant-se per llançar-se
Pot canviar automàticament a un canal de recanvi si el principal deixa de respondre de sobte.

Què passa si les dues xarxes mòbils no estan disponibles?

Servidor als núvols: preparant-se per llançar-se(Noi de número "Yeralash" núm. 45 No és per res que llegeix "La teoria de la probabilitat")

En aquest cas, tindrem un rastrejador GPS independent que envia un senyal sobre la seva ubicació. Tingueu en compte que no ho fa a través d'una xarxa mòbil, la disponibilitat de la qual a llargues distàncies no està garantida per ningú, sinó a través d'un satèl·lit.

Servidor als núvols: preparant-se per llançar-se
Sí, el rastrejador GPS és una mica més gran que el que es va implantar sota la pell de James Bond. Com que la nostra competició depèn de les coordenades del servidor volador, aquesta part de les dades rebudes del tauler serà la més important. Però d'això en parlarem en el proper post. Aviat, segueix el nostre blog!

Creiem tant en l'èxit de tota l'empresa que fins i tot vam anunciar una competició per a aquells que de sobte volen endevinar on aterrarà la pilota. Detalls al nostre publicació nova.

Font: www.habr.com

Afegeix comentari