Хабрахабр

Анатомия «Космического ЦОДа». Заоблачный сервер: смотрим под капот

Во время полета стратостат будет раздавать интернет, снимать и передавать видео и данные телеметрии на землю. Уже завтра мы отправим наш сервер в стратосферу. 0»). Мы несколько раз писали, что расскажем про техническую сторону нашего проекта «Космический ЦОД» (раньше отзывался на имя «Сервер в облаках 2. Под катом горсть железок и кода.
Обещали — выполняем!

Веб-сервер

Даже в прошлом проекте «Сервер в облаках», когда мы поднимались на полноценном воздушном шаре с экипажем из двух человек, брать с собой полноценный сервер с аккумуляторной сборкой было, скажем так, не рационально. А сейчас речь идёт о маленьком стратостате, которому предстоит подъём на 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.

Но в любом случае, после того, как мы найдём приземлившийся стратостат, мы выложим видео с камеры и вы сможете сами убедиться, какие сообщения получил наш «предкосмический ЦОДик» и на какую высоту он забрался — телеметрия будет выводиться в той же HTML-страничке, к тому же будет виден кусочек горизонта. Ещё мы планируем транслировать видеоряд с GoPro по отдельному радиоканалу, но как оно будет работать, пока неизвестно — возможно, низкая облачность сильно уменьшит дальность связи.

Питание

Вся вышеописанная красота будет запитана от сборки литиевых аккумуляторов, собранных по схеме 3S4B — три последовательно, четыре параллельно. Общая ёмкость около 14 А·ч при напряжении в 12 В. По нашим прикидкам, этого должно хватить, но после финальной сборки, конечно, измерим фактическое потребление, и если нужно, накинем ещё аккумуляторов.

А «домиком» для сервера и прочих приборов будет гермобокс. Ещё добавьте ко всему этому GPS-маяки, по которым мы будем искать приземлившийся стратостат.

Заодно и радиационную дозу уменьшит, хотя для нашего проекта это никакой роли не играет, слишком недолго сервер будет летать в стратосфере, да и фон там не такой высокий, как на МКС. Он убережёт нежную аппаратуру от перепадов температур и давления.

Главный приз — поездка на Байконур на запуск пилотируемого корабля Союз-МС-13. Кроме отправки сообщений на сайте проекта, вы можете поучаствовать в конкурсе и угадать место приземления зонда.

Показать больше

Похожие публикации

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Кнопка «Наверх»