Διακομιστής στα σύννεφα: ετοιμάζεται να ξεκινήσει

В ανάρτηση για τη ρεγκάτα Αναφέραμε ότι τον Αύγουστο θα γίνει διαγωνισμός με έπαθλα για όλους τους Habrazhitel. Ήρθε η ώρα να σκίσουμε το πέπλο της μυστικότητας. Κάπως καταλάβαμε ότι η φράση «διακομιστής στα σύννεφα» μπορεί να ληφθεί κυριολεκτικά. Ας ξεκινήσουμε πραγματικά έναν λειτουργικό διακομιστή στον ουρανό που μπορεί να γίνει ping! Στην αρχή η ιδέα φαινόταν τρελή, αλλά αφού τη στρίψαμε έτσι κι εκεί, συζητώντας τη με κάθε τρόπο, τελικά καταλήξαμε σε έναν τρόπο να στείλουμε τον διακομιστή προς τα πουλιά. Ένα λανσάρισμα εποχής θα πραγματοποιηθεί στα τέλη Αυγούστου, αλλά προς το παρόν εργαζόμαστε στο κομμάτι του υλικού του έργου. Λεπτομέρειες κάτω από το κόψιμο.

Διακομιστής στα σύννεφα: ετοιμάζεται να ξεκινήσει

  1. Ο διακομιστής θα βασίζεται στο Raspberry Pi 3

    Θα ήταν ενδιαφέρον να σηκώσετε έναν διακομιστή μιας μονάδας στον αέρα, αλλά το βάρος του + το βάρος του UPS... Όλα αυτά θα απαιτούσαν σημαντική ανυψωτική δύναμη. Και γιατί, εάν με βάση ένα συμπαγές Raspberry Pi 3 μπορείτε να αναπτύξετε έναν αρκετά αξιοπρεπή διακομιστή, με υπολογιστική ισχύ αρκετές εκατοντάδες φορές μεγαλύτερη από το μηχάνημα στο οποίο διασκέδασε ο Tim Berners-Lee το 1991.

  2. Ας εκκινήσουμε τον διακομιστή σε ένα αερόστατο

    Είχαμε ιδέες να σηκώσουμε τον διακομιστή σε έναν ανιχνευτή ηλίου, αλλά στη συνέχεια ο διακομιστής δεν θα έκανε ping για πολύ πριν το μπαλόνι σκάσει σε μεγάλο υψόμετρο σε μια σπάνια ατμόσφαιρα και ολόκληρη η δομή πέσει στο έδαφος. Ήθελα να επεκτείνω το «παράθυρο» του χρόνου ομιλίας σε μιάμιση ώρα. Και μετά αποφάσισαν να χρησιμοποιήσουν ένα μπαλόνι. Η διάρκεια της πτήσης είναι δύο ώρες. Επιπλέον, αν και η πτήση δεν είναι πλήρως ελεγχόμενη, μπορεί να υπάρχει ο μηχανικός μας στο καλάθι, ο οποίος, σε περίπτωση δυσλειτουργίας, μπορεί γρήγορα, επιτόπου, να την «ανοίξει και να την απενεργοποιήσει».

  3. Θα χρησιμοποιήσουμε τις κυψελοειδείς επικοινωνίες ως δίκτυο μεταφορών

    Οι σύγχρονες κεραίες WiFi μπορούν να «τρυπήσουν» αρκετά μεγάλες αποστάσεις, αλλά για αυτό θα ήταν απαραίτητο να κατασκευαστεί ένα συγκρότημα επικοινωνιών που δεν είναι πολύ κατώτερο στις παραμέτρους του από έναν στρατιωτικό σταθμό ραντάρ. Και για χάρη 1,5-2 ωρών επικοινωνίας, δεν έχει νόημα η κατασκευή ενός τέτοιου συστήματος, γιατί στο υψόμετρο του μπαλονιού, οι κυτταρικές επικοινωνίες πρέπει να λειτουργούν σταθερά.

