Server i molnen: redo för lansering

В inlägg om regattan Vi nämnde att det i augusti kommer att vara en tävling med priser för alla Habrazhitels. Det är dags att riva bort sekretessens slöja. På något sätt fick vi idén att frasen "server i molnen" kan tas bokstavligt. Låt oss faktiskt lansera en fungerande server till himlen som kan pingas! Först såg idén galen ut, men efter att ha vridit den åt det här och det och diskuterat det på alla sätt, kom vi till slut på ett sätt att skicka servern mot fåglarna. En epokgörande lansering kommer att äga rum i slutet av augusti, men för närvarande arbetar vi med hårdvarudelen av projektet. Detaljer under snittet.

Server i molnen: redo för lansering

  1. Servern kommer att baseras på Raspberry Pi 3

    Det skulle vara intressant att lyfta en server med en enhet i luften, men dess vikt + vikten av UPS:en... Allt detta skulle kräva avsevärd lyftkraft. Och varför, om du på basis av en kompakt Raspberry Pi 3 kan distribuera en ganska anständig server, med en datorkraft flera hundra gånger större än den maskin som Tim Berners-Lee hade roligt på 1991.

  2. Låt oss skjuta upp servern i en luftballong

    Vi hade idéer om att lyfta servern på en heliumsond, men sedan skulle servern inte pinga länge innan ballongen brast på hög höjd i en försåld atmosfär och hela strukturen skulle falla till marken. Jag ville utöka "sändningsfönstret" till en och en halv timme. Och så bestämde de sig för att använda en ballong. Flygtiden är två timmar. Dessutom, även om flygningen inte är helt kontrollerbar, kan det finnas vår ingenjör i korgen, som i händelse av ett fel snabbt kan, direkt på plats, "slå på och av den."

  3. Vi kommer att använda mobilkommunikation som ett transportnät

    Moderna WiFi-antenner kan "genomtränga" ganska långa avstånd, men för detta skulle det vara nödvändigt att bygga ett kommunikationskomplex som inte är mycket sämre i sina parametrar än en militär radarstation. Och för 1,5-2 timmars kommunikation är det ingen mening att bygga ett sådant system, för på ballongens höjd måste cellulär kommunikation fungera stabilt.

Efter att ha formulerat dessa "postulat" verkade projektet inte längre ogenomförbart, och snart började vi arbeta åt alla tre riktningarna samtidigt.

Först och främst vände vi oss till killarna från nearspace.ru, som åt upp hunden medan han skickade alla möjliga järnbitar i luften (med efterföljande sök och räddning).

Sedan tog vi fram Raspberry Pi 3, som låg i vår administratörs nattduksbord, och började sätta upp den.

Server i molnen: redo för lansering
Anslut kameran:

Server i molnen: redo för lansering
Och vi testade det på vår "Semyon":

Server i molnen: redo för lansering
Semyon är väldigt bekväm som modell och assistent - han ber inte om mat, distraheras inte av telefonen, är alltid på gott humör och med ett brett leende från hela hjälmen. Naturligtvis behöver vi inte en sådan rymddräkt för flygresan, men den skapar rätt atmosfär på kontoret.

Projektöversikten är som följer:

Server i molnen: redo för lansering
Powerbank används för marktestning, något mer pålitligt behövs för lanseringen.

Den kanske mest intressanta hårdvaran är ett kort för att ta emot data från alla sensorer:

Server i molnen: redo för lansering
Killar från nearspace.ru Vi kämpade länge med olika analoger, och sedan gjorde vi en omborddator själva, eftersom tillförlitlighet är av avgörande betydelse, hela projektets öde beror på telemetridata. Datorn ombord ansvarar för att ta emot data från alla anslutna sensorer och överföra dem till Raspberry Pi.

Vi lanserade den, konfigurerade den och efter ett par veckors programmering och knäböj med tamburiner lyckades vi få tag i telemetridata och ett foto av Semyon från en vidvinkelkamera:

Server i molnen: redo för lansering
Telemetridata överförs på en rad i följande form:

Server i molnen: redo för lansering
Denna kod konverterar sedan strängen till en array och matar ut data till webbplatsen:

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

Beskrivning av vissa data:

  • N:2432; — Datapaketnummer, ständigt ökande
  • T:40m39s; — tid från det ögonblick som flygledaren slogs på
  • MP.Stage:0; — flygsteg (0 — på marken eller under 1 km, 1 — uppstigning, 2 — svävande på höjd, 3 — nedstigning)
  • MP.Alt:54; — barometrisk höjd i meter från havsnivån — den ska visas
  • MP.VSpeed:0.0; — Vertikal hastighet i meter per sekund med medianfilter
  • MP.AvgVSpeed:0.0; — Vertikal hastighet i meter per sekund med medelvärdesfilter
  • Baro.Press:1006.49; — Barometertryck i millibar
  • Baro.Alt:54; - höjd enligt barometer
  • Baro.Temp:36.99; - temperatur på själva barometern
  • GPS.Coord:N56d43m23s,E37d55m68s; — aktuella koordinater
  • GPS.Hem:N56d43m23s,E37d55m68s; — koordinater för startpunkten
  • GPS.Alt:165; — GPS-höjd i meter
  • GPS.Dst:10; — avstånd från startpunkten i meter
  • DS.Temp:[fc]=34.56; - temperaturgivare på kortet

Hur utgången ser ut:

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 
)

Vad ska man göra om mobilkommunikation "faller"? För det här fallet har vi ett andra kort; två SIM-kort sätts in i modemet (en kortplats i taget):

Server i molnen: redo för lansering
Den kan automatiskt byta till en reservkanal om huvudkanalen plötsligt slutar svara.

Vad händer om båda mobilnäten blir otillgängliga?

Server i molnen: redo för lansering(Pojke från nummer "Yeralash" nr 45 Det är inte för inte som han läser "The Theory of Probability")

I det här fallet kommer vi att ha en oberoende GPS-spårare som skickar en signal om sin plats. Observera att det inte gör detta via ett mobilnät, vars tillgänglighet över långa avstånd inte garanteras av någon, utan via en satellit.

Server i molnen: redo för lansering
Ja, GPS-spåraren är något större än den som implanterades under huden på James Bond. Eftersom vår tävling beror på koordinaterna för den flygande servern kommer denna del av data som tas emot från styrelsen att vara den viktigaste. Men vi kommer att prata om detta i nästa inlägg. Kommer snart, följ vår blogg!

Vi tror på framgången för hela företaget så mycket att vi till och med utlyste en tävling för dem som plötsligt vill gissa var bollen kommer att landa. Detaljer i vår nytt brev.

Källa: will.com

Lägg en kommentar