В
- O servidor estará baseado en Raspberry Pi 3
Sería interesante levantar ao aire un servidor dunha soa unidade, pero o seu peso + o peso do SAI... Todo isto requiriría unha forza de elevación considerable. E por que, se en base a un Raspberry Pi 3 compacto pódese implantar un servidor bastante decente, cunha potencia de cálculo varias centos de veces maior que a máquina na que se divertía Tim Berners-Lee en 1991.
- Imos lanzar o servidor nun globo aerostático
Tiñamos ideas para levantar o servidor nunha sonda de helio, pero entón o servidor non facía ping por moito tempo antes de que o globo estalase a gran altitude nunha atmosfera enrarecida e toda a estrutura caese ao chan. Quería ampliar a "xanela" do tempo de emisión a unha hora e media. E entón decidiron usar un globo. A duración do voo é de dúas horas. Ademais, aínda que o voo non é totalmente controlable, pode haber o noso enxeñeiro na cesta, quen, en caso de mal funcionamento, pode "acendelo e apagalo" rapidamente no lugar.
- Utilizaremos as comunicacións móbiles como rede de transporte
As antenas WiFi modernas poden "perforar" distancias bastante longas, pero para iso sería necesario construír un complexo de comunicacións que non sexa moi inferior nos seus parámetros a unha estación de radar militar. E por razón de 1,5-2 horas de comunicación, non ten sentido construír un sistema deste tipo, porque á altitude do globo, as comunicacións móbiles deben funcionar de forma estable.
Despois de formular estes "postulados", o proxecto xa non parecía impracticable, e pronto comezamos a traballar nas tres direccións á vez.
En primeiro lugar, dirixímonos aos rapaces de
Despois sacamos o Raspberry Pi 3, que estaba na mesa de noite do noso administrador, e comezamos a configuralo.
Conectada a cámara:
E probámolo no noso "Semyon":
Semyon é moi cómodo como modelo e asistente: non pide comida, non se distrae co teléfono, sempre está de gran humor e cun amplo sorriso por todo o seu casco. Por suposto, non necesitamos un traxe espacial para o voo, pero crea a atmosfera adecuada na oficina.
O esquema do proxecto é o seguinte:
O Powerbank utilízase para as probas no terreo; para o lanzamento necesítase algo máis fiable.
Quizais a peza de hardware máis interesante é unha placa para recibir datos de todos os sensores:
Rapaces de
Puxémolo en marcha, configurámolo e despois dun par de semanas de programación e agachados con pandeiretas conseguimos obter datos de telemetría e unha foto de Semyon dunha cámara gran angular:
Os datos de telemetría transmítense nunha liña da seguinte forma:
Este código converte a cadea nunha matriz e envía os datos ao sitio:
$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);
Descrición dalgúns datos:
- N: 2432; — número de paquetes de datos, sempre en aumento
- T: 40m39s; — tempo desde o momento en que se acende o controlador de voo
- MP.Stage: 0; — etapa de voo (0 — no chan ou a menos de 1 km, 1 — ascenso, 2 — flotando en altitude, 3 — descenso)
- MP.Alt:54; — altitude barométrica en metros desde o nivel do mar — debe mostrarse
- MP.VSvelocidade: 0.0; — velocidade vertical en metros por segundo con filtro mediano
- MP.Velocidade media: 0.0; — velocidade vertical en metros por segundo con filtro de media
- Baro.Imprenta:1006.49; - Presión barométrica en milibares
- Baro.Alt:54; - altitude segundo barómetro
- Baro.Temp:36.99; - temperatura do propio barómetro
- GPS.Coord:N56d43m23s,E37d55m68s; - Coordenadas actuais
- GPS.Inicio:N56d43m23s,E37d55m68s; — coordenadas do punto de partida
- GPS.Alt:165; — Altitude GPS en metros
- GPS.Dst:10; - Distancia do punto de partida en metros
- DS.Temp:[fc]=34.56; - Sensor de temperatura no taboleiro
Como é a 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
)
Que facer se a comunicación móbil "cae"? Para este caso, temos unha segunda tarxeta; dúas tarxetas SIM están inseridas no módem (unha ranura á vez):
Pode cambiar automaticamente a unha canle de reserva se a principal deixa de responder de súpeto.
Que pasa se as dúas redes móbiles non están dispoñibles?
(Neno de
Neste caso, teremos un rastreador GPS independente que envía un sinal sobre a súa localización. Teña en conta que non o fai a través dunha rede móbil, cuxa dispoñibilidade a longas distancias non está garantida por ninguén, senón a través dun satélite.
Si, o rastreador GPS é algo máis grande que o que foi implantado baixo a pel de James Bond. Dado que a nosa competición depende das coordenadas do servidor voador, esta parte dos datos recibidos do taboleiro será a máis importante. Pero disto falaremos no seguinte post. Próximamente, segue o noso blog!
Cremos tanto no éxito de toda a empresa que ata anunciamos unha competición para aqueles que de súpeto queren adiviñar onde caerá a pelota. Detalles na nosa
Fonte: www.habr.com