Сервер в облаках: готовимся к запуску

    В посте про регату мы обмолвились, что в августе всех хабражителей ждет конкурс с призами. Пришло время сорвать покровы завесу секретности. Как-то нам пришла мысль, что фразу «сервер в облаках» можно понять буквально. А давайте действительно запустим в небо работающий сервер, который можно будет попинговать! Сначала идея выглядела безумной, но покрутив её так и эдак, обсудив на все лады, мы всё же придумали способ отправить сервер навстречу птицам. Уже в конце августа состоится эпохальный запуск, а пока что мы отрабатываем аппаратную часть проекта. Подробности под катом.


    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; — номер пакета данных, всегда увеличивается
    • T:40m39s; — время с момента включение полетного контроллера
    • 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.Home: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 
    )
    

    А что делать, если сотовая связь «упадет»? На этот случай у нас есть вторая карточка, в модем вставляются две симки (в один слот по очереди):


    Он умеет автоматом переключаться на запасной канал, если основной вдруг перестает откликаться.

    А что будет, если обе сотовых сети станут недоступны?

    (Мальчик из выпуска «Ералаш» №45 не зря читает «Теорию вероятностей»)

    На этот случай у нас будет независимый GPS-трекер, посылающий сигнал о своем местоположении. Обратите внимание, что делает он это не через сотовую сеть, доступность которой на большом расстоянии никем на гарантирована, а через спутник.


    Да, GPS-трекер несколько больше чем тот, который вживляли под кожу Джеймсу Бонду. Поскольку наш конкурс зависит от координат летящего сервера, эта часть получаемых с борта данных будет самой важной. Но об этом мы расскажем уже в следующем посте. Совсем скоро, следите за нашим блогом!

    Мы верим в успех всего предприятия настолько, что даже объявили конкурс для тех, кто вдруг захочет угадать место приземления шара. Подробности в нашем новом посте.

    RUVDS.com

    926,02

    RUVDS – хостинг VDS/VPS серверов

    Поделиться публикацией
    Комментарии 19
      +1
      А почему бы не использовать gps внутри ltAP?
        +1
        Проще разбирать пакет данных с одной железки, т.к. у нас там, как вы могли заметить, кроме координат еще куча данных
        +1
        Как то всё разношерстно и неоптимально по потреблению тока.
        Напомнило песню — Я его слепила из того, что было.
          +1
          Если бы это было решение, рассчитанное на 12 лет беспрерывной работы, с подзарядкой от солнечных батарей, то да, конечно же имело смысл озаботиться правильным распределением питания. А для двухчасового полета смысла тратить на это дополнительные ресурсы нет. У нас все же основная работа — поддерживать работоспособность наших серверов (за которые клиенты платят деньги), а этот проект скорее хобби ))
            0
            Я и не осуждаю.
          0
          А что за модемчик? Вопрос оффтопом, может кто порекомендует надежный 3G|LTE модем для дачи с Ethernet? Работа 24/7 от -20 до +30?
            0
            Поковыряйтесь тут
              0
              MikroTik wAP LTE kit, или SXT LTE kit, или LtAP mini LTE kit
                0
                Вот посматриваю на первый, уличного исполнения не надо, стоять будет в доме, но отопления нет, и до -20 зимой только так.
                0
                Радикально этот вопрос можно решить только настройкой на роутере, в который этот модем втыкается, watchdog демона, который при пропадании пинга будет перезагружать модем. И до кучи, еще ежесуточную перезагрузку самого роутера надо.

                По моему опыту, идеальных модемов не бывает. Я вот сначала поставил аж ZTE MF831, работал он сутками без единого сбоя и скорость из сети выжимал максимальную. Сгорел, зараза, через 2 недели, обидно за потраченные деньги (мимо гарантии пролетел). После этого плюнул, поставил какой-то безродный в 4 раза дешевле — скорость пониже, подвисает несколько раз в час, но пока не сгорал. Короче, нет в мире совершенства…
                  0
                  Перезагрузка это само собой, вообще модем планируется для удаленного мониторинга + видео наблюдение, а учитывая что зимой там вряд ли часто кто-то будет появляться то без перезагрузки никуда, причем чем тупее тем лучше, вплоть до механического таймера)
                0
                Так завесу с конкурсом так и не раскрыли?
                  0
                  Да, немного приоткрыли )) Но на следующей неделе уже все опубликуем, осталось не много, не переключайтесь!
                  0
                  Для чего в телеметрии столько текста? Это же лишняя нагрузка на канал. Передавайте просто значения через разделитель (как это сделано например у NMEA), ведь набор значений фиксированный.
                    0
                    Да, вы правы, можно было бы оптимизировать. Но, вместе с этим пакетом данных у нас будет еще и фото передаваться в высоком качестве. Поэтому лишние 20 символов погоду вообще не сделают, от слова «Совсем». Кроме того, с таким пакетом проще разбираться, когда все данные подписаны. Но если бы мы запускали спутник на Марс, то там, конечно, каждый бит был бы на счету.
                    0
                    новое слово в «облачных» серверах
                      0

                      Простите, а зачем?

                        0
                        Все равно высота ограничена мощностью вышки. Попробуйте спутниковую связь в следующий раз :)
                          0
                          Серьезно? Тонны же таких зондов уже отлетали, т.е. это новый виток моды вот щас на такое чтоли?))

                          Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                          Самое читаемое