Server di awan: bersiap untuk diluncurkan

В posting tentang lomba layar Kami menyebutkan bahwa pada bulan Agustus akan ada kompetisi berhadiah untuk semua Habrazhitel. Waktunya telah tiba untuk membuka tabir kerahasiaan. Entah bagaimana kami mendapat gagasan bahwa ungkapan “server di awan” dapat diartikan secara harfiah. Mari kita luncurkan server yang berfungsi ke angkasa yang dapat di-ping! Awalnya ide tersebut terlihat gila, namun setelah memutarbalikkannya kesana kemari, mendiskusikannya dengan segala cara, akhirnya kami menemukan cara untuk mengirimkan server tersebut ke arah burung. Peluncuran penting akan dilakukan pada akhir Agustus, tetapi untuk saat ini kami sedang mengerjakan bagian perangkat keras dari proyek tersebut. Detail di bawah potongan.

Server di awan: bersiap untuk diluncurkan

  1. Server akan didasarkan pada Raspberry Pi 3

    Akan menarik untuk mengangkat satu unit server ke udara, tetapi beratnya + berat UPS... Semua ini membutuhkan gaya angkat yang besar. Dan mengapa, jika berdasarkan Raspberry Pi 3 yang ringkas Anda dapat menggunakan server yang cukup baik, dengan daya komputasi beberapa ratus kali lebih besar daripada mesin yang digunakan Tim Berners-Lee pada tahun 1991.

  2. Mari kita luncurkan server di balon udara

    Kami memiliki ide untuk mengangkat server pada probe helium, tetapi server tidak akan melakukan ping lama sebelum balon meledak di ketinggian dalam atmosfer yang dijernihkan dan seluruh struktur akan jatuh ke tanah. Saya ingin memperluas “jendela” waktu tayang menjadi satu setengah jam. Dan kemudian mereka memutuskan untuk menggunakan balon. Durasi penerbangan adalah dua jam. Selain itu, meskipun penerbangan tidak sepenuhnya dapat dikendalikan, mungkin ada teknisi kami di dalam keranjang yang, jika terjadi malfungsi, dapat dengan cepat, langsung, “menghidupkan dan mematikannya”.

  3. Kami akan menggunakan komunikasi seluler sebagai jaringan transportasi

    Antena WiFi modern dapat “menembus” jarak yang cukup jauh, tetapi untuk itu perlu dibangun kompleks komunikasi yang parameternya tidak kalah dengan stasiun radar militer. Dan demi komunikasi 1,5-2 jam, tidak masuk akal membangun sistem seperti itu, karena di ketinggian balon, komunikasi seluler harus bekerja secara stabil.

Setelah merumuskan “postulat” ini, proyek tersebut tampaknya tidak lagi mustahil, dan kami segera mulai bekerja di ketiga arah sekaligus.

Pertama-tama, kami beralih ke orang-orang dari dekatspace.ru, yang memakan anjing tersebut sambil meluncurkan segala macam potongan besi ke udara (diikuti dengan pencarian dan penyelamatan).

Kemudian kami mengeluarkan Raspberry Pi 3 yang tergeletak di meja samping tempat tidur admin kami dan mulai mengaturnya.

Server di awan: bersiap untuk diluncurkan
Menghubungkan kamera:

Server di awan: bersiap untuk diluncurkan
Dan kami mengujinya di “Semyon” kami:

Server di awan: bersiap untuk diluncurkan
Semyon sangat nyaman sebagai model dan asisten - dia tidak meminta makanan, tidak terganggu oleh telepon, selalu dalam suasana hati yang baik dan dengan senyum lebar di seluruh helmnya. Tentu saja, kita tidak memerlukan pakaian antariksa seperti itu untuk penerbangan, tetapi pakaian antariksa seperti itu menciptakan suasana yang tepat di kantor.

Garis besar proyeknya adalah sebagai berikut:

Server di awan: bersiap untuk diluncurkan
Powerbank digunakan untuk pengujian darat; sesuatu yang lebih andal diperlukan untuk peluncuran.

