Сервер у облацима: припрема се за покретање

В пост о регати Поменули смо да ће у августу бити такмичење са наградама за све Хабражитеље. Дошло је време да се скине вео тајне. Некако смо добили идеју да се фраза „сервер у облацима“ може схватити буквално. Хајде да заправо покренемо радни сервер у небо који се може пинговати! У почетку је идеја изгледала сулудо, али након што смо је изврнули овако и онако, расправљајући о њој на сваки начин, коначно смо дошли до начина да пошаљемо сервер према птицама. Епохално лансирање одржаће се крајем августа, али за сада радимо на хардверском делу пројекта. Детаљи испод реза.

Сервер у облацима: припрема се за покретање

  1. Сервер ће бити заснован на Распберри Пи 3

    Било би интересантно подићи сервер са једном јединицом у ваздух, али његова тежина + тежина УПС-а... Све ово би захтевало приличну силу дизања. И зашто, ако се на основу компактног Распберри Пи 3 може поставити сасвим пристојан сервер, са рачунарском снагом неколико стотина пута већом од машине на којој се Тим Бернерс-Лее забављао 1991. године.

  2. Покренимо сервер у балону

    Имали смо идеје да подигнемо сервер на хелијумској сонди, али тада сервер не би пинговао дуго пре него што би балон експлодирао на великој висини у разређеној атмосфери и цела конструкција би пала на земљу. Желео сам да проширим „прозор“ за емитовање на сат и по. А онда су одлучили да користе балон. Трајање лета је два сата. Поред тога, иако се лет не може у потпуности контролисати, у корпи се може наћи наш инжењер који у случају квара може брзо, одмах на лицу места, да га „упали и искључи“.

  3. Користићемо мобилне комуникације као транспортну мрежу

    Модерне ВиФи антене могу „пробити“ прилично велике удаљености, али за то би било потребно изградити комуникациони комплекс који по својим параметрима није много инфериоран војној радарској станици. А зарад 1,5-2 сата комуникације, нема смисла градити такав систем, јер на висини балона ћелијске комуникације морају да раде стабилно.

Након формулисања ових „постулата“, пројекат се више није чинио неизводљивим и убрзо смо почели да радимо у сва три правца одједном.

Пре свега, обратили смо се момцима из неарспаце.ру, који је појео пса док је бацао у ваздух свакојаке комаде гвожђа (уз накнадну потрагу и спасавање).

Затим смо извадили Распберри Пи 3, који је лежао у ноћном ормарићу нашег администратора, и почели да га постављамо.

Сервер у облацима: припрема се за покретање
Повезана камера:

Сервер у облацима: припрема се за покретање
И ми смо то тестирали на нашем „Семјону“:

Сервер у облацима: припрема се за покретање
Семјон је веома згодан као модел и асистент - не тражи храну, не омета га телефон, увек је одлично расположен и са широким осмехом са свих страна кациге. Наравно, такво скафандер нам није потребно за лет, али ствара праву атмосферу у канцеларији.

Нацрт пројекта је следећи:

Сервер у облацима: припрема се за покретање
Повербанк се користи за тестирање на земљи; потребно је нешто поузданије за лансирање.

Можда је најзанимљивији комад хардвера плоча за пријем података са свих сензора:

Сервер у облацима: припрема се за покретање
Momci iz неарспаце.ру Дуго смо се мучили са разним аналогама, а онда смо сами направили компјутер на броду, јер је поузданост од пресудне важности, од телеметријских података зависи судбина целог пројекта. Уграђени рачунар је одговоран за пријем података са свих повезаних сензора и њихово преношење на Распберри Пи.

Покренули смо га, конфигурисали и после пар недеља програмирања и чучњева уз тамбураше, успели смо да добијемо телеметријске податке и фотографију Семјона са широкоугаоне камере:

Сервер у облацима: припрема се за покретање
Телеметријски подаци се преносе у једном реду у следећем облику:

Сервер у облацима: припрема се за покретање
Овај код затим конвертује стринг у низ и шаље податке на локацију:

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

Опис неких података:

  • Н:2432; — број пакета података, који се увек повећава
  • Т:40м39с; — време од тренутка када је контролор лета укључен
  • МП.Стаге:0; — фаза лета (0 — на земљи или испод 1 км, 1 — успон, 2 — лебдење на висини, 3 — спуштање)
  • МП.Алт:54; — барометарска висина у метрима од нивоа мора — треба да буде приказана
  • МП.ВСпеед:0.0; — вертикална брзина у метрима у секунди са средњим филтером
  • МП.АвгВСпеед:0.0; — вертикална брзина у метрима у секунди са филтером усредњавања
  • Баро.Пресс:1006.49; — барометарски притисак у милибарима
  • Баро.Алт:54; - надморска висина према барометру
  • Баро.Темп:36.99; - температура самог барометра
  • ГПС.Цоорд:Н56д43м23с,Е37д55м68с; — тренутне координате
  • ГПС.Хоме:Н56д43м23с,Е37д55м68с; — координате почетне тачке
  • ГПС.Алт:165; — ГПС висина у метрима
  • ГПС.Дст:10; — удаљеност од почетне тачке у метрима
  • ДС.Темп:[фц]=34.56; - температурни сензор на плочи

Како изгледа излаз:

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 
)

Шта учинити ако ћелијска комуникација "падне"? За овај случај имамо другу картицу; две СИМ картице се убацују у модем (један по један слот):

Сервер у облацима: припрема се за покретање
Може аутоматски да се пребаци на резервни канал ако главни изненада престане да реагује.

Шта се дешава ако обе мобилне мреже постану недоступне?

Сервер у облацима: припрема се за покретање(Дечак из број „Јералаш” бр.45 Није узалуд читао „Теорију вероватноће“)

У овом случају, имаћемо независни ГПС трагач који шаље сигнал о својој локацији. Имајте на уму да то не ради преко мобилне мреже, чију доступност на великим удаљеностима нико не гарантује, већ преко сателита.

Сервер у облацима: припрема се за покретање
Да, ГПС трацкер је нешто већи од оног који је уграђен под кожу Џејмса Бонда. Пошто наша конкуренција зависи од координата летећег сервера, овај део података добијених од табле биће најважнији. Али о томе ћемо говорити у следећем посту. Ускоро, пратите наш блог!

Толико верујемо у успех читавог подухвата да смо чак расписали конкурс за оне који изненада желе да погоде где ће лопта стати. Детаљи у нашој Нови пост.

Извор: ввв.хабр.цом

Додај коментар