Anatomy ng isang "Space Data Center". Sky-high server: tumingin sa ilalim ng hood

Anatomy ng isang "Space Data Center". Sky-high server: tumingin sa ilalim ng hood

Bukas ipapadala namin ang aming server sa stratosphere. Sa panahon ng paglipad, ang lobo ay magbibigay ng internet access, kukuha at magpapadala ng data ng video at telemetry sa Earth. Ilang beses na kaming sumulat na ibabahagi namin ang mga teknikal na detalye ng aming proyektong "Space Data Center" (dating kilala bilang "Cloud Server 2.0"). Nangako kami—tinutupad namin ito! Sa ibaba ng cut ay isang maliit na hardware at code.

Web server

Kahit na sa nakaraang proyektong "Server in the Clouds", nang umakyat kami sa isang ganap na hot air balloon na may dalawang tripulante, ang pagkuha ng isang ganap na server na may baterya pack ay, masasabi nating, hindi praktikal. At ngayon ay pinag-uusapan natin ang tungkol sa isang maliit na stratospheric balloon na aakyat ng 30 km sa halip na 1. Samakatuwid, pinili namin ang parehong Raspberry Pi bilang web server. Ang microcomputer na ito ay bubuo ng isang HTML na pahina at ipapakita ito sa isang hiwalay na display.

Koneksyon sa satellite

Bilang karagdagan sa Raspberry Pi, sasakay ang mga modem mula sa Iridium at Globalstar satellite communications network. Kung matatandaan mo, nagplano kaming magdagdag ng modem mula sa domestic Gonets network sa kanilang mga rank, ngunit wala kaming oras para matanggap ito sa tamang oras, kaya ipapadala namin ito sa susunod na flight. Matatanggap ng web server ang iyong mga mensahe sa pamamagitan ng mga satellite modem, na maaaring ipadala sa pahina ng proyektoIpapadala ang mga mensaheng ito sa Raspberry Pi, na magpi-queue sa kanila at ipapakita ang mga ito sa isang HTML page.

Mahalaga: Ang limitasyon sa haba para sa mga text message sa Russian ay 58 character (kabilang ang mga puwang). Kung mas mahaba ang mensahe, puputulin ito sa panahon ng paghahatid. Ang lahat ng mga espesyal na character ay aalisin din sa teksto, tulad ng: /+$%&;''""<>n at mga katulad nito.

Dahil ang Raspberry Pi ay mayroon lamang isang UART port, ikokonekta namin ang mga satellite modem sa pamamagitan ng isang intermediate hub, na mangongolekta ng data mula sa mga modem at ipapadala ito sa Raspberry Pi.

Modem ng radyo

Hindi lamang ipapakita ng web server ang lahat ng mensaheng natanggap mula sa iyo sa screen ngunit ipapadala rin ang mga ito sa Earth sa pamamagitan ng LoRa radio modem. Ito ay kung paano namin gustong subukan ang ideya ng pamamahagi ng internet mula sa stratosphere (isang pagkilala sa proyekto ng Google Loon). Siyempre, ang aming stratospheric balloon ay hindi isang ganap na repeater ng komunikasyon, ngunit kahit na ang mga kakayahan nito ay sapat para sa stable na paghahatid ng data nang walang makabuluhang pagkawala ng data, tiyak na magagawa ng mga dalubhasang system na pangasiwaan ang pamamahagi ng internet mula sa pre-space.

Telemetry

Plano rin naming magpakita ng data ng telemetry sa parehong HTML page. Matatanggap ito ng Raspberry Pi mula sa isang hiwalay na flight controller.

Anatomy ng isang "Space Data Center". Sky-high server: tumingin sa ilalim ng hood

Nagpo-poll ito ng iba't ibang sensor, na maaaring ilagay sa loob at labas ng hardware enclosure, kinokolekta ang data, inaayos ito, at ihahatid ito sa isang maginhawang format sa mga humihiling nito. Sa aming kaso, hihiling ito ng Raspberry Pi. Magre-record kami ng pressure, altitude, GPS coordinates, vertical at horizontal na bilis, at temperatura.

