Bulutlardaki sunucu: başlamaya hazırlanıyor

В yarışla ilgili gönderi Ağustos ayında tüm Habrazhiteller için ödüllü bir yarışma düzenleneceğini belirtmiştik. Artık sır perdesini kaldırmanın zamanı geldi. Bir şekilde "bulutlardaki sunucu" ifadesinin tam anlamıyla alınabileceği fikrine kapıldık. Hadi gökyüzüne ping atılabilecek çalışan bir sunucu başlatalım! İlk başta fikir çılgınca görünüyordu, ama onu bir o yana bir bu yana çevirdikten ve her şekilde tartıştıktan sonra sonunda sunucuyu kuşlara doğru göndermenin bir yolunu bulduk. Ağustos sonunda çığır açacak bir lansman gerçekleşecek ama şimdilik projenin donanım kısmı üzerinde çalışıyoruz. Kesimin altındaki ayrıntılar.

Bulutlardaki sunucu: başlamaya hazırlanıyor

  1. Sunucu Raspberry Pi 3'ü temel alacak

    Tek üniteli bir sunucuyu havaya kaldırmak ilginç olurdu, ancak ağırlığı + UPS'in ağırlığı... Bütün bunlar önemli bir kaldırma kuvveti gerektirecektir. Ve neden, kompakt bir Raspberry Pi 3 temelinde, Tim Berners-Lee'nin 1991'de eğlendiği makineden birkaç yüz kat daha fazla bilgi işlem gücüne sahip, oldukça iyi bir sunucuyu dağıtabiliyorsanız.

  2. Sunucuyu sıcak hava balonunda başlatalım

    Sunucuyu bir helyum sondası üzerinde kaldırma fikirlerimiz vardı, ancak daha sonra sunucu, balonun yüksek bir irtifada seyrekleştirilmiş bir atmosferde patlamasından ve tüm yapının yere düşmesinden önce uzun süre sinyal vermedi. Yayın süresi “penceresini” bir buçuk saate çıkarmak istedim. Daha sonra balon kullanmaya karar verdiler. Uçuş süresi iki saattir. Ayrıca uçuş tam olarak kontrol edilemese de, sepette bir arıza durumunda hızlı bir şekilde, anında "açıp kapatabilecek" mühendisimiz bulunabilir.

  3. Hücresel iletişimi ulaşım ağı olarak kullanacağız

    Modern Wi-Fi antenleri oldukça uzun mesafeleri "delebilir", ancak bunun için parametreleri açısından askeri bir radar istasyonundan pek de aşağı olmayan bir iletişim kompleksi inşa etmek gerekecektir. Ve 1,5-2 saatlik iletişim uğruna böyle bir sistem kurmanın hiçbir anlamı yok çünkü balonun yüksekliğinde hücresel iletişimin stabil çalışması gerekiyor.

Bu "varsayımları" formüle ettikten sonra proje artık uygulanamaz görünmeye başladı ve çok geçmeden üç yönde de aynı anda çalışmaya başladık.

Her şeyden önce, şuradaki adamlara döndük: nearspace.ruHer türlü demir parçasını havaya fırlatırken köpeği yiyen (ardından arama ve kurtarma ile).

Daha sonra yöneticimizin komodininde duran Raspberry Pi 3'ü çıkardık ve kurmaya başladık.

Bulutlardaki sunucu: başlamaya hazırlanıyor
Kamerayı bağladım:

Bulutlardaki sunucu: başlamaya hazırlanıyor
Ve bunu “Semyon”umuzda test ettik:

Bulutlardaki sunucu: başlamaya hazırlanıyor
Semyon bir model ve asistan olarak çok kullanışlıdır - yemek istemez, telefondan dikkati dağılmaz, her zaman harika bir ruh hali içindedir ve kaskının her yerinden geniş bir gülümsemeyle çıkar. Uçuş için elbette böyle bir uzay giysisine ihtiyacımız yok ama ofiste doğru atmosferi yaratıyor.

Proje taslağı şu şekilde:

Bulutlardaki sunucu: başlamaya hazırlanıyor
Powerbank yer testi için kullanılıyor; fırlatma için daha güvenilir bir şeye ihtiyaç var.

Belki de en ilginç donanım parçası, tüm sensörlerden veri almaya yarayan bir karttır:

