MQTT (Message Queuing Telemetry Transport), με ανθρώπινους όρους, σημαίνει Message Queuing Telemetry Transport. Πριν από μερικά χρόνια, όταν η πλευρά των υπολογιστών της επικράτησης πολλών μηχανικών απλά δεν άκουγε έναν κυκλικό όρο, αλλά με τη σταδιακή ανάπτυξη της τεχνολογίας Internet of Things (IoT), αυτό το πρωτόκολλο εμφανίζεται όλο και πιο συχνά στα μάτια των μεγάλων μηχανικών. Αυτό έχει προκαλέσει πολλούς μηχανικούς να γνωρίζουν μόνο το όνομα αλλά όχι το νόημα, και πολλοί άνθρωποι σκέφτηκαν ακόμη και ότι αυτό είναι ένα είδος πρωτοκόλλου που αναπτύχθηκε με την ανάπτυξη του IoT. Στην πραγματικότητα, το πρωτόκολλο MQTT εφευρέθηκε για πρώτη φορά πριν από περισσότερα από 20 χρόνια και το 1999 ο Andy Stanford Clark της IBM και ο Alan Nippe της Cirrus Link έγραψαν την πρώτη έκδοση του πρωτοκόλλου. Έκτοτε, το πρωτόκολλο έχει τυποποιηθεί διεθνώς ως πρωτόκολλο ανταλλαγής μηνυμάτων βάσει δημοσίευσης/συνδρομής σύμφωνα με το πρότυπο ISO (ISO/IEC PRF 20922.) Η IBM υπέβαλε την προδιαγραφή έκδοσης MQTT 3.1 στον Οργανισμό Structured Information Standards Facilitation Organization το 2013, μαζί με έναν χάρτη για να διασφαλίσει ότι το πρωτόκολλο θα μπορούσε να γίνει μόνο ένα μικρό αριθμό αλλαγών. έχει χρησιμοποιηθεί σε μια σειρά από κόγχες από τότε. Μόλις οριστικοποιήθηκε η τεχνική υποδομή του IoT, αυτό το αρχαίο πρωτόκολλο άρχισε να έχει την πρώτη του άνοιξη.
Επίπεδα μεταφοράς και εφαρμογής του Δικτύου
Όπως όλοι γνωρίζουμε, η ταχεία ανάπτυξη του Διαδικτύου των πραγμάτων μέχρι στιγμής δεν μπορεί να εγκαταλείψει την υποδομή του δικτύου επικοινωνίας, μπορείτε πλέον να ελέγχετε οποιαδήποτε γωνιά του κόσμου στο σπίτι ενός διακόπτη φωτισμού δωματίου ή να κάνετε βιομηχανικό έλεγχο, μπορείτε επίσης να ελέγξετε από απόσταση την κίνηση ενός ρομπότ, η ωριμότητα αυτής της τεχνολογίας βασίζεται στην επικοινωνία δικτύου ως βάση. Η κύρια τεχνολογία της τρέχουσας τεχνολογίας δικτύου είναι το μοντέλο OSI επτά-επιπέδων, φυσικά, η πραγματική εφαρμογή χρησιμοποιεί στην πραγματικότητα το μοντέλο δικτύου τεσσάρων- επιπέδων TCP/IP.
Το μοντέλο δικτύου τεσσάρων{0} επιπέδων TCP / IP του τρίτου επιπέδου μεταφοράς είναι το διάσημο πρωτόκολλο TCP / IP, αυτό το επίπεδο του κύριου σκοπού του πρωτοκόλλου χρησιμοποιείται για την αποστολή ενός υπολογιστή στη μετάδοση δεδομένων επικοινωνίας δικτύου στην καθορισμένη διεύθυνση IP του άλλου μηχανήματος παραπάνω, για παράδειγμα, μια διεύθυνση IP "192.168.137.19 Για παράδειγμα, εάν ένα μηχάνημα θέλει διεύθυνση IP σε "19.71". στείλτε ένα δυαδικό πακέτο 16 byte σε ένα μηχάνημα με διεύθυνση IP "192.168.137.10", τότε μπορείτε να χρησιμοποιήσετε το πρωτόκολλο TCP/IP για τη μετάδοσή του. Αντίθετα, όταν μεταφέρουμε δεδομένα χρησιμοποιώντας TCP, χρησιμοποιούμε συνήθως υποδοχές.
Αλλά όταν η διεύθυνση IP του μηχανήματος "192.168.137.19" για αποστολή δεδομένων στο μηχάνημα "192.168.137.10", αυτό το πακέτο πακέτων TCP μέσα στα δεδομένα είναι στην πραγματικότητα για λογαριασμό του τι σημαίνει το τέλος λήψης της διεύθυνσης IP του τέλους λήψης της συσκευής "192.168.168.137". στρώμα μεταφοράς πάνω από το στρώμα του πρωτόκολλα για επίλυση, που είναι τα πρωτόκολλα του επιπέδου εφαρμογής. Φυσικά, εάν τα πρωτόκολλά σας δεν θέλουν να δώσουν στο συνηθισμένο δίκτυο υπολογιστών την ανάλυση, μπορείτε επίσης να πάτε να αναπτύξετε μερικά από τα δικά τους πρωτόκολλα επιπέδου εφαρμογής, δεν έχει σημασία, ο σκοπός του επιπέδου μεταφοράς είναι απλώς να μεταβιβάσει τα δεδομένα στο μηχάνημα προορισμού που βρίσκεται πάνω του.
Η καθημερινή μας εργασία, η ψυχαγωγία συναντά συχνά μια ποικιλία πρωτοκόλλων επιπέδου εφαρμογής, όπως όταν ανοίγετε μια ιστοσελίδα, η εικόνα εμφανίζεται σε αυτήν τη θέση, το κουμπί που δείχνει προς τα κάτω είναι να επιτύχουμε ποια λειτουργία, αυτή είναι με το Πρωτόκολλο Μεταφοράς HyperText HTML (Αγγλικά: HyperTextTransferProtocol, συντομογραφία: HTTP). Αυτό διασφαλίζει ότι όταν μια σελίδα στον ιστότοπό σας ζητείται από οποιαδήποτε συσκευή, αυτή η συσκευή μπορεί να την εμφανίσει σωστά. Εκτός από το HTTP, υπάρχουν πολλά άλλα πρωτόκολλα επιπέδου εφαρμογών όπως DNS, FTP κ.λπ., και το πρωτόκολλο MQTT, που είναι ο πρωταγωνιστής μας σήμερα, είναι ένα από αυτά.
Γιατί το IoT ευνοεί το MQTT
Με όλα τα υπέροχα πρωτόκολλα επιπέδου εφαρμογών που είναι διαθέσιμα για τις υπάρχουσες εφαρμογές μας, γιατί το MQTT λάμπει στον χώρο του IoT. Η επιλογή του πρωτοκόλλου MQTT δεν είναι αβάσιμη. Το MQTT είναι ένα ελαφρύ, ευέλικτο πρωτόκολλο δικτύωσης που προσπαθεί να επιτύχει τη σωστή ισορροπία για τους προγραμματιστές IoT:
Αυτό το ελαφρύ πρωτόκολλο μπορεί να εφαρμοστεί σε εξαιρετικά περιορισμένο υλικό συσκευών και σε δίκτυα περιορισμένου εύρους ζώνης/υψηλού λανθάνοντος χρόνου.
Η ευελιξία του καθιστά δυνατή την υποστήριξη διαφορετικών σεναρίων εφαρμογών για συσκευές και υπηρεσίες IoT.
Οι περισσότεροι προγραμματιστές είναι ήδη εξοικειωμένοι με τις υπηρεσίες web HTTP. Γιατί λοιπόν να μην αφήσουμε τις συσκευές IoT να συνδεθούν με υπηρεσίες Ιστού; Οι συσκευές μπορούν να στέλνουν τα δεδομένα τους με τη μορφή αιτημάτων HTTP και να λαμβάνουν ενημερώσεις από το σύστημα με τη μορφή απαντήσεων HTTP. Αυτό το μοντέλο αιτήματος και απάντησης έχει ορισμένους σοβαρούς περιορισμούς:
Το HTTP είναι ένα πρωτόκολλο συγχρονισμού. Ο πελάτης πρέπει να περιμένει να απαντήσει ο διακομιστής. Τα προγράμματα περιήγησης ιστού έχουν αυτήν την απαίτηση, αλλά με κόστος επεκτασιμότητας. Στον χώρο του IoT, ένας μεγάλος αριθμός συσκευών και ένα δίκτυο που είναι πιθανό να είναι αναξιόπιστο ή να έχει υψηλή καθυστέρηση καθιστούν τη σύγχρονη επικοινωνία προβληματική. Τα πρωτόκολλα ασύγχρονης ανταλλαγής μηνυμάτων είναι καλύτερα κατάλληλα για εφαρμογές IoT. Οι αισθητήρες στέλνουν μετρήσεις και αφήνουν το δίκτυο να καθορίσει την καλύτερη διαδρομή και χρόνο για να τις παραδώσει σε συσκευές και υπηρεσίες-στόχους.
Το HTTP είναι μονής κατεύθυνσης. Ο πελάτης πρέπει να ξεκινήσει τη σύνδεση. Στις εφαρμογές IoT, η συσκευή ή ο αισθητήρας είναι συνήθως ο πελάτης, πράγμα που σημαίνει ότι δεν μπορούν να λάβουν παθητικά εντολές από το δίκτυο.
Το HTTP είναι ένα-προς-πρωτόκολλο. Ο πελάτης κάνει ένα αίτημα και ο διακομιστής απαντά. Η παράδοση μηνυμάτων σε όλες τις συσκευές στο δίκτυο είναι όχι μόνο δύσκολη αλλά και δαπανηρή, κάτι που είναι μια συνηθισμένη περίπτωση χρήσης σε εφαρμογές IoT.
Το HTTP είναι ένα βαρύ πρωτόκολλο με πολλές κεφαλίδες και κανόνες. Δεν είναι κατάλληλο για περιορισμένα δίκτυα.
Για αυτούς τους λόγους, τα περισσότερα συστήματα υψηλής απόδοσης-με δυνατότητα κλιμάκωσης χρησιμοποιούν ασύγχρονους διαύλους μηνυμάτων για εσωτερική ανταλλαγή δεδομένων αντί για υπηρεσίες Ιστού.
Το μοντέλο εγγραφής/δημοσίευσης
Είναι ενδιαφέρον ότι αυτός ο διακομιστής πρωτοκόλλου MQTT είναι στην πραγματικότητα πολύ πιο απλός σχεδιασμός από έναν διακομιστή web, καθώς επιδιώκει να είναι μια αποτελεσματική υπηρεσία. ο μηχανισμός με τον οποίο το MQTT στέλνει και λαμβάνει κυρίως μηνύματα είναι κάπως παρόμοιος με τη σχέση μεταξύ του δημόσιου ιστότοπού μας και εσάς, των αναγνωστών.
Στον πραγματικό κόσμο, εγώ και εσείς είμαστε σαν να έχουμε μια συσκευή MQTT συνδεδεμένη σε έναν ενοποιημένο διακομιστή, εγγράφεστε σε εμάς από ενδιαφέρον ή κάποιου είδους στοργή για τον δημόσιο αριθμό μας και όταν κάθε μέρα στέλνω ένα μήνυμα κειμένου, θα εμφανίζεστε στο κινητό που έδωσα το μήνυμα. «έκδοση». Και όλοι μπορούν στο άρθρο μου, μπορείτε να αισθανθείτε ελεύθεροι να μου αφήσετε ένα μήνυμα, αυτή η συμπεριφορά είναι η "δημοσιευτική" συμπεριφορά του καθενός και πάντα κρατάω μπροστά σε μια ώθηση για να δω το μήνυμα όλων, αυτό είναι ένα είδος συμπεριφοράς "συνδρομής". Σε αυτή τη διαδικασία, όλες οι εξωτερικές πληροφορίες δεν έχουν καμία σχέση με εμάς, απλώς επικοινωνούμε με τη ροή πληροφοριών προς δύο κατευθύνσεις. Ο μηχανισμός ανταλλαγής μηνυμάτων στο MQTT βασίζεται επίσης στο μοντέλο Publish - Subscribe. Ο μηχανισμός παράδοσης μηνυμάτων MQTT βασίζεται επίσης στο μοντέλο "Δημοσίευση" - "Εγγραφή".
Τα συγκεκριμένα βήματα του MQTT είναι:
Βήμα 1:Χρησιμοποιήστε το πρώτο για να αποκτήσετε έναν διακομιστή MQTT και, στη συνέχεια, δημιουργήστε ένα νέο προϊόν επικοινωνίας MQTT.
Βήμα 2:Στη συνέχεια, μεταβείτε στη σύνδεση σε αυτόν τον διακομιστή, δύο σημαντικές παράμετροι για να συνδεθείτε στον διακομιστή είναι ο αριθμός κεντρικού υπολογιστή (όνομα τομέα ή διεύθυνση IP) και ο αριθμός θύρας.
Βήμα 3:Εάν χρησιμοποιείτε μια-πλατφόρμα διακομιστή cloud τρίτου μέρους, μπορεί να σας ζητήσει να συνδεθείτε σε αυτήν τη συσκευή χρησιμοποιώντας το αναγνωριστικό προϊόντος και τις πληροφορίες ελέγχου ταυτότητας, τα οποία βρίσκονται στο backend του Device Cloud.
Μόλις ολοκληρωθούν αυτά τα τρία βήματα, μπορείτε να εγγραφείτε ή να δημοσιεύσετε μηνύματα στα αντίστοιχα θέματα.
Θα συντάξω ένα έγγραφο για να σας δείξω πώς να "πορνεύσετε" μια πλατφόρμα ανοιχτής πρόσβασης cloud για συσκευές China Mobile.
Αυτά τα τρία βήματα ισχύουν τόσο για την ανάπτυξη λογισμικού εφαρμογών όσο και για την ανάπτυξη μικροελεγκτών. Στην ανάπτυξη μικροελεγκτή, εάν χρησιμοποιείτε εντολές AT και επικοινωνία εξωτερικής μονάδας WIFI, τότε η γενική μονάδα μπορεί να συνοδεύεται από εντολές AT + MQTT, που είναι ο καλύτερος τρόπος για να μειώσετε σημαντικά την πίεση στον μικροελεγκτή. Εναλλακτικά, μπορείτε να αποκτήσετε απευθείας πρόσβαση στα δεδομένα του επιπέδου μεταφοράς TCP/IP και, στη συνέχεια, να αναλύσετε το MQTT, κάτι που απαιτεί από τον χρήστη να έχει βαθιά κατανόηση του πρωτοκόλλου MQTT για να αναλύει επίσης τα δικά του δεδομένα Json, επομένως γενικά όταν κάνουμε ενσωματωμένες συσκευές, γενικά συνιστάται να χρησιμοποιούμε απευθείας την έτοιμη ενότητα με το πρωτόκολλο MQTT, η άμεση ανάλυση της εντολής AT είναι πιο βολική.
Μελέτη περίπτωσης:
Τηλεχειρισμός των φώτων και λήψη της τρέχουσας θερμοκρασίας δωματίου.
Σε αυτή την περίπτωση, είναι στην πραγματικότητα μια από τις απλούστερες εφαρμογές του MQTT. Πρώτα απ 'όλα, η ενσωματωμένη πλακέτα ελέγχου στο δωμάτιο συνδέεται κυρίως με τον διακομιστή μέσω WIFI, ο οποίος μπορεί να ελέγξει το διακόπτη φώτων και επίσης να συλλέξει τη θερμοκρασία. Η τελευταία συσκευή μακριά είναι ένα κινητό τηλέφωνο.
Για να συνεχίσει να λειτουργεί η επικοινωνία, πρέπει πρώτα να συνδεθούν στον ίδιο διακομιστή MQTT.
Οι πληροφορίες θερμοκρασίας στην πλευρά της συσκευής συλλέγονται από τη συσκευή, επομένως πρέπει να δημοσιεύει τα δεδομένα που συλλέγονται στο θέμα "Θερμοκρασία", ενώ το κινητό τηλέφωνο λαμβάνει τις πληροφορίες θερμοκρασίας, επομένως πρέπει να εγγραφεί στο θέμα "Θερμοκρασία". Μόλις η συσκευή στείλει τις πληροφορίες θερμοκρασίας στο "θέμα θερμοκρασίας", το θέμα θα ληφθεί από το κινητό τηλέφωνο.
Ο έλεγχος φωτός στην πλευρά της συσκευής εκτελείται από τη συσκευή, επομένως πρέπει να εγγραφεί στο θέμα "διακόπτης φωτός", ενώ το κινητό τηλέφωνο ελέγχει τον διακόπτη φώτων, επομένως πρέπει να δημοσιεύει πληροφορίες ελέγχου σε αυτό το θέμα "διακόπτης φωτός". Μόλις το κινητό στείλει ένα μήνυμα light on στο θέμα "light on", το θέμα θα ληφθεί από το τερματικό και στη συνέχεια θα εκτελεστεί η εντολή light on.




