In Wir haben erwähnt, dass im August ein Wettbewerb mit Preisen für alle Habr-Nutzer stattfinden wird. Es ist Zeit, den Schleier der Geheimhaltung zu lüften. Irgendwie hatten wir die Idee, dass der Ausdruck „Server in den Wolken“ wörtlich genommen werden kann. Lassen Sie uns tatsächlich einen funktionierenden Server in den Himmel schicken, den man anpingen kann! Zuerst erschien die Idee verrückt, aber nach eingehender Diskussion und Überlegung fanden wir einen Weg, den Server den Vögeln entgegenzuschicken. Am Ende des Augusts findet der epochale Start statt, während wir momentan die Hardware-Seite des Projekts finalisieren. Details folgen.
- Der Server basiert auf Raspberry Pi 3
Es wäre interessant, einen einheitlichen Server in die Luft zu bringen, jedoch würde sein Gewicht + das Gewicht der USV… Für all dies wäre eine erhebliche Hebekraft notwendig. Und wozu, wenn man auf der Basis des kompakten Raspberry Pi 3 einen recht anständigen Server mit einer Rechenleistung aufbauen kann, die mehrere Hundert Mal höher ist als die Maschine, mit der Tim Berners-Lee 1991 Spaß hatte.
- Der Server wird auf einem Ballon gestartet
Wir hatten die Idee, einen Server auf einem Heliumballon zu starten, aber dann würde der Server nur kurze Zeit gepingt werden, bevor die Blase in großer Höhe in der dünnen Atmosphäre platzt und die gesamte Konstruktion auf den Boden fällt. Wir wollten das „Zeitfenster“ der Übertragungszeit auf anderthalb Stunden erweitern. Deshalb entschieden wir uns, einen Luftballon zu verwenden. Die Flugdauer beträgt zwei Stunden. Zudem ist der Flug, auch wenn er nicht ganz steuerbar ist, doch wird ein Ingenieur in dem Korb sein, der im Falle eines Fehlers vor Ort schnell „ein- und ausschalten“ kann.
- Wir werden das Mobilfunknetz als Transportnetz nutzen.
Moderne WiFi-Antennen können ziemlich große Entfernungen überbrücken, jedoch müsste dafür ein Kommunikationskomplex gebaut werden, der in seinen Parametern einer militärischen Radarstation wenig nachsteht. Um nur 1,5-2 Stunden Kommunikation zu ermöglichen, macht es keinen Sinn, ein solches System zu bauen, da die Mobilfunkverbindung in der Höhe des Fluges stabil arbeiten muss.
Nach der Formulierung dieser „Postulate“ schien das Projekt nicht mehr unrealistisch, und bald begannen wir, parallel an allen drei Richtungen zu arbeiten.
Zuerst haben wir die Unterstützung von den Jungs von , die Experten in der Luftfahrttechnik sind (mit anschließender Suche und Rettung).
Dann haben wir einen Raspberry Pi 3 hervorgeholt, der in der Schublade unseres Administrators lag, und mit der Einrichtung begonnen.

Wir haben eine Kamera angeschlossen:

Und sie an unserem «Semyon» getestet:

Semyon eignet sich hervorragend als Modell und Helfer – er verlangt kein Essen, lässt sich nicht durch das Telefon ablenken, ist immer gut gelaunt und trägt ein breites Lächeln unter seinem Helm. Natürlich wird uns ein solcher Anzug für den Flug nicht notwendig sein, aber er schafft die richtige Atmosphäre im Büro.
Das Projektschema zeichnet sich wie folgt ab:

Powerbank wird für Tests am Boden eingesetzt, für den Start benötigen wir etwas Zuverlässigeres.
Das interessante Gerät ist die Platine zur Datenerfassung von allen Sensoren:

Die Jungs von hatten lange mit verschiedenen Alternativen gekämpft, und dann haben sie selbst einen Bordcomputer gebaut, weil Zuverlässigkeit entscheidend ist – die Telemetriedaten bestimmen das Schicksal des gesamten Projekts. Der Bordcomputer ist für den Empfang von Daten von allen angeschlossenen Sensoren verantwortlich und überträgt sie an den Raspberry Pi.
Wir haben das System gestartet und konfiguriert, und nach ein paar Wochen Programmierung und viel Geduld konnten wir Telemetriedaten und ein Bild von Semen mit der Weitwinkelkamera erhalten:

Die Telemetriedaten werden als einzelne Zeichenkette in folgender Form übermittelt:

Dann wandelt dieser Code die Zeichenkette in ein Array um und zeigt die Daten auf der Website an:
$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);Beschreibung einiger Daten:
- N:2432; — Datenpaketnummer, erhöht sich stets
- T:40m39s; — Zeit seit dem Einschalten des Flugcontrollers
- MP.Stage:0; — Flugphase (0 — am Boden oder unter 1 km, 1 — Aufstieg, 2 — Stabilisierung in der Höhe, 3 — Abstieg)
- MP.Alt:54; — barometrische Höhe in Metern über dem Meeresspiegel — sollte angezeigt werden
- MP.VSpeed:0.0; — vertikale Geschwindigkeit in Metern pro Sekunde mit Medianfilter
- MP.AvgVSpeed:0.0; — vertikale Geschwindigkeit in Metern pro Sekunde mit Mittelwertfilter
- Baro.Press:1006.49; — Druck am Barometer in Millibar
- Baro.Alt:54; — Höhe am Barometer
- Baro.Temp:36,99; — Temperatur des Barometers
- GPS.Coord:N56d43m23s,E37d55m68s; — aktuelle Koordinaten
- GPS.Home:N56d43m23s,E37d55m68s; — Koordinaten des Startpunkts
- GPS.Alt:165; — GPS-Höhe in Metern
- GPS.Dst:10; — Entfernung vom Startpunkt in Metern
- DS.Temp:[fc]=34,56; — Temperatursensor auf der Platine
So sehen die ausgegebenen Daten aus:
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
)
Was ist zu tun, wenn die Mobilfunkverbindung ausfällt? In diesem Fall haben wir eine zweite Karte, auf der zwei SIM-Karten nacheinander in einen Slot des Modems eingesetzt werden können:

Es kann automatisch auf den Backup-Kanal umschalten, wenn der Hauptkanal plötzlich nicht mehr reagiert.
Was passiert, wenn beide Mobilfunknetze nicht verfügbar sind?
(Der Junge aus liest nicht umsonst «Theorie der Wahrscheinlichkeiten»)
Für diesen Fall haben wir einen unabhängigen GPS-Tracker, der Signal über seinen Standort sendet. Beachten Sie, dass dies nicht über ein Mobilfunknetz geschieht, dessen Verfügbarkeit auf großen Distanzen nicht garantiert ist, sondern über Satellit.

Ja, der GPS-Tracker ist etwas größer als der, der James Bond unter die Haut implantiert wurde. Da unser Wettbewerb von den Koordinaten des fliegenden Servers abhängt, wird dieser Teil der an Bord gesammelten Daten der wichtigste sein. Aber darüber werden wir in unserem nächsten Beitrag sprechen. Bleiben Sie also dran und verfolgen Sie unseren Blog!
Wir glauben so fest an den Erfolg des gesamten Projekts, dass wir sogar einen Wettbewerb für diejenigen ausgerufen haben, die das Landepunkt des Ballons erraten möchten. Weitere Details in unserem .
Quelle: habr.com
