I Vi nævnte, at der i august venter en konkurrence med præmier for alle på Khabr. Tiden er kommet til at fjerne sløret for hemmeligheden. En dag fik vi den tanke, at sætningen "server i skyerne" kan forstås bogstaveligt. Hvad hvis vi virkelig sender en fungerende server op i luften, som kan pinge! I starten virkede idéen skør, men efter at have drejet den og diskuteret den fra alle vinkler, fandt vi en måde at sende serveren mod fuglene. Den epokegørende lancering finder sted i slutningen af august, men indtil da arbejder vi på den hardwaremæssige del af projektet. Detaljer under katten.
- Serveren vil være baseret på Raspberry Pi 3
Det ville være interessant at løfte en enkeltsystems-server op, men dens vægt + vægt af UPS... Der ville skulle en betydelig løftekapacitet til. Og hvorfor, når man kan udvikle en ret anstændig server på en kompakt Raspberry Pi 3, der har en beregningskraft flere hundrede gange større end den maskine, Tim Berners-Lee legede med i 1991?
- Serveren vil blive lanceret med en ballon
Vi havde ideer til at løfte serveren med en heliumsonde, men så ville serveren ikke kunne pinges længe, før ballonen bristede i den tynde atmosfære på stor højde, og hele konstruktionen faldt til jorden. Vi ønskede at forlænge "vinduet" for broadcast-tid til halvanden time. Derfor besluttede vi at bruge en ballon. Flyvetiden er to timer. Desuden er flyvningen ikke helt styret, men der kan være vores ingeniør i kurven, som hurtigt kan "tænde og slukke" i tilfælde af fejl.
- Vi vil bruge mobilnetværket som transportnetværk
Moderne WiFi-antenner kan "bryde igennem" ret store afstande, men for dette ville det være nødvendigt at bygge et kommunikationssystem, der ikke adskiller sig meget fra parametrene for et militært radarstation. Og for 1,5-2 timers kommunikation giver det ikke mening at bygge et sådant system, for på højden af ballonens flyvetur skal mobilnetværket fungere stabilt.
Efter formuleringen af disse "postulater" stoppede projektet med at virke umuligt, og snart begyndte vi at arbejde på alle tre retninger samtidigt.
Først henvendte vi os om hjælp til fyrene fra , der har stor erfaring med at sende diverse udstyr op i luften (med efterfølgende søgning og redning).
Vi tog så Raspberry Pi 3, som lå i vores administrators skuffe, og begyndte at konfigurere den.

Vi tilsluttede kameraet:

Og testede det på vores "Semjon":

Semjon er meget bekvem som model og hjælper - han beder ikke om mad, bliver ikke distraheret af telefonen, er altid i godt humør og har et stort smil hele vejen. Selvfølgelig har vi ikke brug for en sådan rumdragt til flyvning, men han skaber den rette atmosfære på kontoret.
Projektet skitseres som følger:

Powerbanken bruges til jentest, for at sætte det op, skal vi have noget mere pålideligt.
Den mest interessante hardware er nok kortet til at indsamle data fra alle sensorerne:

Drengene fra kæmpede længe med forskellige alternativer, og så byggede de selv en om bord computer, fordi pålidelighed er afgørende, og telemetridataene afhænger hele projektets skæbne. Om bord computeren modtager data fra alle tilsluttede sensorer og sender dem til Raspberry Pi.
Vi startede det, konfigurerede det, og efter et par ugers programmering og ritualer kunne vi få telemetridata og billeder af Semjon med et vidvinkelkamera:

Telemetridataene sendes som en enkelt string i følgende format:

Så konverterer denne kode strengen til et array og viser dataene på hjemmesiden:
$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);Beskrivelse af nogle data:
- N:2432; — datarapportnummer, altid stigende
- T:40m39s; — tid siden flyvekontrolleren blev tændt
- MP.Stage:0; — flyvetriniveau (0 — på jorden eller under 1 km, 1 — stigende, 2 — svævende i højden, 3 — nedstigning)
- MP.Alt:54; — barometrisk højde i meter over havets niveau — denne skal vises
- MP.VSpeed:0.0; — vertikal hastighed i meter per sekund med medianfilter
- MP.AvgVSpeed:0.0; — vertikal hastighed i meter per sekund med gennemsnitsfilter
- Baro.Press:1006.49; — barometrisk tryk i millibar
- Baro.Alt:54; — højde ifølge barometeret
- Baro.Temp:36.99; — temperatur af selve barometeret
- GPS.Coord:N56d43m23s,E37d55m68s; — aktuelle koordinater
- GPS.Home:N56d43m23s,E37d55m68s; — koordinater for startpunktet
- GPS.Alt:165; — højde ifølge GPS i meter
- GPS.Dst:10; — afstand fra startpunktet i meter
- DS.Temp:[fc]=34.56; — temperaturføler på printpladen
Hvordan ser de uddata ud:
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] => [fс] 33.56
[Volt] => 5.19, 0.00,0.00,0.00,0.00,0.00,0.00,0.00
)
Hvad skal man gøre, hvis mobilnetværket "faler"? Til det formål har vi et andet kort, hvor to SIM-kort kan indsættes i modemet (i én slot ad gangen):

Den kan automatisk skifte til en backup-kanal, hvis den primære pludselig holder op med at svare.
Hvad vil der ske, hvis begge mobilnetværk bliver utilgængelige?
(Drengen fra læser ikke uden grund "Sandsynlighedsteori")
Til det formål vil vi have en uafhængig GPS-tracker, der sender signal om sin position. Vær opmærksom på, at den gør dette ikke via mobilnetværk, hvis tilgængelighed ikke kan garanteres over lange afstande, men gennem satellit.

Ja, GPS-tracker er noget større end den, der blev implanteret under huden på James Bond. Da vores konkurrence afhænger af koordinaterne af den flyvende server, vil denne del af de modtagne data fra bordet være den vigtigste. Men det fortæller vi mere om i næste indlæg. Hold øje med vores blog!
Vi tror så meget på succesen af hele projektet, at vi faktisk har annonceret en konkurrence for dem, der ønsker at gætte landingsstedet for kuglen. Flere detaljer i vores .
Kilde: habr.com
