В
- Le serveur sera basé sur Raspberry Pi 3
Il serait intéressant de soulever dans les airs un serveur monobloc, mais son poids + le poids de l'onduleur... Tout cela nécessiterait une force de levage considérable. Et pourquoi, si sur la base d'un Raspberry Pi 3 compact on pouvait déployer un serveur tout à fait correct, avec une puissance de calcul plusieurs centaines de fois supérieure à la machine sur laquelle Tim Berners-Lee s'amusait en 1991.
- Lançons le serveur en montgolfière
Nous avions l'idée de soulever le serveur avec une sonde à hélium, mais le serveur ne faisait pas de ping longtemps avant que le ballon n'éclate à haute altitude dans une atmosphère raréfiée et que la structure entière ne tombe au sol. Je voulais étendre la « fenêtre » de 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, bien que le vol ne soit pas entièrement contrôlable, il peut y avoir notre ingénieur dans la nacelle qui, en cas de dysfonctionnement, peut rapidement, sur place, « l'allumer et l'éteindre ».
- Nous utiliserons les communications cellulaires comme réseau de transport
Les antennes WiFi modernes peuvent « percer » des distances assez longues, mais pour cela, il faudrait construire un complexe de communication dont les paramètres ne sont pas très inférieurs à ceux d'une station radar militaire. Et pour 1,5 à 2 heures de communication, cela n'a aucun sens de construire un tel système, car à l'altitude du ballon, les communications cellulaires doivent fonctionner de manière stable.
Après avoir formulé ces « postulats », le projet ne semblait plus irréalisable et bientôt nous avons commencé à travailler dans les trois directions à la fois.
Tout d'abord, nous nous sommes tournés vers les gars de
Ensuite, nous avons sorti le Raspberry Pi 3, qui se trouvait sur la table de chevet de notre administrateur, et avons commencé à l'installer.
Connecté la caméra :
Et nous l'avons testé sur notre « Semyon » :
Semyon est très pratique en tant que mannequin et assistant - il ne demande pas de nourriture, n'est pas distrait par le téléphone, est toujours de bonne humeur et avec un large sourire sur tout son casque. Bien sûr, nous n’avons pas besoin d’une telle combinaison spatiale pour le vol, mais elle crée la bonne atmosphère au bureau.
Le schéma du projet est le suivant :
Powerbank est utilisé pour les tests au sol ; quelque chose de plus fiable est nécessaire pour le lancement.
L'élément matériel le plus intéressant est peut-être une carte permettant de recevoir les données de tous les capteurs :
Les gars de
Nous l'avons lancé, configuré, 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 une photo de Semyon à 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 :
Ce code convertit ensuite la chaîne 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 quelques données :
- N : 2432 ; — nombre de paquets de données, toujours croissant
- T:40m39s; — temps à partir du moment où le contrôleur de vol est allumé
- MP.Étape : 0 ; — étape de vol (0 — au sol ou à moins de 1 km, 1 — ascension, 2 — vol stationnaire en altitude, 3 — descente)
- MP.Alt:54; — altitude barométrique en mètres par rapport au niveau de la mer — elle doit être affichée
- MP.VSpeed:0.0; — vitesse verticale en mètres par seconde avec 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; - altitude selon le baromètre
- Baro.Temp:36.99; - température du baromètre lui-même
- Coordonnée GPS : N56d43m23s,E37d55m68s ; — coordonnées actuelles
- GPS.Accueil:N56d43m23s,E37d55m68s; — coordonnées du point de départ
- GPS.Alt:165 ; — Altitude 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 le résultat :
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
)
Que faire si la communication cellulaire « tombe » ? Dans ce cas, nous disposons d'une deuxième carte ; deux cartes SIM sont insérées dans le modem (un emplacement à la fois) :
Il peut automatiquement passer à un canal de réserve si le canal principal cesse soudainement de répondre.
Que se passe-t-il si les deux réseaux cellulaires deviennent indisponibles ?
(Garçon de
Dans ce cas, nous aurons un tracker GPS indépendant qui envoie un signal sur sa localisation. 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 traceur GPS est un peu plus grand que celui implanté sous la peau de James Bond. Puisque notre compétition dépend des coordonnées du serveur volant, cette partie des données reçues du tableau sera la plus importante. Mais nous en reparlerons dans le prochain post. Bientôt, suivez notre blog !
Nous croyons tellement au succès de l'ensemble de l'entreprise que nous avons même annoncé un concours pour ceux qui veulent soudainement deviner où la balle va atterrir. Détails dans notre
Source: habr.com