Mungkin perangkat keras yang paling menarik adalah papan untuk menerima data dari semua sensor:

Server di awan: bersiap untuk diluncurkan
Teman-teman dari dekatspace.ru Kami berjuang lama dengan berbagai analog, dan kemudian kami membuat komputer terpasang sendiri, karena keandalan sangat penting, nasib keseluruhan proyek bergantung pada data telemetri. Komputer terpasang bertanggung jawab untuk menerima data dari semua sensor yang terhubung dan mengirimkannya ke Raspberry Pi.

Kami meluncurkannya, mengonfigurasinya, dan setelah beberapa minggu memprogram dan berjongkok dengan rebana, kami berhasil mendapatkan data telemetri dan foto Semyon dari kamera sudut lebar:

Server di awan: bersiap untuk diluncurkan
Data telemetri dikirimkan dalam satu jalur dalam bentuk berikut:

Server di awan: bersiap untuk diluncurkan
Kode ini kemudian mengubah string menjadi array dan mengeluarkan data ke situs:

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

Deskripsi beberapa data:

  • N:2432; — jumlah paket data, selalu bertambah
  • T:40m39dtk; — waktu sejak pengontrol penerbangan dihidupkan
  • MP.Tahap:0; — tahap penerbangan (0 — di darat atau di bawah 1 km, 1 — pendakian, 2 — melayang di ketinggian, 3 — turun)
  • MP.Alt:54; — ketinggian barometrik dalam meter dari permukaan laut — harus ditampilkan
  • MP.VKecepatan: 0.0; — kecepatan vertikal dalam meter per detik dengan filter median
  • MP.Kecepatan Rata-Rata:0.0; — kecepatan vertikal dalam meter per detik dengan filter rata-rata
  • Baro.Tekan:1006.49; — tekanan barometer dalam milibar
  • Baro.Alt:54; - ketinggian menurut barometer
  • Baro.Temp:36.99; - suhu barometer itu sendiri
  • GPS.Koord:N56d43m23s,E37d55m68s; — koordinat saat ini
  • GPS.Rumah:N56d43m23s,E37d55m68s; — koordinat titik awal
  • GPS.Alt:165; — Ketinggian GPS dalam meter
  • GPS.Dst:10; — jarak dari titik awal dalam meter
  • DS.Temp:[fc]=34.56; - sensor suhu di papan

Seperti apa hasilnya:

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 
)

Apa yang harus dilakukan jika komunikasi seluler “jatuh”? Untuk kasus ini, kami memiliki kartu kedua; dua kartu SIM dimasukkan ke modem (satu slot pada satu waktu):

Server di awan: bersiap untuk diluncurkan
Secara otomatis dapat beralih ke saluran cadangan jika saluran utama tiba-tiba berhenti merespons.

Apa yang terjadi jika kedua jaringan seluler tidak tersedia?

Server di awan: bersiap untuk diluncurkan(Anak laki-laki dari terbitan "Yeralash" No.45 Bukan tanpa alasan dia membaca “Teori Probabilitas”)

Dalam hal ini, kita akan memiliki pelacak GPS independen yang mengirimkan sinyal tentang lokasinya. Harap dicatat bahwa ini dilakukan bukan melalui jaringan seluler, yang ketersediaannya dalam jarak jauh tidak dijamin oleh siapa pun, tetapi melalui satelit.

Server di awan: bersiap untuk diluncurkan
Ya, pelacak GPS ini agak lebih besar dari yang ditanamkan di bawah kulit James Bond. Karena kompetisi kita bergantung pada koordinat server terbang, bagian data yang diterima dari dewan ini akan menjadi yang paling penting. Namun kita akan membicarakan hal ini di postingan berikutnya. Segera hadir, ikuti blog kami!

Kami sangat percaya pada keberhasilan seluruh perusahaan sehingga kami bahkan mengumumkan sebuah kompetisi bagi mereka yang tiba-tiba ingin menebak di mana bola akan mendarat. Detailnya ada di kami berita Baru.

Sumber: www.habr.com

Tambah komentar