Servidor nas nuvens: preparando-se para iniciar

Em um post sobre a regata, mencionamos que em agosto, uma competição com prêmios aguarda todos os vendedores ambulantes. É hora de rasgar o véu do segredo. De alguma forma, tivemos a ideia de que a frase "servidor nas nuvens" pode ser entendida literalmente. E vamos realmente lançar um servidor em funcionamento no céu que você possa executar ping! No começo, a ideia parecia louca, mas, torcendo-a assim e discutindo-a de todas as formas, ainda tínhamos uma maneira de enviar o servidor para os pássaros. Já no final de agosto, ocorrerá um lançamento histórico, mas por enquanto estamos trabalhando no hardware do projeto. Detalhes sob o corte.


  1. O servidor será baseado no Raspberry Pi 3

    Seria interessante colocar um servidor de servidor único no ar, mas seu peso + o peso da UPS ... Por tudo isso, seria necessária uma força de elevação considerável. Sim, e por que, se, com base no compacto Raspberry Pi 3, você puder implantar um servidor decente, com um poder de computação centenas de vezes maior que a máquina com a qual Tim Berners-Lee se divertiu em 1991.
  2. Vamos lançar o servidor em um balão

    Tínhamos idéias para elevar o servidor em uma sonda de hélio, mas o servidor não tocaria por um tempo antes que a bola rebentasse a grandes altitudes em uma atmosfera rarefeita e toda a estrutura caísse no chão. Eu queria expandir a "janela" do tempo de antena para uma hora e meia. E então eles decidiram usar um balão. A duração do vôo é de duas horas. Além disso, o voo, embora não seja totalmente controlável, pode haver nosso engenheiro na cesta, que pode, em caso de mau funcionamento, prontamente “ligar e desligar” no local.
  3. Usaremos a comunicação celular como uma rede de transporte

    As antenas WiFi modernas podem "penetrar" distâncias razoavelmente grandes, mas para isso seria necessário construir um complexo de comunicações que não fosse inferior em seus parâmetros a uma estação de radar militar. E por uma questão de 1,5 a 2 horas de comunicação, não faz sentido construir um sistema assim, porque no auge do vôo do balão, a comunicação celular deve funcionar de maneira estável.

Após a formulação desses "postulados", o projeto deixou de parecer impraticável e logo começamos a trabalhar imediatamente nas três áreas.

Antes de tudo, pediram ajuda aos caras do nearspace.ru que comiam um cachorro nos lanches de qualquer peça de ferro (com busca e salvamento subsequentes).

Então eles pegaram o Raspberry Pi 3, deitado na mesa de cabeceira do nosso administrador, e começaram a configurá-lo.


Câmera conectada:


E nós o testamos em nossa "Semente":


Semyon é muito conveniente como modelo e assistente - não pede comida, não se distrai com o telefone, sempre de bom humor e com um sorriso largo no capacete. Obviamente, não precisamos de um traje espacial para o voo, mas a atmosfera no escritório cria o caminho certo.

O esboço do projeto é o seguinte:


O Powerbank é usado para testes de solo. Para começar, você precisa de algo mais confiável.

Talvez a peça de hardware mais interessante seja a placa para receber dados de todos os sensores:


Os caras do nearspace.ru sofreram por um longo tempo com diferentes análogos e, em seguida, eles mesmos fabricaram um computador de bordo, porque a confiabilidade é crucial, o destino de todo o projeto depende de dados de telemetria. O computador de bordo é responsável por receber dados de todos os sensores conectados e transferi-los para o Raspberry Pi.

Eles o iniciaram, configuraram e, após algumas semanas de programação e agachamentos com pandeiros, conseguimos obter dados de telemetria e fotos de Seeds de uma câmera grande angular:


Os dados de telemetria são transmitidos em uma linha da seguinte forma:


Em seguida, esse código converte a string em uma matriz e exibe os dados no site:

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

Descrição de alguns dados:

  • N: 2432; - número do pacote de dados, sempre aumentando
  • T: 40m39s; - hora a partir do momento em que o controlador de vôo é ligado
  • MP.Stage: 0; - estágio de vôo (0 - no solo ou abaixo de 1 km, 1 - subida, 2 - pairar na altitude, 3 - descida)
  • MP.Alt: 54; - altura barométrica em metros do nível do mar - deve ser exibida
  • MP.VSpeed: 0,0; - velocidade vertical em metros por segundo com filtro mediano
  • MP.AvgVSpeed: 0.0; - velocidade vertical em metros por segundo com filtro de média
  • Baro.Press: 1006,49; - pressão barométrica em milibares
  • Baro.Alt: 54; - altura do barômetro
  • Baro.Temp: 36,99; - temperatura do próprio barômetro
  • GPS.Coord: N56d43m23s, E37d55m68s; - coordenadas atuais
  • GPS.Home: N56d43m23s, E37d55m68s; - coordenadas do ponto inicial
  • GPS.Alt: 165; - altura do GPS em metros
  • GPS.Dst: 10; - distância do ponto de partida em metros
  • DS.Temp: [fc] = 34,56; - sensor de temperatura no quadro

Como é a saída:

 Array ( [N] => 647 [] => 10m55 [MP_Stage] => 0 [MP_Alt] => 49 [MP_VSpeed) => 0.0 [MP_AvgVSpeed] => 0.0 [Baro rss] => 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 ) 

Mas e se a conexão celular "cair"? Nesse caso, temos um segundo cartão, dois cartões SIM são inseridos no modem (em um slot, por sua vez):


Ele pode mudar automaticamente para o canal sobressalente se o principal parar de responder de repente.

E o que acontecerá se as duas redes celulares ficarem indisponíveis?

(O garoto da edição de "Jumble" No. 45 não lê em vão a "Teoria da Probabilidade")

Nesse caso, teremos um rastreador GPS independente que envia um sinal sobre sua localização. Observe que ele faz isso não através de uma rede celular, cuja disponibilidade por longas distâncias é garantida por ninguém, mas por um satélite.


Sim, o rastreador GPS é um pouco maior que o que James Bond implantou sob a pele. Como nossa competição depende das coordenadas do servidor voador, essa parte dos dados recebidos do conselho será a mais importante. Mas falaremos sobre isso no próximo post. Muito em breve, siga o nosso blog!

Acreditamos tanto no sucesso de toda a empresa que eles até anunciaram uma competição para aqueles que de repente querem adivinhar o local do pouso da bola. Detalhes em nosso novo post .

Source: https://habr.com/ru/post/pt420451/


All Articles