Bediener in die wolke: maak gereed om te begin

В plasing oor die regatta Ons het genoem dat daar in Augustus 'n kompetisie sal wees met pryse vir alle Habrazhitels. Die tyd het aangebreek om die sluier van geheimhouding weg te skeur. Op een of ander manier het ons die idee gekry dat die frase "bediener in die wolke" letterlik geneem kan word. Kom ons begin eintlik 'n werkende bediener in die lug wat geping kan word! Aanvanklik het die idee mal gelyk, maar nadat ons dit so en dat gedraai het en dit op elke manier bespreek het, het ons uiteindelik 'n manier gekry om die bediener na die voëls te stuur. ’n Epogmakende bekendstelling sal einde Augustus plaasvind, maar vir eers werk ons ​​aan die hardeware-deel van die projek. Besonderhede onder die snit.

Bediener in die wolke: maak gereed om te begin

  1. Die bediener sal gebaseer wees op Raspberry Pi 3

    Dit sal interessant wees om 'n enkel-eenheid bediener in die lug op te lig, maar sy gewig + die gewig van die UPS ... Dit alles sal aansienlike hefkrag vereis. En hoekom, as jy op die basis van 'n kompakte Raspberry Pi 3 'n redelike ordentlike bediener kan ontplooi, met 'n rekenaarkrag 'n paar honderd keer groter as die masjien waarop Tim Berners-Lee in 1991 pret gehad het.

  2. Kom ons lanseer die bediener in 'n lugballon

    Ons het idees gehad om die bediener op 'n heliumsonde op te lig, maar dan sou die bediener nie lank ping nie voordat die ballon op 'n hoë hoogte in 'n yl atmosfeer gebars het en die hele struktuur op die grond sou val. Ek wou die lugtyd "venster" uitbrei na een en 'n half uur. En toe besluit hulle om 'n ballon te gebruik. Vlugtyd is twee uur. Boonop, hoewel die vlug nie heeltemal beheerbaar is nie, is daar dalk ons ​​ingenieur in die mandjie wat, in die geval van 'n wanfunksionering, dit vinnig, op die plek, kan "aan- en afskakel."

  3. Ons sal sellulêre kommunikasie as 'n vervoernetwerk gebruik

    Moderne WiFi-antennas kan taamlik lang afstande "deursteek", maar hiervoor sal dit nodig wees om 'n kommunikasiekompleks te bou wat nie veel minderwaardig is in sy parameters as 'n militêre radarstasie nie. En ter wille van 1,5-2 uur se kommunikasie maak dit geen sin om so 'n stelsel te bou nie, want op die hoogte van die ballon moet sellulêre kommunikasie stabiel werk.

Nadat hierdie "postulate" geformuleer is, het die projek nie meer onuitvoerbaar gelyk nie, en gou het ons in al drie rigtings gelyktydig begin werk.

Eerstens het ons na die ouens van nearspace.ru, wat die hond geëet het terwyl hy allerhande stukke yster in die lug gelanseer het (met daaropvolgende soek-en-redding).

Toe haal ons die Raspberry Pi 3, wat in ons admin se bedkassie gelê het, uit en begin dit opstel.

Bediener in die wolke: maak gereed om te begin
Het die kamera gekoppel:

Bediener in die wolke: maak gereed om te begin
En ons het dit op ons "Semyon" getoets:

Bediener in die wolke: maak gereed om te begin
Semyon is baie gerieflik as model en assistent - hy vra nie vir kos nie, word nie deur die telefoon afgelei nie, is altyd in 'n goeie bui en met 'n breë glimlag van oral oor sy helm. Ons het natuurlik nie so 'n ruimtepak nodig vir die vlug nie, maar dit skep die regte atmosfeer in die kantoor.

Die projek uiteensetting is soos volg:

Bediener in die wolke: maak gereed om te begin
Powerbank word gebruik vir grondtoetsing; iets meer betroubaar is nodig vir bekendstelling.

