В
- O servidor será baseado em Raspberry Pi 3
Seria interessante levantar no ar um servidor de unidade única, mas seu peso + o peso do no-break... Tudo isso exigiria uma força de elevação considerável. E por que, se com base em um Raspberry Pi 3 compacto você pode implantar um servidor bastante decente, com um poder de computação centenas de vezes maior do que a máquina em que Tim Berners-Lee se divertiu em 1991.
- Vamos lançar o servidor em um balão de ar quente
Tínhamos ideias de levantar o servidor em uma sonda de hélio, mas o servidor demoraria muito para que o balão explodisse em alta altitude em uma atmosfera rarefeita e toda a estrutura caísse no chão. Queria ampliar a “janela” de tempo de antena para uma hora e meia. E então decidiram usar um balão. A duração do voo é de duas horas. Além disso, embora o voo não seja totalmente controlável, pode estar no cesto o nosso engenheiro, que, em caso de avaria, pode rapidamente, no local, “ligá-lo e desligá-lo”.
- Usaremos comunicações celulares como rede de transporte
As antenas WiFi modernas podem “perfurar” distâncias bastante longas, mas para isso seria necessário construir um complexo de comunicações que não fosse muito inferior em seus parâmetros a uma estação de radar militar. E por causa de 1,5 a 2 horas de comunicação, não faz sentido construir tal sistema, porque na altitude do balão, as comunicações celulares devem funcionar de forma estável.
Depois de formular estes “postulados”, o projeto já não parecia inviável e logo começamos a trabalhar nas três direções ao mesmo tempo.
Em primeiro lugar, recorremos aos caras de
Em seguida, pegamos o Raspberry Pi 3, que estava na mesa de cabeceira do administrador, e começamos a configurá-lo.
Conectou a câmera:
E testamos em nosso “Semyon”:
Semyon é muito conveniente como modelo e assistente - não pede comida, não se distrai com o telefone, está sempre de ótimo humor e com um largo sorriso em todo o capacete. É claro que não precisamos desse traje espacial para o voo, mas ele cria a atmosfera certa no escritório.
O esboço do projeto é o seguinte:
O Powerbank é usado para testes de solo; é necessário algo mais confiável para o lançamento.
Talvez a peça de hardware mais interessante seja uma placa para receber dados de todos os sensores:
Caras de
Lançamos, configuramos e depois de algumas semanas de programação e agachamento com pandeiros, conseguimos obter dados de telemetria e uma foto de Semyon de uma câmera grande angular:
Os dados de telemetria são transmitidos em uma linha da seguinte forma:
Este código então converte a string em um array e envia os dados para o 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; — tempo desde o momento em que o controlador de vôo é ligado
- MP.Estágio:0; — fase de voo (0 — no solo ou abaixo de 1 km, 1 — subida, 2 — pairar em altitude, 3 — descida)
- MP.Alt:54; — altitude 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.Pressione:1006.49; — pressão barométrica em milibares
- Baro.Alt:54; - altitude de acordo com o 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 de partida
- GPS.Alt:165; — Altitude GPS em metros
- GPS.Dst:10; — distância do ponto de partida em metros
- DS.Temp:[fc]=34.56; - sensor de temperatura na placa
Qual é a aparência da saída:
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
)
O que fazer se a comunicação celular “cair”? Para este caso, temos um segundo cartão; dois cartões SIM são inseridos no modem (um slot por vez):
Ele pode mudar automaticamente para um canal sobressalente se o canal principal parar de responder repentinamente.
O que acontece se ambas as redes celulares ficarem indisponíveis?
(menino de
Neste caso, teremos um rastreador GPS independente que envia um sinal sobre sua localização. Observe que isso não é feito por meio de uma rede celular, cuja disponibilidade em longas distâncias não é garantida por ninguém, mas por meio de um satélite.
Sim, o rastreador GPS é um pouco maior do que aquele implantado sob a pele de James Bond. Como a nossa competição depende das coordenadas do servidor voador, esta parte dos dados recebidos do tabuleiro será a mais importante. Mas falaremos sobre isso no próximo post. Em breve, acompanhe nosso blog!
Acreditamos tanto no sucesso de todo o empreendimento que até anunciamos um concurso para quem de repente quer adivinhar onde a bola vai cair. Detalhes em nosso
Fonte: habr.com