Μετά τη διατύπωση αυτών των «αξίων», το έργο δεν φαινόταν πλέον ανέφικτο και σύντομα αρχίσαμε να εργαζόμαστε και στις τρεις κατευθύνσεις ταυτόχρονα.

Πρώτα απ 'όλα, στραφήκαμε στα παιδιά από nearspace.ru, ο οποίος έφαγε το σκυλί ενώ εκτόξευε κάθε λογής κομμάτια σιδήρου στον αέρα (με επακόλουθη έρευνα και διάσωση).

Στη συνέχεια, βγάλαμε το Raspberry Pi 3, που βρισκόταν στο κομοδίνο του διαχειριστή μας, και αρχίσαμε να το στήνουμε.

Διακομιστής στα σύννεφα: ετοιμάζεται να ξεκινήσει
Συνδέθηκε η κάμερα:

Διακομιστής στα σύννεφα: ετοιμάζεται να ξεκινήσει
Και το δοκιμάσαμε στο "Semyon" μας:

Διακομιστής στα σύννεφα: ετοιμάζεται να ξεκινήσει
Ο Semyon είναι πολύ βολικός ως μοντέλο και βοηθός - δεν ζητάει φαγητό, δεν αποσπάται από το τηλέφωνο, έχει πάντα υπέροχη διάθεση και με ένα πλατύ χαμόγελο από όλο το κράνος του. Φυσικά, δεν χρειαζόμαστε μια τέτοια διαστημική στολή για την πτήση, αλλά δημιουργεί τη σωστή ατμόσφαιρα στο γραφείο.

Το περίγραμμα του έργου έχει ως εξής:

Διακομιστής στα σύννεφα: ετοιμάζεται να ξεκινήσει
Το Powerbank χρησιμοποιείται για δοκιμές εδάφους· χρειάζεται κάτι πιο αξιόπιστο για την εκτόξευση.

Ίσως το πιο ενδιαφέρον κομμάτι υλικού είναι ένας πίνακας για τη λήψη δεδομένων από όλους τους αισθητήρες:

Διακομιστής στα σύννεφα: ετοιμάζεται να ξεκινήσει
Παιδιά από nearspace.ru Αγωνιστήκαμε για μεγάλο χρονικό διάστημα με διάφορα ανάλογα και στη συνέχεια φτιάξαμε μόνοι μας έναν ενσωματωμένο υπολογιστή, επειδή η αξιοπιστία είναι αποφασιστικής σημασίας, η μοίρα ολόκληρου του έργου εξαρτάται από τα δεδομένα τηλεμετρίας. Ο ενσωματωμένος υπολογιστής είναι υπεύθυνος για τη λήψη δεδομένων από όλους τους συνδεδεμένους αισθητήρες και τη μετάδοσή τους στο Raspberry Pi.

Το ξεκινήσαμε, το ρυθμίσαμε και μετά από μερικές εβδομάδες προγραμματισμού και καταλήψεων με ντέφι, καταφέραμε να λάβουμε δεδομένα τηλεμετρίας και μια φωτογραφία του Semyon από μια ευρυγώνια κάμερα:

Διακομιστής στα σύννεφα: ετοιμάζεται να ξεκινήσει
Τα δεδομένα τηλεμετρίας μεταδίδονται σε μία γραμμή με την ακόλουθη μορφή:

Διακομιστής στα σύννεφα: ετοιμάζεται να ξεκινήσει
Αυτός ο κώδικας μετατρέπει στη συνέχεια τη συμβολοσειρά σε πίνακα και εξάγει τα δεδομένα στον ιστότοπο:

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

