Në Diskutuar kemi se në gusht të gjithë përdoruesit e Habr do të kenë një konkurs me çmime. Ka ardhur koha të heqim mbulesën e sekreteve. Na erdhi një mendim, se fraza «server në re» mund të kuptohet në kuptimin e saj literal. Le të nisemi për një server funksional, që mund të pingohet, në qiell! Në fillim, ideja dukej e çmendur, por pasi e diskutuam nga të gjitha anët, arritëm të gjejmë një mënyrë për ta dërguar serverin përballë zogjve. Një lansim epokal do të ndodhë në fund të gushtit, ndërkohë po e përgatitim pjesën harduerike të projektit. Detajet më poshtë.
- Serveri do të bazohet në Raspberry Pi 3
Do të ishte interesante të ngrihej në ajër një server me një njësi, megjithatë peshat e saj + UPS... Do të ishte e nevojshme një forcë e madhe ngritëse për të gjitha këto. Pse, kur me bazën e kompaktit Raspberry Pi 3 mund të zhvillohet një server mjaft i denjë, me kapacitet llogaritës disa qindra herë më të madh se makina në të cilën argëtohej Tim Berners-Lee në vitin 1991.
- Serveri do të nisë nga një balonë
Kemi patëm ide për të ngritur një server në një balon helium, por pastaj serveri do të pingonte për një kohë të shkurtër, përpara se kula të shpërthejë në një lartësi të madhe në atmosferën e holluar dhe tërë konstrukti të bjerë në tokë. Dëshironim të zgjeronim "dritaren" e kohës eterike në një orë e gjysmë. Kështu vendosëm të përdorim një balon. Kohëzgjatja e fluturimit është dy orë. Për më tepër, fluturimi, ndonëse nuk është plotësisht i menaxhueshëm, megjithatë në kosh mund të jetë inxhinieri ynë, i cili do të mund në rast defekti të aktivizojë ose çaktivizojë menjëherë, direkt në vend.
- Si rrjet transporti do të përdorim lidhjen celulare.
Antennat moderne WiFi mund të "kalojnë" distanca mjaft të mëdha, megjithatë për këtë do duhej të ndërtosh një kompleks lidhjeje, të cilin e kanë paksa në cilësi një stacion radar ushtarak. Dhe për 1.5-2 orë lidhjeje nuk ka kuptim të ndërtohet një sistem të tillë, pasi në lartësinë e fluturimit të balonës, lidhja celulare duhet të funksionojë në mënyrë të qëndrueshme.
Pasi formulova këto "postula", projekti nuk duket më i pamundur, dhe së shpejti filluam punën në të tre drejtimet menjëherë.
Së pari, kërkuam ndihmë nga djemtë e , të cilët kanë përvojë me lëshimin në ajër të pajisjeve të ndryshme (me kërkimin dhe shpëtimin e mëpasshëm).
Më pas, gjetëm një Raspberry Pi 3, që ishte lënë në tavolinën e administratorit tonë, dhe filluam ta konfiguroni.

Kopjuam kamerën:

Dhe e testuam në "Semyon":

Semyon Ă«shtĂ« shumĂ« i pĂ«rshtatshĂ«m si model dhe ndihmĂ«s â nuk kĂ«rkon ushqim, nuk shpĂ«rqendrohet nga telefoni, gjithmonĂ« Ă«shtĂ« nĂ« humor tĂ« shkĂ«lqyer dhe me njĂ« buzĂ«qeshje tĂ« gjerĂ« deri nĂ« helmetĂ«. Sigurisht, njĂ« kostum i tillĂ« nuk do tĂ« na nevojitet pĂ«r fluturim, por krijon njĂ« atmosferĂ« tĂ« shumĂ«llojshme nĂ« zyrĂ«.
Skema e projektit po formohet si më poshtë:

Powerbank përdoret për testimin në tokë; për lëshim nevojitet diçka më të sigurt.
Pjesa ndoshta më interesante është ansambli për marrjen e të dhënave nga të gjithë sensorët:

