Bulutdagi server: ishga tushirishga tayyorlanmoqda

В regata haqida post Avgust oyida barcha Habrajitellar uchun sovrinli tanlov bo'lishini aytib o'tdik. Yashirinlik pardasini yirtib tashlash vaqti keldi. Qandaydir tarzda biz "bulutdagi server" iborasini tom ma'noda qabul qilish mumkin degan fikrga keldik. Keling, osmonga ping qo'yish mumkin bo'lgan ishlaydigan serverni ishga tushiraylik! Avvaliga bu g'oya aqldan ozgandek tuyuldi, lekin uni u tomonga burib, uni har tomonlama muhokama qilib, biz nihoyat serverni qushlar tomon yuborish usulini topdik. Avgust oyining oxirida davrni yaratuvchi ishga tushirish bo'lib o'tadi, ammo hozircha biz loyihaning apparat qismi ustida ishlayapmiz. Kesish ostidagi tafsilotlar.

Bulutdagi server: ishga tushirishga tayyorlanmoqda

  1. Server Raspberry Pi 3 asosida ishlaydi

    Bir blokli serverni havoga ko'tarish qiziq bo'lardi, lekin uning og'irligi + UPSning og'irligi ... Bularning barchasi katta ko'tarish kuchini talab qiladi. Va nima uchun, agar ixcham Raspberry Pi 3 asosida siz 1991 yilda Tim Berners-Li o'ynagan mashinadan bir necha yuz baravar yuqori hisoblash quvvatiga ega bo'lgan juda yaxshi serverni o'rnatishingiz mumkin bo'lsa.

  2. Keling, serverni havo sharida ishga tushiramiz

    Bizda serverni geliy zondida ko'tarish g'oyalari bor edi, lekin keyin server uzoq vaqt davomida ping tinglamadi, balon kamdan-kam uchraydigan atmosferada baland balandlikda portladi va butun tuzilma erga quladi. Men efir vaqtini "oyna" ni bir yarim soatgacha kengaytirmoqchi edim. Va keyin ular balondan foydalanishga qaror qilishdi. Parvoz davomiyligi ikki soat. Bundan tashqari, parvozni to'liq boshqarib bo'lmasa ham, savatda bizning muhandisimiz bo'lishi mumkin, ular nosozlik bo'lsa, tezda, darhol joyida "yoqib-o'chira oladi".

  3. Biz uyali aloqadan transport tarmog'i sifatida foydalanamiz

    Zamonaviy WiFi antennalari juda uzoq masofalarni "teshishi" mumkin, ammo buning uchun parametrlari bo'yicha harbiy radar stantsiyasidan unchalik kam bo'lmagan aloqa majmuasini qurish kerak bo'ladi. Va 1,5-2 soatlik aloqa uchun bunday tizimni qurish mantiqiy emas, chunki balon balandligida uyali aloqa barqaror ishlashi kerak.

Ushbu "postulatlar" ni shakllantirgandan so'ng, loyiha endi amalga oshirib bo'lmaydigandek tuyuldi va tez orada biz bir vaqtning o'zida barcha uch yo'nalishda ishlay boshladik.

Avvalo, biz yigitlarga murojaat qildik nearspace.ru, havoga har xil temir bo'laklarini (keyingi qidiruv va qutqaruv ishlari bilan) uchirish paytida itni yeydi.

Keyin administratorimizning karavot yonidagi stolida yotgan Raspberry Pi 3 ni chiqarib, sozlashni boshladik.

Bulutdagi server: ishga tushirishga tayyorlanmoqda
Kamera ulandi:

Bulutdagi server: ishga tushirishga tayyorlanmoqda
Va biz buni "Semyon" da sinab ko'rdik:

Bulutdagi server: ishga tushirishga tayyorlanmoqda
Semyon model va yordamchi sifatida juda qulay – u ovqat so‘ramaydi, telefonga chalg‘imaydi, doimo a’lo kayfiyatda va dubulg‘asining har tarafidan keng tabassum bilan. Albatta, parvoz uchun bunday skafandr kerak emas, lekin u ofisda to'g'ri muhit yaratadi.

Loyihaning sxemasi quyidagicha:

Bulutdagi server: ishga tushirishga tayyorlanmoqda
Powerbank yer sinovi uchun ishlatiladi; ishga tushirish uchun ishonchliroq narsa kerak.

Ehtimol, eng qiziqarli uskuna bu barcha sensorlardan ma'lumotlarni qabul qilish uchun platadir:

Bulutdagi server: ishga tushirishga tayyorlanmoqda
dan yigitlar nearspace.ru Biz turli xil analoglar bilan uzoq vaqt kurashdik, keyin o'zimiz bort kompyuterini yaratdik, chunki ishonchlilik hal qiluvchi ahamiyatga ega, butun loyihaning taqdiri telemetriya ma'lumotlariga bog'liq. Bort kompyuteri barcha ulangan sensorlardan ma'lumotlarni qabul qilish va ularni Raspberry Pi-ga uzatish uchun javobgardir.

Biz uni ishga tushirdik, sozladik va bir necha hafta dasturlash va daflar bilan cho'zilgandan so'ng biz telemetriya ma'lumotlarini va keng burchakli kameradan Semyonning fotosuratini olishga muvaffaq bo'ldik:

Bulutdagi server: ishga tushirishga tayyorlanmoqda
Telemetriya ma'lumotlari bir qatorda quyidagi shaklda uzatiladi:

Bulutdagi server: ishga tushirishga tayyorlanmoqda
Keyin ushbu kod satrni massivga aylantiradi va ma'lumotlarni saytga chiqaradi:

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

Ba'zi ma'lumotlarning tavsifi:

  • N: 2432; — maʼlumotlar paketi soni, har doim ortib bormoqda
  • T: 40m39s; — parvoz boshqaruvchisi yoqilgan paytdan boshlab vaqt
  • MP. Bosqich: 0; — parvoz bosqichi (0 — yerda yoki 1 km dan pastda, 1 — koʻtarilish, 2 — balandlikda suzib yurish, 3 — tushish)
  • MP.Alt:54; - dengiz sathidan metrlarda barometrik balandlik - ko'rsatilishi kerak
  • MP.VSpeed: 0.0; — median filtri bilan sekundiga metrda vertikal tezlik
  • MP.AvgVSpeed: 0.0; - o'rtacha filtri bilan sekundiga metrda vertikal tezlik
  • Baro.Press:1006.49; — barometr bosimi millibarda
  • Baro.Alt:54; - barometrga ko'ra balandlik
  • Baro.Temp:36.99; - barometrning o'zi harorati
  • GPS.Coord: N56d43m23s, E37d55m68s; - joriy koordinatalar
  • GPS.Uy:N56d43m23s, E37d55m68s; — boshlang‘ich nuqtaning koordinatalari
  • GPS.Alt:165; — GPS balandligi metrlarda
  • GPS.Dst:10; — boshlang'ich nuqtadan masofa metrda
  • DS.Temp:[fc]=34.56; - taxtadagi harorat sensori

Chiqish nimaga o'xshaydi:

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 
)

Agar uyali aloqa "tushib ketsa" nima qilish kerak? Bu holda bizda ikkinchi karta bor; ikkita SIM-karta modemga kiritilgan (bir vaqtning o'zida bitta uyasi):

Bulutdagi server: ishga tushirishga tayyorlanmoqda
Agar asosiy kanal to'satdan javob berishni to'xtatsa, u avtomatik ravishda zaxira kanalga o'tishi mumkin.

Ikkala uyali tarmoq ham ishlamay qolsa nima bo'ladi?

Bulutdagi server: ishga tushirishga tayyorlanmoqda(dan bola soni 45-son "Yeralash" U "Ehtimollik nazariyasi" ni o'qiganligi bejiz emas)

Bunday holda, biz uning joylashuvi haqida signal yuboradigan mustaqil GPS-trekerga ega bo'lamiz. E'tibor bering, u buni uyali aloqa tarmog'i orqali amalga oshirmaydi, uning uzoq masofalarda mavjudligi hech kim tomonidan kafolatlanmaydi, balki sun'iy yo'ldosh orqali.

Bulutdagi server: ishga tushirishga tayyorlanmoqda
Ha, GPS-treker Jeyms Bondning terisi ostiga o'rnatilganidan biroz kattaroqdir. Bizning raqobatimiz uchuvchi serverning koordinatalariga bog'liq bo'lganligi sababli, kengashdan olingan ma'lumotlarning bu qismi eng muhimi bo'ladi. Ammo bu haqda keyingi postda gaplashamiz. Tez orada, bizning blogimizni kuzatib boring!

Biz butun korxonaning muvaffaqiyatiga shunchalik ishonamizki, hatto to'satdan to'p qayerga tushishini taxmin qilishni xohlaydiganlar uchun tanlov e'lon qildik. Tafsilotlar bizda yangi post.

Manba: www.habr.com

a Izoh qo'shish