Περιγραφή ορισμένων δεδομένων:

  • Ν:2432; — αριθμός πακέτων δεδομένων, συνεχώς αυξανόμενος
  • T:40m39s; — χρόνος από τη στιγμή που ενεργοποιήθηκε ο ελεγκτής πτήσης
  • MP.Stage:0; — στάδιο πτήσης (0 — στο έδαφος ή κάτω από 1 km, 1 — ανάβαση, 2 — αιώρηση σε ύψος, 3 — κατάβαση)
  • MP.Alt:54; — βαρομετρικό υψόμετρο σε μέτρα από το επίπεδο της θάλασσας — θα πρέπει να εμφανίζεται
  • MP.VSpeed:0.0; — κατακόρυφη ταχύτητα σε μέτρα ανά δευτερόλεπτο με διάμεσο φίλτρο
  • MP.AvgVSpeed:0.0; — κατακόρυφη ταχύτητα σε μέτρα ανά δευτερόλεπτο με φίλτρο μέσου όρου
  • Baro.Press:1006.49; — πίεση βαρόμετρου σε millibar
  • Baro.Alt:54; - υψόμετρο σύμφωνα με το βαρόμετρο
  • Baro.Temp:36.99; - θερμοκρασία του ίδιου του βαρόμετρου
  • GPS.Coord:N56d43m23s,E37d55m68s; — τρέχουσες συντεταγμένες
  • GPS.Home:N56d43m23s,E37d55m68s; — συντεταγμένες του σημείου εκκίνησης
  • GPS.Alt:165; — Υψόμετρο GPS σε μέτρα
  • GPS.Dst:10; — απόσταση από το σημείο εκκίνησης σε μέτρα
  • DS.Temp:[fc]=34.56; - αισθητήρας θερμοκρασίας στην πλακέτα

Πώς φαίνεται η έξοδος:

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 
)

Τι να κάνετε αν «πέσει» η κινητή επικοινωνία; Για αυτήν την περίπτωση, έχουμε μια δεύτερη κάρτα· δύο κάρτες SIM εισάγονται στο μόντεμ (μία υποδοχή τη φορά):

Διακομιστής στα σύννεφα: ετοιμάζεται να ξεκινήσει
Μπορεί να μεταβεί αυτόματα σε ένα εφεδρικό κανάλι εάν το κύριο σταματήσει ξαφνικά να ανταποκρίνεται.

Τι συμβαίνει εάν και τα δύο δίκτυα κινητής τηλεφωνίας δεν είναι διαθέσιμα;

Διακομιστής στα σύννεφα: ετοιμάζεται να ξεκινήσει(Αγόρι από τεύχος «Yeralash» Νο 45 Δεν είναι για τίποτα που διαβάζει τη «Θεωρία των πιθανοτήτων»)

Σε αυτή την περίπτωση, θα έχουμε έναν ανεξάρτητο ιχνηλάτη GPS που στέλνει ένα σήμα σχετικά με τη θέση του. Λάβετε υπόψη ότι αυτό δεν γίνεται μέσω ενός κυψελοειδούς δικτύου, η διαθεσιμότητα του οποίου σε μεγάλες αποστάσεις δεν είναι εγγυημένη από κανέναν, αλλά μέσω ενός δορυφόρου.

Διακομιστής στα σύννεφα: ετοιμάζεται να ξεκινήσει
Ναι, ο ιχνηλάτης GPS είναι κάπως μεγαλύτερος από αυτόν που εμφυτεύτηκε κάτω από το δέρμα του Τζέιμς Μποντ. Δεδομένου ότι ο ανταγωνισμός μας εξαρτάται από τις συντεταγμένες του ιπτάμενου διακομιστή, αυτό το μέρος των δεδομένων που λαμβάνονται από τον πίνακα θα είναι το πιο σημαντικό. Αλλά για αυτό θα μιλήσουμε σε επόμενη ανάρτηση. Σύντομα, ακολουθήστε το blog μας!

Πιστεύουμε στην επιτυχία ολόκληρης της επιχείρησης τόσο πολύ που ανακοινώσαμε ακόμη και διαγωνισμό για όσους θέλουν ξαφνικά να μαντέψουν πού θα προσγειωθεί η μπάλα. Λεπτομέρειες στο δικό μας νέα ανάρτηση.

Πηγή: www.habr.com

Προσθέστε ένα σχόλιο