Serveur dans le cloud : préparons-nous au lancement

Dans publication sur la régate Nous avons mentionné qu'en août, tous les utilisateurs de Habr peuvent participer à un concours avec des prix. Il est temps de lever le voile sur ce projet. L'idée nous est venue que l'expression « serveur dans les nuages » peut être prise au sens littéral. Alors pourquoi ne pas lancer un serveur fonctionnel dans le ciel, que l'on pourra pinger ! Au début, l'idée paraissait folle, mais après y avoir réfléchi sous différents angles et en en discutant, nous avons finalement trouvé un moyen d'envoyer le serveur à la rencontre des oiseaux. Le lancement historique aura lieu fin août, et pour l'instant, nous peaufinons la partie matérielle du projet. Les détails sont sous le saut.

Serveur dans le cloud : préparons-nous au lancement

  1. Le serveur sera basé sur Raspberry Pi 3

    Il serait intéressant de faire voler un serveur en une seule unité, mais son poids + le poids d'un UPS… Pour cela, il faudrait une certaine force de levage. Et pourquoi faire cela, si l'on peut déployer un serveur tout à fait respectable à partir de la compacte Raspberry Pi 3, dont la puissance de calcul est plusieurs centaines de fois supérieure à celle de la machine sur laquelle Tim Berners-Lee s'amusait en 1991.

  2. Nous lancerons le serveur sur un ballon

    Nous avons eu l'idée de faire monter le serveur sur un sonde à hélium, mais alors, le serveur ne serait pingué que pendant un court laps de temps, avant que le ballon n'éclate à haute altitude dans une atmosphère raréfiée et que toute la structure ne tombe au sol. Nous souhaitions prolonger la « fenêtre » de temps d'émission à une heure et demie. Nous avons donc décidé d’utiliser un ballon. La durée du vol est de deux heures. De plus, bien que le vol ne soit pas totalement contrôlable, notre ingénieur peut se trouver dans le panier, et en cas de dysfonctionnement, il pourra réagir rapidement, sur place, pour « allumer et éteindre ».

  3. Nous utiliserons un réseau de téléphonie mobile

    Les antennes WiFi modernes peuvent atteindre des distances assez grandes, mais pour cela, il faudrait construire un complexe de communication ne lâchant pas des performances d'une station de radar militaire. Et pour 1,5 à 2 heures de communication, cela n'a pas de sens de construire ce système, car à l'altitude du vol du ballon, la couverture mobile devrait être stable.

Après avoir formulé ces « postulats », le projet a cessé de sembler irréalisable, et nous avons rapidement commencé à travailler sur les trois axes.

Tout d'abord, nous avons demandé de l'aide à des gars de nearspace.ru, des experts des lancements aériens de divers appareils (avec recherche et sauvetage ultérieurs).

Nous avons ensuite sorti le Raspberry Pi 3 qui traînait dans le tiroir de notre administrateur et avons commencé à le configurer.

Serveur dans le cloud : préparons-nous au lancement
Nous avons connecté la caméra :

Serveur dans le cloud : préparons-nous au lancement
Et nous l'avons testée sur notre « Semyon » :

Serveur dans le cloud : préparons-nous au lancement
Semyon est très pratique en tant que modèle et assistant — il ne demande pas à manger, ne se laisse pas distraire par le téléphone, est toujours de bonne humeur et avec un large sourire. Bien sûr, une telle combinaison ne sera pas nécessaire pour le vol, mais elle crée la bonne atmosphère dans le bureau.

Le schéma du projet se dessine comme suit :

Serveur dans le cloud : préparons-nous au lancement
Le powerbank est utilisé pour les tests au sol, il faut quelque chose de plus fiable pour le démarrage.

L'élément le plus intéressant est probablement la carte qui collecte les données de tous les capteurs :

Serveur dans le cloud : préparons-nous au lancement
Les gars de nearspace.ru ont longtemps essayé différents analogues, puis ont fabriqué eux-mêmes un ordinateur de bord, car la fiabilité est cruciale ; des données de télémétrie dépend le destin du projet. L'ordinateur de bord est responsable de la réception des données de tous les capteurs connectés et les transmet au Raspberry Pi.

Nous avons lancé, configuré et après quelques semaines de programmation et de jonglages, nous avons pu obtenir des données de télémétrie et des photos de Semyon avec la caméra grand angle :

Serveur dans le cloud : préparons-nous au lancement
Les données de télémétrie sont transmises sous forme d'une ligne comme ceci :

Serveur dans le cloud : préparons-nous au lancement
Ensuite, ce code transforme la ligne en tableau et affiche les données sur le site :

$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);

Description de certaines données :

  • N:2432; — numéro du paquet de données, augmente toujours
  • T:40m39s; — temps écoulé depuis l'allumage du contrôleur de vol
  • MP.Stage:0; — phase de vol (0 — au sol ou en dessous de 1 km, 1 — montée, 2 — vol stationnaire en altitude, 3 — descente)
  • MP.Alt:54; — altitude barométrique en mètres au-dessus du niveau de la mer — à afficher
  • MP.VSpeed:0.0; — vitesse verticale en mètres par seconde avec un filtre médian
  • MP.AvgVSpeed:0.0; — vitesse verticale en mètres par seconde avec un filtre de moyenne
  • Baro.Press:1006.49; — pression barométrique en millibars
  • Baro.Alt:54; — altitude barométrique
  • Baro.Temp:36.99; — température du baromètre
  • GPS.Coord:N56d43m23s,E37d55m68s; — coordonnées actuelles
  • GPS.Home:N56d43m23s,E37d55m68s; — coordonnées du point de départ
  • GPS.Alt:165; — altitude par GPS en mètres
  • GPS.Dst:10; — distance au point de départ en mètres
  • DS.Temp:[fc]=34.56; — capteur de température sur la carte

Voici à quoi ressemblent les données affichées :

Array 
(
       [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 
)

Que faire si la connexion mobile tombe ? Pour cela, nous avons une seconde carte, avec deux cartes SIM insérées dans le modem (une à la fois dans un slot) :

Serveur dans le cloud : préparons-nous au lancement
Il peut automatiquement basculer vers le canal de secours si le principal cesse de répondre.

Et que se passe-t-il si les deux réseaux mobiles deviennent indisponibles ?

Serveur dans le cloud : préparons-nous au lancement(Le garçon de la sortie «Eralash» n°45 ne lit pas «La théorie des probabilités» sans raison)

Dans ce cas, nous aurons un GPS tracker indépendant envoyant un signal de sa position. Notez qu'il le fait non pas par le réseau mobile, dont la disponibilité à grande distance n'est pas garantie, mais par satellite.

Serveur dans le cloud : préparons-nous au lancement
Oui, le GPS tracker est un peu plus gros que celui implanté sous la peau de James Bond. Étant donné que notre concours dépend des coordonnées du serveur en vol, cette partie des données recevies à bord sera la plus importante. Mais nous en parlerons dans le prochain post. Restez à l'affût de notre blog !

Nous croyons tellement au succès de l'ensemble du projet que nous avons même lancé un concours pour ceux qui voudraient deviner l'endroit où la boule atterrira. Plus de détails dans notre nouveau post.

Source : habr.com

Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS 🔥 Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster