Server u oblaku: pripreme za lansiranje

U post o regati Spomenuli smo da u kolovozu sve Habr korisnike očekuje natjecanje s nagradama. Došlo je vrijeme da skinemo plašt tajne. Pala nam je na pamet misao da se fraza "server u oblacima" može shvatiti doslovno. Što kažete, da pustimo u zrak radni server koji se može pingati! U početku se ideja činila luda, ali nakon što smo je razmatrali iz svih kutova, smislili smo način da pošaljemo server pticama na susret. Kraj kolovoza donosi povijesno lansiranje, a do tada radimo na hardverskom dijelu projekta. Detalji ispod.

Server u oblaku: pripreme za lansiranje

  1. Server će biti baziran na Raspberry Pi 3

    Bilo bi zanimljivo podići u zrak jednounitni server, no njegovu težinu treba dodati težini UPS-a... Za sve to bila bi potrebna značajna uzgon. I stvarno, zašto, kada se na osnovi kompaktnog Raspberry Pi 3 može postaviti posve pristojan server s računalnom snagom nekoliko stotina puta većom od onog računala na kojem se zabavljao Tim Berners-Lee 1991. godine.

  2. Server ćemo lansirati na balonu

    Imali smo ideje podići server na helijskom balonu, no tada bi server bio pingan kratko, prije nego što balon pukne na velikoj visini u razrijeđenoj atmosferi i cijela konstrukcija padne na zemlju. Željeli smo produljiti "prozor" eter vremena do sat i pol. Tako smo odlučili koristiti balon. Trajanje leta je dva sata. Osim toga, let nije potpuno upravljiv, no u košari može biti naš inženjer koji će u slučaju kvara moći brzo, na licu mjesta "uključiti i isključiti".

  3. Kao transportnu mrežu koristit ćemo mobilnu mrežu

    Moderne WiFi antene mogu "probiti" prilično velike udaljenosti, no za to bi trebali izgraditi komunikacijski kompleks koji malo kaska za vojnim radarskim stanicama. I radi 1,5-2 sata veze nije smisleno graditi takav sustav, jer na visini leta balona mobilna mreža mora raditi stabilno.

Nakon formuliranja tih "postulata", projekt je prestao izgledati neizvedivo, i ubrzo smo se uhvatili u koštac s radom na sva tri smjera.

Prvo smo zatražili pomoć od ekipe iz nearspace.ru, koja ima bogato iskustvo u lansiranjima raznih uređaja u zrak (s naknadnim pronalaženjem i spašavanjem).

Zatim smo izvukli Raspberry Pi 3, koji je ležao u ladici našeg administratora, i počeli ga postavljati.

Server u oblaku: pripreme za lansiranje
Povezali smo kameru:

Server u oblaku: pripreme za lansiranje
I testirali je na našem 'Semen':

Server u oblaku: pripreme za lansiranje
Semen je izuzetno zgodan kao model i pomoćnik — ne traži hranu, ne skreće pažnju na telefon, uvijek je dobro raspoložen i sa širokim osmijehom u svom kacigi. Naravno, takva odijela nam za let neće biti potrebna, ali stvara pravi ambijent u uredu.

Shema projekta oblikovat će se ovako:

Server u oblaku: pripreme za lansiranje
Powerbank se koristi za terensko testiranje, za pokretanje je potrebno nešto pouzdanije.

Najzanimljiviji komad hardvera je ploča za prikupljanje podataka sa svih senzora:

Server u oblaku: pripreme za lansiranje
Momci iz nearspace.ru dugo su se mučili s raznim analogama, a zatim su sami napravili računar za avion, jer pouzdanost igra ključnu ulogu, sudbina cijelog projekta ovisi o podacima telemetrije. Računar za avion odgovara za primanje podataka sa svih povezanih senzora i njihovo prosljeđivanje na Raspberry Pi.

Pokrenuli smo, postavili i nakon nekoliko tjedana programiranja i obrednog plesanja uspjeli dobiti podatke telemetrije i fotografiju Semena s širokokutnom kamerom:

Server u oblaku: pripreme za lansiranje
Podaci telemetrije šalju se jednim redom u sljedećem obliku:

Server u oblaku: pripreme za lansiranje
Zatim ovaj kod pretvara redak u niz i prikazuje podatke na web stranici:

$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);

Opis nekih podataka:

  • N:2432; — broj podatkovnog paketa, uvijek se povećava
  • T:40m39s; — vrijeme od uključivanja kontrolera leta
  • MP.Stage:0; — faza leta (0 — na zemlji ili ispod 1km, 1 — uspon, 2 — zadržavanje na visini, 3 — spuštanje)
  • MP.Alt:54; — barometarska visina u metrima od razine mora — trebala bi se prikazivati
  • MP.VSpeed:0.0; — vertikalna brzina u metrima u sekundi s medijan filtriranjem
  • MP.AvgVSpeed:0.0; — vertikalna brzina u metrima u sekundi s prosječnim filtriranjem
  • Baro.Press:1006.49; — tlak po barometru u milibarima
  • Baro.Alt:54; — visina po barometru
  • Baro.Temp:36.99; — temperatura samog barometra
  • GPS.Coord:N56d43m23s,E37d55m68s; — trenutne koordinate
  • GPS.Home:N56d43m23s,E37d55m68s; — koordinate mjesta polijetanja
  • GPS.Alt:165; — visina po GPS-u u metrima
  • GPS.Dst:10; — udaljenost od mjesta polijetanja u metrima
  • DS.Temp:[fc]=34.56; — temperaturni senzor na ploči

Kako izgledaju prikazani podaci:

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,0.00,0.00 
)

Što učiniti ako mobilna mreža „padne”? U tom slučaju imamo drugu karticu, u modem se umetnu dvije SIM kartice (u jedan slot naizmjenično):

Server u oblaku: pripreme za lansiranje
Ona se automatski prebacuje na rezervni kanal, ako glavni iznenada prestane odgovarati.

A što će se dogoditi ako obje mobilne mreže postanu nedostupne?

Server u oblaku: pripreme za lansiranje(Dječak iz izdanja «Jeralash» br. 45 nimalo slučajno čita «Teoriju vjerojatnosti»)

U tom slučaju ćemo imati neovisni GPS-tracker koji šalje signal o svojoj lokaciji. Imajte na umu da to ne čini putem mobilne mreže, čija dostupnost na velikim udaljenostima nitko ne može jamčiti, već putem satelita.

Server u oblaku: pripreme za lansiranje
Da, GPS-tracker je nešto veći od onog koji su ugradili ispod kože Jamesu Bondu. Budući da naš natječaj ovisi o koordinatama leta, ovaj dio podataka koji primamo s letjelice bit će najvažniji. No o tome ćemo razgovarati u sljedećem postu. Uskoro, pratite naš blog!

Vjerujemo u uspjeh cjelokupnog projekta toliko da smo čak raspisali natječaj za one koji žele pogoditi mjesto slijetanja balona. Detalji u našem novom postu.

Izvor: habr.com

Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere 🔥 Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere | ProHoster