Ang data mula sa flight controller ay ipinapadala sa mahabang string, na pagkatapos ay pinoproseso gamit ang code na ito:

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

ay na-convert sa isang array sa isang form na maginhawa para sa pagpapakita:

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 
)

Magpapadala rin kami ng data ng telemetry sa Earth kasama ng iyong mga mensahe. Para sa layuning ito, magde-deploy kami ng receiving station sa lugar ng paglulunsad.

Display at camera

Upang matiyak na talagang natatanggap ng server ang iyong mga mensahe sa pamamagitan ng satellite, at na ito ay aktwal na nasa stratosphere at hindi lamang nakaupo sa aming opisina, nagpasya kaming ipakita ang lahat ng mensahe ng telemetry sa isang display na nakunan ng isang GoPro. Nagkaroon kami ng kaunting oras upang ihanda ang proyekto (at kailan pa ba magkakaroon ng sapat na oras?!), kaya nakalimutan namin ang abala ng AliExpress at isang soldering iron, at sa halip ay pumili ng isang handa na aparato. Ito ay higit pa sa sapat para sa aming mga pangangailangan. Ikokonekta namin ang display sa Raspberry Pi sa pamamagitan ng HDMI.

Plano rin naming mag-broadcast ng video mula sa GoPro sa pamamagitan ng isang hiwalay na channel sa radyo, ngunit hindi pa rin alam kung paano ito gagana—maaaring makabuluhang bawasan ng mababang cloud cover ang hanay ng komunikasyon. Sa anumang kaso, pagkatapos naming mahanap ang landed balloon, ipo-post namin ang video mula sa camera, at makikita mo mismo kung anong mga mensahe ang natanggap ng aming "pre-space data center" at kung gaano ito kataas—ang telemetry ay ipapakita sa parehong HTML page, at makikita ang isang fragment ng horizon.

Pagkain

Ang lahat ng kagandahang ito ay papaganahin ng isang 3S4B lithium battery pack—tatlo sa serye at apat na magkatulad. Ang kabuuang kapasidad ay humigit-kumulang 14 Ah sa 12 V. Tinatantya namin na ito ay dapat na sapat, ngunit pagkatapos ng huling pagpupulong, siyempre, susukatin namin ang aktwal na pagkonsumo at magdagdag ng higit pang mga baterya kung kinakailangan.

Idagdag sa lahat ng GPS beacon na ito, na gagamitin namin para hanapin ang landed balloon. At ang hermetic enclosure ay magsisilbing "tahanan" para sa server at iba pang kagamitan.

Anatomy ng isang "Space Data Center". Sky-high server: tumingin sa ilalim ng hood

Poprotektahan nito ang maselang kagamitan mula sa mga pagbabago sa temperatura at presyon. Babawasan din nito ang dosis ng radiation, bagama't hindi ito kaugnay sa aming proyekto; ang server ay hindi lilipad sa stratosphere nang napakatagal, at ang background radiation doon ay hindi kasing taas ng sa ISS.

Bilang karagdagan sa pagpapadala ng mga mensahe sa website ng proyekto, maaari kang lumahok sa isang paligsahan at hulaan ang landing site ng probe. Ang engrandeng premyo ay isang paglalakbay sa Baikonur para sa paglulunsad ng Soyuz-MS-13 manned spacecraft.

Anatomy ng isang "Space Data Center". Sky-high server: tumingin sa ilalim ng hood

Pinagmulan: www.habr.com

Bumili ng maaasahang pagho-host para sa mga site na may proteksyon ng DDoS, mga server ng VPS VDS šŸ”„ Bumili ng maaasahang website hosting na may proteksyon ng DDoS, VPS VDS servers | ProHoster