Miskien is die interessantste stuk hardeware 'n bord vir die ontvangs van data van alle sensors:

Bediener in die wolke: maak gereed om te begin
Ouens van nearspace.ru Ons het lank gesukkel met verskeie analoë, en toe het ons self 'n aanboordrekenaar gemaak, want betroubaarheid is van deurslaggewende belang, die lot van die hele projek hang af van telemetriedata. Die aanboordrekenaar is verantwoordelik vir die ontvangs van data van alle gekoppelde sensors en die oordrag daarvan na die Raspberry Pi.

Ons het dit bekendgestel, gekonfigureer, en na 'n paar weke van programmering en hurk met tamboeryne, het ons daarin geslaag om telemetriedata en 'n foto van Semyon van 'n wyehoekkamera te verkry:

Bediener in die wolke: maak gereed om te begin
Telemetriedata word in een lyn in die volgende vorm versend:

Bediener in die wolke: maak gereed om te begin
Hierdie kode skakel dan die string om na 'n skikking en voer die data uit na die webwerf:

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

Beskrywing van sommige data:

  • N:2432; — datapakkienommer, altyd aan die toeneem
  • T:40m39s; — tyd vanaf die oomblik dat die vlugbeheerder aangeskakel word
  • MP.Stage:0; — vlugfase (0 — op die grond of onder 1 km, 1 — styging, 2 — sweef op hoogte, 3 — daal)
  • MP.Alt:54; — barometriese hoogte in meter vanaf seevlak — dit moet vertoon word
  • MP.VSpeed:0.0; — vertikale spoed in meter per sekonde met mediaan filter
  • MP.AvgVSpeed:0.0; — vertikale spoed in meter per sekonde met gemiddelde filter
  • Baro.Press:1006.49; — barometerdruk in millibar
  • Baro.Alt:54; - hoogte volgens barometer
  • Baro.Temp:36.99; - temperatuur van die barometer self
  • GPS.Coord:N56d43m23s,E37d55m68s; — huidige koördinate
  • GPS.Huis:N56d43m23s,E37d55m68s; — koördinate van die beginpunt
  • GPS.Alt:165; - GPS-hoogte in meter
  • GPS.Dst:10; — afstand vanaf die beginpunt in meter
  • DS.Temp:[fc]=34.56; - temperatuursensor op die bord

Hoe die uitset lyk:

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 
)

Wat om te doen as sellulêre kommunikasie "val"? Vir hierdie geval het ons 'n tweede kaart; twee SIM-kaarte word in die modem geplaas (een gleuf op 'n slag):

Bediener in die wolke: maak gereed om te begin
Dit kan outomaties na 'n spaarkanaal oorskakel as die hoofkanaal skielik ophou reageer.

Wat gebeur as beide sellulêre netwerke onbeskikbaar raak?

Bediener in die wolke: maak gereed om te begin(Seun van uitgawe "Yeralash" nr. 45 Dit is nie verniet dat hy "The Theory of Probability" lees nie)

In hierdie geval sal ons 'n onafhanklike GPS-spoorsnyer hê wat 'n sein oor sy ligging stuur. Neem asseblief kennis dat dit nie deur 'n sellulêre netwerk gedoen word nie, waarvan die beskikbaarheid oor lang afstande nie deur enigiemand gewaarborg word nie, maar deur 'n satelliet.

Bediener in die wolke: maak gereed om te begin
Ja, die GPS-spoorsnyer is ietwat groter as die een wat onder die vel van James Bond ingeplant is. Aangesien ons kompetisie afhang van die koördinate van die vlieënde bediener, sal hierdie deel van die data wat van die bord ontvang word die belangrikste wees. Maar ons sal in die volgende pos hieroor praat. Binnekort, volg ons blog!

Ons glo soveel in die sukses van die hele onderneming dat ons selfs 'n kompetisie aangekondig het vir diegene wat skielik wil raai waar die bal gaan land. Besonderhede in ons nuwe pos.

Bron: will.com

Voeg 'n opmerking