Djemtë nga katërcarë për një kohë të gjatë me analogë të ndryshëm, dhe më pas krijuan vetë një kompjuter të bordit, sepse besueshmëria është një faktor vendimtar; fati i tërë projektit varet nga të dhënat e telemetrisë. Kompjuteri i bordit është përgjegjës për marrjen e të dhënave nga të gjithë sensorët e lidhur dhe i dërgon ato në Raspberry Pi.
E nxorrĂ«m, e konfigurÄm, dhe pas disa javĂ«sh programimi e pĂ«rpjekjesh arritĂ«m tĂ« merrnim tĂ« dhĂ«nat e telemetrisĂ« dhe foton e SemenĂ«s me kamerĂ«n me kĂ«nd tĂ« gjerĂ«:

Të dhënat e telemetrisë dërgohen si një rresht në këtë formë:

Më pas ky kod e shndërron rreshtin në një varg dhe e shfaq të dhënën në faqe:
$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);Përshkrimi i disa të dhënave:
- N:2432; â numri i paketĂ«s sĂ« tĂ« dhĂ«nave, gjithmonĂ« rritet
- T:40m39s; â koha qĂ« nga aktivizimi i kontrolluesit tĂ« fluturimit
- MP.Stage:0; â faza e fluturimit (0 â nĂ« tokĂ« ose nĂ«n 1km, 1 â ngjitje, 2 â qĂ«ndrim nĂ« lartĂ«si, 3 â zbritje)
- MP.Alt:54; â lartĂ«sia barometrike nĂ« metra mbi nivelin e detit â duhet tĂ« shfaqet
- MP.VSpeed:0.0; â shpejtĂ«sia vertikale nĂ« metra pĂ«r sekondĂ« me filtrin median
- MP.AvgVSpeed:0.0; â shpejtĂ«sia vertikale nĂ« metra pĂ«r sekondĂ« me filtrin e mesatares
- Baro.Press:1006.49; â presioni sipas barometrit nĂ« miliBar
- Baro.Alt:54; â lartĂ«sia sipas barometrit
- Baro.Temp:36.99; â temperatura e barometrit
- GPS.Coord:N56d43m23s,E37d55m68s; â koordinatat aktuale
- GPS.Home:N56d43m23s,E37d55m68s; â koordinatat e pikĂ«s fillestare
- GPS.Alt:165; â lartĂ«sia sipas GPS nĂ« metra
- GPS.Dst:10; â distanca nga pika fillestare nĂ« metra
- DS.Temp:[fc]=34.56; â sensori i temperaturĂ«s nĂ« bord
Si duket të dhënat e nxjerrura:
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
)
Dhe çfarë ndodh nëse telefoni celular "bllokohet"? Për këtë rast, kemi një kartelë të dytë, në modem vendosen dy SIM-e (në një slot njëra pas tjetrës):

Ai është në gjendje të kalojë automatikisht në kanalin rezervë, nëse ai kryesor papritur nuk përgjigjet.
Dhe çfarë ndodh nëse të dy rrjetet celulare bëhen të paqasshme?
(Djali nga nuk e lexon "Teorinë e probabiliteteve" pa arsye)
Për këtë rast, ne do të kemi një GPS të pavarur, që do të dërgojë sinjale për pozicionin e tij. Shënoni se ai nuk e bën këtë përmes rrjetit celular, disponueshmëria e të cilit në distanca të mëdha nuk është e garantuar nga askush, por përmes satelitit.

Po, GPS-i është pak më i madh se ai, i cili ishte implantuar nën lëkurë të James Bond. Duke qenë se konkursi ynë varet nga koordinatat e serverit që fluturon, kjo pjesë e të dhënave që marrim nga bordi do të jetë më e rëndësishmja. Por për këtë do të flasim në postimin e ardhshëm. Shpejt, ndiqni blogun tonë!
Ne besojmë në suksesin e kësaj nisme në mënyrë aq të madhe, saqë madje shpallëm një konkurs për ata që ndoshta dëshirojnë të parashikojnë vendin e uljes së balonës. Detajet në postimin tonë .
Burimi: habr.com
