Server i skyene: klargjøring til lansering

В innlegg om regattaen Vi nevnte at i august vil det være en konkurranse med premier til alle Habrazhitels. Tiden er inne for å rive bort hemmelighetens slør. På en eller annen måte fikk vi ideen om at uttrykket "server i skyene" kan tas bokstavelig. La oss faktisk lansere en fungerende server til himmelen som kan pinges! Først så ideen sprø ut, men etter å ha vridd den på denne måten og diskutert den på alle måter, fant vi til slutt en måte å sende serveren mot fuglene. En epokegjørende lansering vil finne sted i slutten av august, men foreløpig jobber vi med hardware-delen av prosjektet. Detaljer under kuttet.

Server i skyene: klargjøring til lansering

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

    Det ville vært interessant å løfte en server med én enhet opp i luften, men vekten + vekten av UPS-en... Alt dette ville kreve betydelig løftekraft. Og hvorfor, hvis du på grunnlag av en kompakt Raspberry Pi 3 kan distribuere en ganske anstendig server, med en datakraft flere hundre ganger større enn maskinen som Tim Berners-Lee hadde det gøy på i 1991.

  2. La oss lansere serveren i en luftballong

    Vi hadde ideer om å løfte serveren på en heliumsonde, men så ville ikke serveren pinge lenge før ballongen sprakk i stor høyde i en foreldet atmosfære og hele strukturen ville falle til bakken. Jeg ønsket å utvide "lufttidsvinduet" til en og en halv time. Og så bestemte de seg for å bruke en ballong. Flyets varighet er to timer. I tillegg, selv om flyvningen ikke er helt kontrollerbar, kan det være vår ingeniør i kurven som, i tilfelle en funksjonsfeil, raskt, rett på stedet, kan "slå den av og på."

  3. Vi vil bruke mobilkommunikasjon som et transportnettverk

    Moderne WiFi-antenner kan "gjennombore" ganske lange avstander, men for dette vil det være nødvendig å bygge et kommunikasjonskompleks som ikke er mye dårligere enn en militær radarstasjon i sine parametere. Og av hensyn til 1,5-2 timers kommunikasjon gir det ingen mening å bygge et slikt system, fordi i ballongens høyde må mobilkommunikasjon fungere stabilt.

Etter å ha formulert disse «postulatene» virket prosjektet ikke lenger upraktisk, og snart begynte vi å jobbe i alle tre retninger samtidig.

Først og fremst henvendte vi oss til gutta fra nearspace.ru, som spiste hunden mens han lanserte alle slags jernbiter i luften (med påfølgende søk og redning).

Så tok vi ut Raspberry Pi 3, som lå på nattbordet til adminen vår, og begynte å sette den opp.

Server i skyene: klargjøring til lansering
Koblet til kameraet:

Server i skyene: klargjøring til lansering
Og vi testet det på vår "Semyon":

Server i skyene: klargjøring til lansering
Semyon er veldig praktisk som modell og assistent - han ber ikke om mat, blir ikke distrahert av telefonen, er alltid i godt humør og med et bredt smil fra hele hjelmen. Selvfølgelig trenger vi ikke en slik romdrakt til flyturen, men den skaper den rette atmosfæren på kontoret.

Prosjektoversikten er som følger:

Server i skyene: klargjøring til lansering
Powerbank brukes til bakketesting; noe mer pålitelig er nødvendig for lansering.

Den kanskje mest interessante maskinvaren er et brett for å motta data fra alle sensorer:

Server i skyene: klargjøring til lansering
Gutter fra nearspace.ru Vi slet lenge med forskjellige analoger, og så laget vi en innebygd datamaskin selv, fordi pålitelighet er av avgjørende betydning, skjebnen til hele prosjektet avhenger av telemetridata. Omborddatamaskinen er ansvarlig for å motta data fra alle tilkoblede sensorer og overføre dem til Raspberry Pi.

Vi lanserte den, konfigurerte den, og etter et par uker med programmering og knebøy med tamburiner, klarte vi å få tak i telemetridata og et bilde av Semyon fra et vidvinkelkamera:

Server i skyene: klargjøring til lansering
Telemetridata overføres på én linje i følgende form:

Server i skyene: klargjøring til lansering
Denne koden konverterer deretter strengen til en matrise og sender ut dataene til nettstedet:

$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 av noen data:

  • N:2432; — datapakkenummer, stadig økende
  • T:40m39s; — tid fra det øyeblikket flykontrolleren slås på
  • MP.Stage:0; — flygetappe (0 — på bakken eller under 1 km, 1 — stigning, 2 — sveve i høyden, 3 — nedstigning)
  • MP.Alt:54; — barometrisk høyde i meter fra havnivå — den skal vises
  • MP.VSpeed:0.0; — vertikal hastighet i meter per sekund med medianfilter
  • MP.AvgVSpeed:0.0; — vertikal hastighet i meter per sekund med snittfilter
  • Baro.Press:1006.49; — barometertrykk i millibar
  • Baro.Alt:54; - høyde i henhold til barometer
  • Baro.Temp:36.99; - temperatur på selve barometeret
  • GPS.Koord:N56d43m23s,E37d55m68s; — gjeldende koordinater
  • GPS.Hjem:N56d43m23s,E37d55m68s; — koordinater til utgangspunktet
  • GPS.Alt:165; — GPS-høyde i meter
  • GPS.Dst:10; — avstand fra startpunktet i meter
  • DS.Temp:[fc]=34.56; - temperaturføler på brettet

Slik ser utgangen ut:

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 
)

Hva skal jeg gjøre hvis mobilkommunikasjonen "faller"? For dette tilfellet har vi et andre kort; to SIM-kort settes inn i modemet (ett spor om gangen):

Server i skyene: klargjøring til lansering
Den kan automatisk bytte til en reservekanal hvis hovedkanalen plutselig slutter å svare.

Hva skjer hvis begge mobilnettverkene blir utilgjengelige?

Server i skyene: klargjøring til lansering(Gutt fra utgave "Yeralash" nr. 45 Det er ikke for ingenting han leser «The Theory of Probability»)

I dette tilfellet vil vi ha en uavhengig GPS-tracker som sender et signal om plasseringen. Vær oppmerksom på at det ikke gjør dette via et mobilnettverk, som ikke er garantert av noen tilgjengelig over lange avstander, men via en satellitt.

Server i skyene: klargjøring til lansering
Ja, GPS-trackeren er noe større enn den som ble implantert under huden til James Bond. Siden vår konkurranse avhenger av koordinatene til den flyvende serveren, vil denne delen av dataene som mottas fra styret være den viktigste. Men vi skal snakke om dette i neste innlegg. Kommer snart, følg bloggen vår!

Vi tror på suksessen til hele bedriften så mye at vi til og med utlyste en konkurranse for de som plutselig vil gjette hvor ballen vil lande. Detaljer i vår nytt innlegg.

Kilde: www.habr.com

Legg til en kommentar