Serveur dans les nuages: se préparer au lancement

Dans un article sur la régate, nous mentionnions qu'en août, un concours avec des prix attend tous les colporteurs. Il est temps de déchirer le voile du secret. D'une certaine manière, nous avons eu l'idée que l'expression "serveur dans les nuages" peut être comprise littéralement. Et lançons vraiment un serveur fonctionnel dans le ciel que vous pouvez ping! Au début, l'idée semblait folle, mais en la tordant comme ça et en en discutant de toutes les manières, nous avons quand même trouvé un moyen d'envoyer le serveur vers les oiseaux. Déjà fin août, un lancement historique aura lieu, mais pour l'instant nous travaillons sur le matériel du projet. Détails sous la coupe.


  1. Le serveur sera basé sur le Raspberry Pi 3

    Il serait intéressant de prendre un serveur mono-serveur en l'air, mais son poids + le poids de l'onduleur ... Pour tout cela, une force de levage considérable serait nécessaire. Oui, et pourquoi, si sur la base du Raspberry Pi 3 compact, vous pouvez déployer un serveur très décent, avec une puissance de calcul plusieurs centaines de fois supérieure à la machine sur laquelle Tim Berners-Lee s'est amusé en 1991.
  2. Nous allons lancer le serveur dans un ballon

    Nous avons eu des idées pour élever le serveur sur une sonde à hélium, mais le serveur ne cinglerait pas pendant un moment avant que la balle n'éclate à haute altitude dans une atmosphère raréfiée et que toute la structure tombe au sol. Je voulais étendre la «fenêtre» du temps d'antenne à une heure et demie. Et puis ils ont décidé d'utiliser un ballon. La durée du vol est de deux heures. De plus, le vol, bien que non entièrement contrôlable, peut toutefois faire appel à notre ingénieur dans le panier, qui peut, en cas de dysfonctionnement, «s'allumer et s'éteindre» rapidement sur place.
  3. Nous utiliserons la communication cellulaire comme réseau de transport

    Les antennes WiFi modernes peuvent "pénétrer" des distances assez importantes, mais pour cela, il faudrait construire un complexe de communication qui ne soit pas inférieur dans ses paramètres à une station radar militaire. Et pour 1,5 à 2 heures de communication, il n'est pas logique de construire un tel système, car au plus fort du vol en ballon, la communication cellulaire devrait fonctionner de manière stable.

Après la formulation de ces «postulats», le projet a cessé de paraître irréalisable et nous avons rapidement commencé à travailler immédiatement dans les trois domaines.

Tout d'abord, ils ont demandé l'aide des gars de nearspace.ru qui ont mangé un chien au lancement de n'importe quel morceau de fer (avec recherche et sauvetage ultérieurs).

Puis ils ont sorti le Raspberry Pi 3, allongé dans la table de chevet de notre administrateur, et ont commencé à le configurer.


Caméra connectée:


Et nous l'avons testé sur notre "Seed":


Semyon est très pratique en tant que modèle et assistant - ne demande pas de nourriture, n'est pas distrait par le téléphone, toujours de bonne humeur et avec un large sourire dans son casque. Bien sûr, nous n'avons pas besoin d'une telle combinaison spatiale pour le vol, mais l'atmosphère dans le bureau crée la bonne.

Les grandes lignes du projet sont les suivantes:


Powerbank est utilisé pour les tests au sol, pour commencer, vous avez besoin de quelque chose de plus fiable.

Le matériel le plus intéressant est peut-être la carte de réception des données de tous les capteurs:


Les gars de nearspace.ru ont souffert pendant longtemps avec différents analogues, puis ils ont fabriqué eux-mêmes un ordinateur de bord, car la fiabilité est cruciale, le sort de tout le projet dépend des données de télémétrie. L'ordinateur de bord est chargé de recevoir les données de tous les capteurs connectés et de les transférer vers le Raspberry Pi.

Ils l'ont commencé, l'ont installé, et après quelques semaines de programmation et de squats avec des tambourins, nous avons réussi à obtenir des données de télémétrie et des photos de Seeds à partir d'une caméra grand angle:


Les données de télémétrie sont transmises sur une seule ligne sous la forme suivante:


Ensuite, ce code convertit la chaîne en un 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; - nombre de paquets de données, toujours en augmentation
  • T: 40m39s; - temps à partir du moment où le contrôleur de vol est allumé
  • MP.Stage: 0; - étape de vol (0 - au sol ou en dessous de 1 km, 1 - montée, 2 - vol stationnaire en altitude, 3 - descente)
  • MP.Alt: 54; - hauteur barométrique en mètres du niveau de la mer - elle doit être affichée
  • 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 filtre de moyenne
  • Baro.Press:1006.49; - pression barométrique en millibars
  • Baro.Alt: 54; - hauteur du baromètre
  • Baro.Temp: 36,99; - température du baromètre lui-même
  • GPS.Coord: N56d43m23s, E37d55m68s; - coordonnées actuelles
  • GPS.Home: N56d43m23s, E37d55m68s; - coordonnées du point de départ
  • GPS.Alt: 165; - Hauteur GPS en mètres
  • GPS.Dst: 10; - distance du point de départ en mètres
  • DS.Temp: [fc] = 34,56; - capteur de température sur la carte

À quoi ressemble la sortie:

 Array ( [N] => 647 [] => 10m55 [MP_Stage] => 0 [MP_Alt] => 49 [MP_VSpeed) => 0.0 [MP_AvgVSpeed] => 0.0 [Baro rss] => 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 ) 

Mais que faire si la connexion cellulaire "tombe"? Pour ce cas, nous avons une deuxième carte, deux cartes SIM sont insérées dans le modem (dans un slot à son tour):


Il peut automatiquement basculer sur le canal de secours si le canal principal cesse soudainement de répondre.

Et que se passera-t-il si les deux réseaux cellulaires deviennent indisponibles?

(Le garçon du numéro de "Jumble" n ° 45 ne lit pas en vain la "Théorie de la Probabilité")

Dans ce cas, nous aurons un tracker GPS indépendant qui enverra un signal sur sa position. Veuillez noter qu'il ne le fait pas via un réseau cellulaire, dont la disponibilité sur de longues distances n'est garantie par personne, mais via un satellite.


Oui, le tracker GPS est un peu plus grand que celui que James Bond a implanté sous la peau. Puisque notre compétition dépend des coordonnées du serveur volant, cette partie des données reçues de la planche sera la plus importante. Mais nous en parlerons dans le prochain article. A très bientôt, suivez notre blog!

Nous croyons tellement au succès de toute l’entreprise qu’ils ont même annoncé un concours pour ceux qui veulent soudainement deviner le lieu de l’atterrissage du ballon. Détails dans notre nouveau post .

Source: https://habr.com/ru/post/fr420451/


All Articles