
Вже завтра ми відправимо наш сервер до стратосфери. Під час польоту стратостат роздаватиме інтернет, зніматиме і передаватиме відео та дані телеметрії на землю. Ми кілька разів писали, що розповімо про технічну сторону нашого проекту «Космічний ЦОД» (раніше відгукувався на ім'я)»). Обіцяли – виконуємо! Під катом жменя залізок та коду.
Веб-сервер
Навіть у минулому проекті «Сервер у хмарах», коли ми піднімалися на повноцінній повітряній кулі з екіпажем із двох людей, брати із собою повноцінний сервер із акумуляторною збіркою було, скажімо так, не раціонально. А зараз мова йде про маленький стратостат, який має підйом на 30 км, а не на 1. Тому ми в якості веб-сервера вибрали той же Raspberry Pi. Цей мікрокомп'ютер формуватиме HTML-сторінку і показуватиме її на окремому дисплеї.
Супутниковий зв'язок
Крім Raspberry на борту полетять модеми мереж супутникового зв'язку Iridium та Globalstar. Як ви пам'ятаєте, ми планували їм до компанії додати і модем вітчизняної мережі «Гонець», але ми не встигли отримати його заздалегідь, тому відправимо його наступного польоту. Через супутникові модеми веб-сервер отримуватиме ваші повідомлення, які можна буде надсилати на . Ці повідомлення будуть передаватися на Raspberry Pi, яка вибудовуватиме з них чергу і відображатиме на HTML-сторінці.
Важливий момент: обмеження на довжину текстового повідомлення російською мовою – 58 символів (включаючи пробіли). Якщо повідомлення буде довшим, при передачі він буде обрізано. Також з тексту вирізатимуться всі спец.символи, наприклад, /+$%&;''""<>n і подібні.
Оскільки Raspberry Pi має лише один UART-порт, ми підключимо супутникові модеми через проміжний концентратор, який буде збирати дані з модемів і відправляти на Raspberry Pi.
Радіомодем
Всі отримані від вас повідомлення веб-сервер не лише відображатиме на дисплеї, але й транслюватиме на Землю по радіомодему LoRa. Так ми хочемо протестувати ідею роздачі інтернету зі стратосфери (триб'ют проекту Google Loon). Звичайно, наш стратостат — це не повноцінний ретранслятор зв'язку, але навіть якщо його можливостей вистачить для стійкої передачі даних, без великих втрат інформації, то спеціалізовані системи точно впораються з роздачею інтернету з передкосмосу.
телеметрія
Крім того, ми плануємо на тій самій HTML-сторінці виводити дані телеметрії. Брати їх Raspberry Pi з окремого польотного контролера.

Він опитує різні датчики, які можна помістити як усередині, так і зовні апаратного гермобоксу, збирає інформацію в купу, зачісує і зручно віддає тим, хто попросить. У нашому випадку попросить Raspberry Pi. Ми будемо реєструвати тиск, висоту, GPS-координати, вертикальну та горизонтальну швидкість та температуру.
Дані з польотного контролера передаються довгими рядками, які потім за допомогою цього коду:
$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);перетворюються на масив у зручному для відображення вигляді:
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
)Телеметричні дані ми також транслюватимемо на Землю разом з вашими повідомленнями. Для цього в місці запуску розгорнемо приймальну станцію.
Дисплей та камера
Щоб ви могли переконатися, що сервер дійсно отримує ваші повідомлення через супутниковий зв'язок, і що він взагалі полетів у стратосферу, а не стоїть у нас в офісі, ми вирішили виводити всі повідомлення з телеметрії на дисплей, який зніматиме GoPro. Часу на підготовку проекту було мало (та коли його буває багато?!), тому ми не стали мучити Аліекспрес і паяльник, а натомість взяли готовий прилад. Для наших потреб його більш ніж достатньо. Дисплей ми підключимо до Raspberry через HDMI.
Ще ми плануємо транслювати відеоряд з GoPro окремим радіоканалом, але як воно працюватиме, поки невідомо — можливо, низька хмарність сильно зменшить дальність зв'язку. Але в будь-якому випадку, після того, як ми знайдемо стратостат, що ви приземлився, ми викладемо відео з камери і ви зможете самі переконатися, які повідомлення отримав наш «предкосмічний ЦОДик» і на яку висоту він забрався — телеметрія буде виводитися в тій же HTML-сторінці, до того ж буде видно шматок горизонту.
Живлення
Вся описана краса буде запитана від складання літієвих акумуляторів, зібраних за схемою 3S4B — три послідовно, чотири паралельно. Загальна ємність близько 14 А·год при напрузі в 12 В. За нашими прикидками, цього має вистачити, але після фінального складання, звичайно, виміряємо фактичне споживання, і якщо потрібно, накинемо ще акумуляторів.
Ще додайте до всього цього GPS-маяки, за якими ми шукатимемо стратостат, що приземлився. А "будиночком" для сервера та інших приладів буде гермобокс.

Він убереже ніжну апаратуру від перепадів температур та тиску. Заодно й радіаційну дозу зменшить, хоча для нашого проекту це ніякої ролі не відіграє, надто недовго сервер літатиме в стратосфері, та й фон там не такий високий, як на МКС.
Крім надсилання повідомлень на , ви можете взяти участь у конкурсі та вгадати місце приземлення зонда. Головний приз - поїздка на Байконур на запуск пілотованого корабля Союз-МС-13.
Джерело: habr.com
