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

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

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

  1. Серверот ќе се базира на Raspberry Pi 3

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

  2. Ајде да го стартуваме серверот во балон со топол воздух

    Имавме идеи да го подигнеме серверот на сонда со хелиум, но потоа серверот немаше долго да пингува пред балонот да пукне на голема надморска височина во ретка атмосфера и целата структура да падне на земја. Сакав да го проширам „прозорецот“ на времето за емитување на еден и пол час. И тогаш решија да користат балон. Времетраењето на летот е два часа. Дополнително, иако летот не е целосно контролиран, во корпата може да има наш инженер кој, во случај на дефект, може брзо, веднаш на лице место, да го „вклучи и исклучи“.

  3. Ќе ги користиме мобилните комуникации како транспортна мрежа

    Современите антени за WiFi можат да „прободат“ прилично долги растојанија, но за ова ќе биде неопходно да се изгради комуникациски комплекс кој не е многу инфериорен во неговите параметри во однос на воената радарска станица. И за доброто на 1,5-2 часа комуникација, нема смисла да се изгради таков систем, бидејќи на надморска височина на балонот, мобилните комуникации мора да работат стабилно.

По формулирањето на овие „постулати“, проектот повеќе не изгледаше неизводлив и наскоро почнавме да работиме во сите три насоки одеднаш.

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

Потоа го извадивме Raspberry Pi 3, кој лежеше во креветната маса на нашиот администратор и почнавме да го поставуваме.

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

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

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

Прегледот на проектот е како што следува:

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

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

Сервер во облаците: се подготвува за стартување
Момци од nearspace.ru Долго време се боревме со разни аналози, а потоа сами направивме вграден компјутер, бидејќи доверливоста е од одлучувачко значење, судбината на целиот проект зависи од телеметриските податоци. Вградениот компјутер е одговорен за примање податоци од сите поврзани сензори и нивно пренесување до Raspberry Pi.

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

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

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

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

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

  • N:2432; — број на пакети со податоци, секогаш се зголемува
  • Т:40м39с; — време од моментот на вклучување на контролорот на летот
  • МП.Сцена:0; — етапа на летот (0 — на земја или под 1 км, 1 — искачување, 2 — лебди на височина, 3 — спуштање)
  • MP.Alt:54; - барометриска надморска височина во метри од нивото на морето - треба да се прикаже
  • MP.VSpeed:0.0; — вертикална брзина во метри во секунда со среден филтер
  • MP.AvgVSpeed:0.0; — вертикална брзина во метри во секунда со просечен филтер
  • Баро.Прес:1006.49; — притисок на барометарот во милибари
  • Baro.Alt:54; - надморска височина според барометар
  • Баро.Темп:36.99; - температура на самиот барометар
  • GPS.Coord:N56d43m23s,E37d55m68s; — тековни координати
  • GPS.Дома:N56d43m23s,E37d55m68s; — координати на почетната точка
  • GPS.Alt:165; — GPS надморска височина во метри
  • GPS.Dst:10; — растојание од почетната точка во метри
  • DS.Temp:[fc]=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 
)

Што да направите ако мобилната комуникација „падне“? За овој случај, имаме втора картичка; две SIM-картички се вметнати во модемот (еден слот истовремено):

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

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

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

Во овој случај, ќе имаме независен GPS тракер кој испраќа сигнал за неговата локација. Ве молиме имајте предвид дека тоа го прави не преку мобилна мрежа, чија достапност на долги растојанија не ја гарантира никој, туку преку сателит.

Сервер во облаците: се подготвува за стартување
Да, GPS-тракерот е нешто поголем од оној што беше вграден под кожата на Џејмс Бонд. Бидејќи нашата конкуренција зависи од координатите на летечкиот сервер, овој дел од податоците добиени од таблата ќе биде најважен. Но, за ова ќе зборуваме во следниот пост. Наскоро, следете го нашиот блог!

Толку многу веруваме во успехот на целото претпријатие што дури објавивме конкурс за оние кои одеднаш сакаат да погодат каде ќе слета топката. Детали во нашата нов пост.

Извор: www.habr.com

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