I Vi nÀmnde att alla Khabra-anvÀndare har en tÀvling med priser att se fram emot i augusti. Det Àr dags att dra bort gardinen av hemlighet. Vi kom pÄ idén att frasen "server i molnet" kan förstÄs bokstavligt. LÄt oss verkligen skicka upp en fungerande server i luften som gÄr att pinga! Till en början verkade idén galen, men efter att ha diskuterat den fram och tillbaka kom vi ÀndÄ pÄ ett sÀtt att skicka servern till fÄglarna. Den episka lanseringen Àger rum i slutet av augusti, men för tillfÀllet arbetar vi med den hÄrdvarumÀssiga delen av projektet. Mer detaljer finns under klippan.
- Servern kommer att baseras pÄ Raspberry Pi 3
Det skulle vara intressant att lyfta en enhetlig server i luften, men dess vikt + vikt av UPS... För allt detta skulle det krÀvas en rejÀl lyftkraft. Och varför, nÀr man kan bygga en ganska bra server baserad pÄ en kompakt Raspberry Pi 3, med berÀkningskraft flera hundra gÄnger större Àn den maskin som Tim Berners-Lee roade sig med 1991.
- Servern kommer att lanseras pÄ en luftballong
Vi hade idéer om att lyfta servern med en heliumsond, men dÄ skulle servern inte kunna pinga lÀnge innan ballongen spricker i den tunna atmosfÀren pÄ hög höjd och hela konstruktionen faller till marken. Vi ville förlÀnga "fönstret" för sÀndningstid till en och en halv timme. SÄ vi bestÀmde oss för att anvÀnda en luftballong. Flygtiden Àr tvÄ timmar. Dessutom, Àven om flygningen inte Àr helt kontrollerad, kan vÄr ingenjör finnas i korgen och snabbt, dÀr och dÄ, "slÄ pÄ och stÀnga av" vid eventuella fel.
- Vi kommer att anvÀnda mobilnÀt som transportnÀtverk
Moderna WiFi-antennor kan nÄ ganska stora avstÄnd, men för detta skulle man behöva bygga ett kommunikationssystem som knappt skulle skilja sig frÄn ursprungliga militÀra radarsystem. Och för 1,5-2 timmars kommunikation har det ingen mening att bygga ett sÄdant system, eftersom mobilkommunikationen mÄste fungera stabilt pÄ ballongens flyghöjd.
Efter att ha formulerat dessa "postulat" slutade projektet att verka orealistiskt och vi började snart arbeta parallellt pÄ alla tre ruttorna.
Först vÀnde vi oss om hjÀlp till killarna frÄn , som har stor erfarenhet av att skjuta upp olika prylar i luften (med efterföljande sökande och rÀddning).
Sedan tog vi fram en Raspberry Pi 3 som lÄg i vÄr admins skrivbordslÄda och började stÀlla in den.

Vi kopplade in kameran:

Och testade den pÄ vÄr "Semen":

Semen Ă€r mycket bekvĂ€m som modell och assistent â han ber inte om mat, blir inte distraherad av telefonen, Ă€r alltid pĂ„ gott humör och har ett brett leende som tĂ€cker hela hjĂ€lmen. Naturligtvis behöver vi inte en sĂ„n rymddrĂ€kt för flygningen, men den skapar rĂ€tt stĂ€mning pĂ„ kontoret.
Projektets schema ser ut som följer:

Powerbanken anvÀnds för marktestning, nÄgot mer pÄlitligt behövs för att starta.
Den mest intressanta hÄrdvaran Àr nog kortet för att hÀmta data frÄn alla sensorer:

Grabbarna frÄn slet lÀnge med olika alternativ, och dÄ gjorde de en egen dator ombord, eftersom pÄlitlighet Àr avgörande; projekts öde beror pÄ telemetry-data. Datorn ombord ansvarar för att ta emot data frÄn alla anslutna sensorer och skickar dem till Raspberry Pi.
Vi startade, stÀllde in, och efter nÄgra veckors programmering och knÀböj lyckades vi fÄ telemetry-data och bilder av Semen med en vidvinkelkamera:

Telemetry-data skickas som en strÀng i följande format:

Sedan omvandlar denna kod strÀngen till en array och visar data pÄ 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 nÄgra data:
- N:2432; â datapakets nummer, ökar alltid
- T:40m39s; â tid sedan flygkontrolleraren slogs pĂ„
- MP.Stage:0; â flygstadiet (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 över havet â bör visas
- MP.VSpeed:0.0; â vertikal hastighet i meter per sekund med medelvĂ€rdesfilter
- MP.AvgVSpeed:0.0; â vertikal hastighet i meter per sekund med glidande medelvĂ€rde
- Baro.Press:1006.49; â tryck enligt barometern i millibar
- Baro.Alt:54; â höjd enligt barometern
- Baro.Temp:36.99; â temperatur pĂ„ sjĂ€lva barometern
- GPS.Coord:N56d43m23s,E37d55m68s; â aktuella koordinater
- GPS.Home:N56d43m23s,E37d55m68s; â koordinater för startpunkten
- GPS.Alt:165; â höjd enligt GPS i meter
- GPS.Dst:10; â avstĂ„nd frĂ„n startpunkten i meter
- DS.Temp:[fc]=34.56; â temperatursensor pĂ„ kortet
Hur ser de utdata som presenteras ut:
Array
(
[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
)
Vad gör man om mobilnÀtet "faller"? För det har vi ett andra kort, dÀr modemet har tvÄ SIM-kort (i en slot i taget):

Det kan automatiskt vÀxla till den sekundÀra kanalen om den primÀra plötsligt slutar svara.
Vad hÀnder om bÄda mobilnÀtverken blir otillgÀngliga?
(Pojken frÄn lÀser inte för att det Àr nÄgon dumhet "Teori om sannolikhet")
I sÄ fall kommer vi att ha en oberoende GPS-tracker som skickar signaler om sin position. Observera att den gör detta inte via mobilnÀtet, vars tillgÀnglighet inte garanteras över stora avstÄnd, utan via satellit.

Ja, GPS-trackern Àr nÄgot större Àn den som implanterades under huden pÄ James Bond. Eftersom vÄr tÀvling beror pÄ koordinaterna av den flygande servern, kommer denna del av de data som tas emot ombord att vara den mest avgörande. Men mer om detta i nÀsta inlÀgg. HÄll ögonen pÄ vÄr blogg!
Vi tror sÄ mycket pÄ framgÄngen av hela projektet att vi Àven har utlyst en tÀvling för dem som vill gissa vart ballongen kommer att landa. Mer information i vÄrt .
KĂ€lla: habr.com
