Poslužitelj u oblacima: priprema se za pokretanje

В post o regati Spomenuli smo da će u kolovozu biti natjecanje s nagradama za sve Habražitele. Došlo je vrijeme da skinemo veo tajne. Nekako smo dobili ideju da se izraz "poslužitelj u oblacima" može shvatiti doslovno. Hajdemo zapravo pokrenuti radni poslužitelj u nebo koji se može pingati! U početku je ideja izgledala ludo, ali nakon što smo ju izvrtali ovamo i onako, raspravljajući o njoj na sve načine, konačno smo došli do načina da pošaljemo server prema pticama. Epohalno lansiranje dogodit će se krajem kolovoza, no za sada radimo na hardverskom dijelu projekta. Detalji ispod kroja.

Poslužitelj u oblacima: priprema se za pokretanje

  1. Poslužitelj će se temeljiti na Raspberry Pi 3

    Bilo bi zanimljivo podići single-unit poslužitelj u zrak, ali njegova težina + težina UPS-a... Sve bi to zahtijevalo znatnu silu podizanja. I zašto, ako na temelju kompaktnog Raspberry Pi 3 možete postaviti sasvim pristojan poslužitelj, s računalnom snagom nekoliko stotina puta većom od stroja na kojem se Tim Berners-Lee zabavljao 1991. godine.

  2. Pokrenimo server u balonu

    Imali smo ideje da podignemo server na helijumskoj sondi, ali onda server ne bi dugo pingao prije nego što balon pukne na velikoj visini u razrijeđenoj atmosferi i cijela struktura bi pala na tlo. Htio sam proširiti “prozor” emitiranja na sat i pol. A onda su odlučili upotrijebiti balon. Trajanje leta je dva sata. Osim toga, iako let nije u potpunosti kontroliran, u košari se može naći naš inženjer koji ga u slučaju kvara može brzo, na licu mjesta, “upaliti i isključiti”.

  3. Koristit ćemo mobilne komunikacije kao transportnu mrežu

    Moderne WiFi antene mogu "probiti" prilično velike udaljenosti, ali za to bi bilo potrebno izgraditi komunikacijski kompleks koji po svojim parametrima nije mnogo inferiorniji od vojne radarske stanice. A radi 1,5-2 sata komunikacije nema smisla graditi takav sustav, jer na visini balona mobilne komunikacije moraju raditi stabilno.

Nakon formuliranja ovih “postulata”, projekt se više nije činio neizvedivim i ubrzo smo počeli raditi u sva tri smjera odjednom.

Prije svega obratili smo se dečkima iz nearspace.ru, koji je pojeo psa dok je bacao svakakve komade željeza u zrak (s naknadnim traganjem i spašavanjem).

Zatim smo izvadili Raspberry Pi 3, koji je ležao u noćnom ormariću našeg administratora, i počeli ga postavljati.

Poslužitelj u oblacima: priprema se za pokretanje
Spojio kameru:

Poslužitelj u oblacima: priprema se za pokretanje
I testirali smo ga na našem "Semyonu":

Poslužitelj u oblacima: priprema se za pokretanje
Semyon je vrlo zgodan kao model i pomoćnik - ne traži hranu, ne ometa ga telefon, uvijek je dobro raspoložen i sa širokim osmijehom na kacigi. Naravno, takvo skafander nam ne treba za let, ali stvara pravu atmosferu u uredu.

Nacrt projekta je sljedeći:

Poslužitelj u oblacima: priprema se za pokretanje
Powerbank se koristi za testiranje na zemlji; potrebno je nešto pouzdanije za lansiranje.

Možda najzanimljiviji dio hardvera je ploča za primanje podataka sa svih senzora:

Poslužitelj u oblacima: priprema se za pokretanje
Dečki iz nearspace.ru Dugo smo se mučili s raznim analozima, a onda smo sami napravili on-board računalo, jer pouzdanost je presudna, o telemetrijskim podacima ovisi sudbina cijelog projekta. Putno računalo odgovorno je za primanje podataka od svih povezanih senzora i njihovo slanje Raspberry Piju.

Pokrenuli smo ga, konfigurirali i nakon par tjedana programiranja i čučnjeva uz tamburaše, uspjeli smo dobiti telemetrijske podatke i sliku Semjona sa širokokutne kamere:

Poslužitelj u oblacima: priprema se za pokretanje
Telemetrijski podaci se prenose u jednoj liniji u sljedećem obliku:

Poslužitelj u oblacima: priprema se za pokretanje
Ovaj kod zatim pretvara niz u polje i šalje podatke na stranicu:

$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 raste
  • T:40m39s; — vrijeme od trenutka uključivanja kontrolera leta
  • MP.Stage:0; — faza leta (0 — na tlu ili ispod 1 km, 1 — uspon, 2 — lebdenje na visini, 3 — spuštanje)
  • MP.Alt:54; — barometarska visina u metrima od razine mora — treba biti prikazana
  • MP.VBrzina:0.0; — okomita brzina u metrima u sekundi s srednjim filtrom
  • MP.AvgVSpeed:0.0; — vertikalna brzina u metrima u sekundi s filtrom za usrednjavanje
  • Baro.Press:1006.49; — barometarski tlak u milibarima
  • Baro.Alt:54; - nadmorska visina prema barometru
  • Barotemp.:36.99; - temperatura samog barometra
  • GPS.Koord:N56d43m23s,E37d55m68s; — trenutne koordinate
  • GPS.Početna:N56d43m23s,E37d55m68s; — koordinate početne točke
  • GPS.Alt:165; — GPS visina u metrima
  • GPS.Dst:10; — udaljenost od početne točke u metrima
  • DS.Temp:[fc]=34.56; - senzor temperature na ploči

Kako izgleda rezultat:

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 
)

Što učiniti ako mobilna komunikacija "padne"? Za ovaj slučaj imamo drugu karticu; dvije SIM kartice su umetnute u modem (jedan utor istovremeno):

Poslužitelj u oblacima: priprema se za pokretanje
Može se automatski prebaciti na rezervni kanal ako glavni iznenada prestane odgovarati.

Što se događa ako obje mobilne mreže postanu nedostupne?

Poslužitelj u oblacima: priprema se za pokretanje(Dječak iz broj "Yeralash" br. 45 Nije uzalud čitao "Teoriju vjerojatnosti")

U ovom slučaju, imat ćemo neovisni GPS tracker koji šalje signal o svojoj lokaciji. Imajte na umu da to ne čini putem mobilne mreže, čiju dostupnost na velikim udaljenostima nitko ne jamči, već putem satelita.

Poslužitelj u oblacima: priprema se za pokretanje
Da, GPS tracker je nešto veći od onog koji je bio ugrađen pod kožu Jamesa Bonda. Budući da naše natjecanje ovisi o koordinatama letećeg servera, ovaj dio podataka dobivenih s ploče bit će najvažniji. Ali o tome ćemo u sljedećem postu. Uskoro, pratite naš blog!

Toliko vjerujemo u uspjeh cijelog pothvata da smo čak raspisali i natječaj za one koji odjednom žele pogoditi gdje će loptica stati. Detalji u našem nova objava.

Izvor: www.habr.com

Dodajte komentar