В
- Сървърът ще бъде базиран на Raspberry Pi 3
Би било интересно да се вдигне единичен сървър във въздуха, но теглото му + теглото на UPS... Всичко това ще изисква значителна повдигаща сила. И защо, ако на базата на компактен Raspberry Pi 3 можете да разположите доста приличен сървър, с изчислителна мощност няколкостотин пъти по-голяма от машината, на която Тим Бърнърс-Лий се забавляваше през 1991 г.
- Нека стартираме сървъра в балон с горещ въздух
Имахме идеи да вдигнем сървъра върху хелиева сонда, но тогава сървърът нямаше да пингва дълго, преди балонът да се спука на голяма надморска височина в разредена атмосфера и цялата конструкция да падне на земята. Исках да разширя „прозореца“ на ефирно време до час и половина. И тогава решиха да използват балон. Продължителността на полета е два часа. Освен това, въпреки че полетът не е напълно контролируем, в кошницата може да има наш инженер, който в случай на неизправност може бързо, на място, да го „включи и изключи“.
- Ще използваме клетъчните комуникации като транспортна мрежа
Съвременните WiFi антени могат да „пробиват“ доста големи разстояния, но за това ще е необходимо да се изгради комуникационен комплекс, който не е много по-нисък по параметрите си от военна радарна станция. И в името на 1,5-2 часа комуникация няма смисъл да се изгражда такава система, тъй като на надморската височина на балона клетъчните комуникации трябва да работят стабилно.
След формулирането на тези „постулати“ проектът вече не изглеждаше неосъществим и скоро започнахме да работим и в трите посоки едновременно.
На първо място се обърнахме към момчетата от
След това извадихме Raspberry Pi 3, който лежеше в нощното шкафче на нашия администратор, и започнахме да го настройваме.
Свърза камерата:
И ние го тествахме на нашия „Семьон“:
Семьон е много удобен като модел и помощник - не иска храна, не се разсейва от телефона, винаги е в страхотно настроение и с широка усмивка от цялата си каска. Разбира се, нямаме нужда от такъв скафандър за полет, но той създава подходящата атмосфера в офиса.
Схемата на проекта е както следва:
Powerbank се използва за наземно тестване; необходимо е нещо по-надеждно за стартиране.
Може би най-интересната част от хардуера е платка за получаване на данни от всички сензори:
Момчета от
Пуснахме го, конфигурирахме го и след няколко седмици програмиране и клякания с тамбури, успяхме да получим телеметрични данни и снимка на Семьон от широкоъгълна камера:
Телеметричните данни се предават в един ред в следната форма:
След това този код преобразува низа в масив и извежда данните на сайта:
$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; — номер на пакета данни, винаги нарастващ
- T:40m39s; — време от момента на включване на контролера на полета
- MP.Етап:0; — етап на полет (0 — на земята или под 1 км, 1 — изкачване, 2 — висене на височина, 3 — спускане)
- MP.Alt:54; — барометрична надморска височина в метри от морското равнище — трябва да се показва
- MP.VSpeed:0.0; — вертикална скорост в метри в секунда със среден филтър
- MP.AvgVSpeed:0.0; — вертикална скорост в метри в секунда с осредняващ филтър
- Баро.Преса:1006.49; — барометърно налягане в милибари
- Baro.Alt:54; - надморска височина според барометъра
- Baro.Temp:36.99; - температура на самия барометър
- GPS.Коорд: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 карти (по един слот):
Може автоматично да превключи на резервен канал, ако основният внезапно спре да отговаря.
Какво се случва, ако и двете клетъчни мрежи станат недостъпни?
(Момче от
В този случай ще имаме независим GPS тракер, който изпраща сигнал за местоположението си. Моля, имайте предвид, че той прави това не чрез клетъчна мрежа, чиято наличност на големи разстояния не е гарантирана от никого, а чрез сателит.
Да, GPS тракерът е малко по-голям от този, който беше имплантиран под кожата на Джеймс Бонд. Тъй като нашата конкуренция зависи от координатите на летящия сървър, тази част от данните, получени от дъската, ще бъдат най-важни. Но ще говорим за това в следващата публикация. Очаквайте скоро, следете нашия блог!
Ние толкова много вярваме в успеха на цялото начинание, че дори обявихме конкурс за тези, които внезапно искат да познаят къде ще кацне топката. Подробности в нашия
Източник: www.habr.com