Bulutlardaki sunucu: başlamaya hazırlanıyor
Beyler nearspace.ru Çeşitli analoglarla uzun süre uğraştık ve sonra kendimiz yerleşik bir bilgisayar yaptık, çünkü güvenilirlik belirleyici bir öneme sahiptir, tüm projenin kaderi telemetri verilerine bağlıdır. Yerleşik bilgisayar, bağlı tüm sensörlerden veri almak ve bunları Raspberry Pi'ye iletmekten sorumludur.

Onu başlattık, yapılandırdık ve birkaç haftalık programlama ve teflerle çömelme sonrasında, geniş açılı bir kameradan telemetri verilerini ve Semyon'un bir fotoğrafını almayı başardık:

Bulutlardaki sunucu: başlamaya hazırlanıyor
Telemetri verileri tek satırda aşağıdaki biçimde iletilir:

Bulutlardaki sunucu: başlamaya hazırlanıyor
Bu kod daha sonra dizeyi bir diziye dönüştürür ve verileri siteye çıkarır:

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

Bazı verilerin açıklaması:

  • N:2432; — her zaman artan veri paketi numarası
  • T:40m39s; - uçuş kontrol cihazının açıldığı andan itibaren geçen süre
  • MP.Aşama:0; — uçuş aşaması (0 — yerde veya 1 km'nin altında, 1 — yükselme, 2 — yükseklikte havada asılı kalma, 3 — alçalma)
  • MP.Alt:54; — deniz seviyesinden metre cinsinden barometrik yükseklik — görüntülenmelidir
  • MP.VHız:0.0; — medyan filtreyle saniyede metre cinsinden dikey hız
  • MP.Ort.VHız:0.0; — ortalama filtreyle saniyede metre cinsinden dikey hız
  • Baro.Basın:1006.49; — milibar cinsinden barometre basıncı
  • Baro.Alt:54; - barometreye göre yükseklik
  • Baro.Sıcaklık:36.99; - barometrenin kendisinin sıcaklığı
  • GPS.Koord:N56d43m23s,E37d55m68s; — mevcut koordinatlar
  • GPS.Ana Sayfa:N56d43m23s,E37d55m68s; — başlangıç ​​noktasının koordinatları
  • GPS.Alt:165; — Metre cinsinden GPS yüksekliği
  • GPS.Dst:10; — metre cinsinden başlangıç ​​noktasına olan mesafe
  • DS.Sıcaklık:[fc]=34.56; - karttaki sıcaklık sensörü

Çıktı neye benziyor:

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 
)

Hücresel iletişim "düşerse" ne yapmalı? Bu durumda ikinci bir kartımız var; modeme iki SIM kart takılı (her seferinde bir yuva):

Bulutlardaki sunucu: başlamaya hazırlanıyor
Ana kanal aniden yanıt vermeyi bırakırsa otomatik olarak yedek kanala geçebilir.

Her iki hücresel ağ da kullanılamaz hale gelirse ne olur?

Bulutlardaki sunucu: başlamaya hazırlanıyor(Oğlan "Yeralash" Sayısı: 45 “Olasılık Teorisi”ni okuması boşuna değil)

Bu durumda konumu hakkında sinyal gönderen bağımsız bir GPS izleyicimiz olacak. Bunu, uzun mesafelerde kullanılabilirliği hiç kimse tarafından garanti edilmeyen hücresel bir ağ aracılığıyla değil, bir uydu aracılığıyla yaptığını lütfen unutmayın.

Bulutlardaki sunucu: başlamaya hazırlanıyor
Evet, GPS takip cihazı James Bond'un derisinin altına yerleştirilen cihazdan biraz daha büyük. Yarışmamız uçan sunucunun koordinatlarına bağlı olduğundan, panodan alınan verilerin bu kısmı en önemli kısım olacaktır. Ancak bir sonraki yazımızda bunun hakkında konuşacağız. Çok yakında, blogumuzu takip edin!

Tüm işletmenin başarısına o kadar inanıyoruz ki, bir anda topun nereye düşeceğini tahmin etmek isteyenler için bir yarışma bile duyurduk. Detaylar bizim yeni posta.

Kaynak: habr.com

Yorum ekle