Server i skyerne: klar til lancering

В indlæg om regattaen Vi nævnte, at der i august vil være en konkurrence med præmier til alle Habrazhitels. Tiden er inde til at rive hemmelighedens slør væk. På en eller anden måde fik vi den idé, at udtrykket "server i skyerne" kan tages bogstaveligt. Lad os faktisk lancere en fungerende server i himlen, der kan pinges! Til at begynde med så ideen skør ud, men efter at have vendt den på denne måde og diskuteret den på alle måder, fandt vi endelig på en måde at sende serveren mod fuglene. En epokegørende lancering finder sted i slutningen af ​​august, men indtil videre arbejder vi på hardwaredelen af ​​projektet. Detaljer under snittet.

Server i skyerne: klar til lancering

  1. Serveren vil være baseret på Raspberry Pi 3

    Det ville være interessant at løfte en single-unit server op i luften, men dens vægt + vægten af ​​UPS'en... Alt dette ville kræve betydelig løftekraft. Og hvorfor, hvis du på basis af en kompakt Raspberry Pi 3 kan installere en ganske anstændig server, med en computerkraft flere hundrede gange større end den maskine, som Tim Berners-Lee havde det sjovt med i 1991.

  2. Lad os starte serveren i en luftballon

    Vi havde ideer til at løfte serveren på en heliumsonde, men så ville serveren ikke pinge længe, ​​før ballonen brast i stor højde i en fortærvet atmosfære, og hele strukturen ville falde til jorden. Jeg ønskede at udvide "lufttidsvinduet" til halvanden time. Og så besluttede de at bruge en ballon. Flyvetiden er to timer. Hertil kommer, at selvom flyvningen ikke er helt kontrollerbar, kan der være vores ingeniør i kurven, som i tilfælde af en funktionsfejl hurtigt, lige på stedet, kan "slå den til og fra."

  3. Vi vil bruge mobilkommunikation som et transportnetværk

    Moderne WiFi-antenner kan "gennembore" ret lange afstande, men til dette ville det være nødvendigt at bygge et kommunikationskompleks, der ikke er meget ringere i sine parametre end en militær radarstation. Og af hensyn til 1,5-2 timers kommunikation giver det ingen mening at bygge et sådant system, for i ballonens højde skal cellulær kommunikation fungere stabilt.

Efter at have formuleret disse "postulater" virkede projektet ikke længere upraktisk, og snart begyndte vi at arbejde i alle tre retninger på én gang.

Først og fremmest henvendte vi os til fyrene fra nearspace.ru, som spiste hunden, mens han sendte alle mulige jernstykker op i luften (med efterfølgende eftersøgning og redning).

Så tog vi Raspberry Pi 3 frem, som lå i vores admins natbord, og begyndte at sætte den op.

Server i skyerne: klar til lancering
Tilsluttede kameraet:

Server i skyerne: klar til lancering
Og vi testede det på vores "Semyon":

Server i skyerne: klar til lancering
Semyon er meget praktisk som model og assistent - han beder ikke om mad, bliver ikke distraheret af telefonen, er altid i godt humør og med et bredt smil fra hele hjelmen. Sådan en rumdragt har vi selvfølgelig ikke brug for til flyveturen, men det skaber den helt rigtige stemning på kontoret.

Projektoversigten er som følger:

Server i skyerne: klar til lancering
Powerbank bruges til jordtestning; noget mere pålideligt er nødvendigt for lanceringen.

Det måske mest interessante stykke hardware er et bord til modtagelse af data fra alle sensorer:

Server i skyerne: klar til lancering
Fyre fra nearspace.ru Vi kæmpede i lang tid med forskellige analoger, og så lavede vi selv en indbygget computer, fordi pålidelighed er af afgørende betydning, hele projektets skæbne afhænger af telemetridata. Den indbyggede computer er ansvarlig for at modtage data fra alle tilsluttede sensorer og sende dem til Raspberry Pi.

Vi lancerede det, konfigurerede det, og efter et par ugers programmering og squats med tamburiner, lykkedes det os at få telemetridata og et foto af Semyon fra et vidvinkelkamera:

Server i skyerne: klar til lancering
Telemetridata overføres på én linje i følgende form:

Server i skyerne: klar til lancering
Denne kode konverterer derefter strengen til et array og udsender dataene til webstedet:

$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; — datapakkenummer, altid stigende
  • T:40m39s; — tid fra det øjeblik, flyvelederen tændes
  • MP.Stage:0; — flyveetape (0 — på jorden eller under 1 km, 1 — opstigning, 2 — svævende i højden, 3 — nedstigning)
  • MP.Alt:54; — barometrisk højde i meter fra havoverfladen — den skal vises
  • MP.VSpeed:0.0; — lodret hastighed i meter pr. sekund med medianfilter
  • MP.AvgVSpeed:0.0; — lodret hastighed i meter pr. sekund med gennemsnitsfilter
  • Baro.Press:1006.49; — barometertryk i millibar
  • Baro.Alt:54; - højde i henhold til barometer
  • Baro.Temp:36.99; - temperatur på selve barometeret
  • GPS.Coord:N56d43m23s,E37d55m68s; — aktuelle koordinater
  • GPS.Hjem:N56d43m23s,E37d55m68s; — koordinater for udgangspunktet
  • GPS.Alt:165; — GPS-højde i meter
  • GPS.Dst:10; — afstand fra startpunktet i meter
  • DS.Temp:[fc]=34.56; - temperaturføler på tavlen

Sådan ser output ud:

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 
)

Hvad skal man gøre, hvis mobilkommunikation "falder"? Til dette tilfælde har vi et andet kort; to SIM-kort indsættes i modemmet (én slot ad gangen):

Server i skyerne: klar til lancering
Den kan automatisk skifte til en reservekanal, hvis den primære kanal pludselig holder op med at reagere.

Hvad sker der, hvis begge mobilnetværk bliver utilgængelige?

Server i skyerne: klar til lancering(Dreng fra udgave "Yeralash" nr. 45 Det er ikke for ingenting, at han læser "The Theory of Probability")

I dette tilfælde vil vi have en uafhængig GPS-tracker, der sender et signal om dens placering. Bemærk venligst, at det ikke gør dette via et mobilnetværk, hvis tilgængelighed over lange afstande ikke garanteres af nogen, men gennem en satellit.

Server i skyerne: klar til lancering
Ja, GPS-trackeren er noget større end den, der blev implanteret under huden på James Bond. Da vores konkurrence afhænger af den flyvende servers koordinater, vil denne del af data modtaget fra bestyrelsen være den vigtigste. Men det vil vi tale om i næste indlæg. Kommer snart, følg vores blog!

Vi tror så meget på succesen for hele virksomheden, at vi endda annoncerede en konkurrence for dem, der pludselig vil gætte, hvor bolden vil lande. Detaljer i vores nyt opslag.

Kilde: www.habr.com

Tilføj en kommentar