Бұлттағы сервер: іске қосылуға дайындалуда

В регата туралы пост Біз тамыз айында барлық хабразителдерге арналған жүлделі жарыс болатынын айттық. Құпия пердені жұлып алатын кез келді. Қалай болғанда да, біз «бұлттағы сервер» тіркесін сөзбе-сөз қабылдауға болады деген ойға келдік. Аспанға жұмыс істейтін серверді іске қосайық, оны пингпен жіберуге болады! Бастапқыда бұл идея ақылсыз болып көрінді, бірақ оны былай және олай бұрағаннан кейін, оны жан-жақты талқылай келе, біз серверді құстарға жіберудің әдісін таптық. Дәуірді іске қосу тамыз айының соңында болады, бірақ қазір біз жобаның аппараттық бөлігінде жұмыс істеп жатырмыз. Кесу астындағы мәліметтер.

Бұлттағы сервер: іске қосылуға дайындалуда

  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с; — ұшу диспетчері қосылған сәттен бастап уақыт
  • MP.Stage:0; — ұшу кезеңі (0 — жерде немесе 1 км төмен, 1 — көтерілу, 2 — биіктікте қалықтау, 3 — түсу)
  • MP.Alt:54; — теңіз деңгейінен метрдегі барометрлік биіктік — оны көрсету керек
  • MP.VSpeed:0.0; — медианалық фильтрмен секундына метрдегі тік жылдамдық
  • MP.AvgVSpeed:0.0; — орташа сүзгісі бар секундына метрдегі тік жылдамдық
  • Baro.Press:1006.49; — миллибардағы барометр қысымы
  • Baro.Alt:54; - барометр бойынша биіктік
  • Baro.Temp: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 картасы салынған (бір уақытта бір слот):

Бұлттағы сервер: іске қосылуға дайындалуда
Негізгі арна кенеттен жауап беруді тоқтатса, ол автоматты түрде қосалқы арнаға ауыса алады.

Екі ұялы желі де қолжетімсіз болып қалса не болады?

Бұлттағы сервер: іске қосылуға дайындалуда(Жігіттен No45 «Ералаш» шығарылымы «Ықтималдықтар теориясын» бекер оқымаған)

Бұл жағдайда бізде оның орналасқан жері туралы сигнал жіберетін тәуелсіз GPS трекер болады. Есіңізде болсын, ол мұны ұялы желі арқылы емес, оның ұзақ қашықтықта қол жетімділігіне ешкім кепілдік бермейді, бірақ спутник арқылы.

Бұлттағы сервер: іске қосылуға дайындалуда
Иә, GPS трекер Джеймс Бондтың терісінің астына имплантацияланғанға қарағанда біршама үлкенірек. Біздің бәсекелестік ұшатын сервердің координаттарына байланысты болғандықтан, тақтадан алынған деректердің бұл бөлігі ең маңызды болады. Бірақ бұл туралы келесі постта айтатын боламыз. Жақында, біздің блогқа жазылыңыз!

Бүкіл кәсіпорынның жетістігіне сенгеніміз сонша, біз тіпті кенеттен доптың қайда түсетінін болжағысы келетіндер үшін конкурс жарияладық. Толығырақ біздің бөлімде жаңа пост.

Ақпарат көзі: www.habr.com

пікір қалдыру