Πίνακας περιεχομένων:

SmartHome Wireless Communication: the Extreme Basics of MQTT: 3 βήματα
SmartHome Wireless Communication: the Extreme Basics of MQTT: 3 βήματα

Βίντεο: SmartHome Wireless Communication: the Extreme Basics of MQTT: 3 βήματα

Βίντεο: SmartHome Wireless Communication: the Extreme Basics of MQTT: 3 βήματα
Βίντεο: Building a Smart Home with MQTT: Two-Way Communication using Home Assistant and ESP32 (Part. 1) 2024, Ιούλιος
Anonim
Ασύρματη επικοινωνία SmartHome: τα ακραία βασικά του MQTT
Ασύρματη επικοινωνία SmartHome: τα ακραία βασικά του MQTT
Ασύρματη επικοινωνία SmartHome: τα ακραία βασικά του MQTT
Ασύρματη επικοινωνία SmartHome: τα ακραία βασικά του MQTT

Βασικά στοιχεία του MQTT:

** Θα κάνω μια σειρά αυτοματισμού σπιτιού, θα περάσω από τα βήματα που έκανα για να μάθω όλα όσα έχω κάνει στο μέλλον. Αυτό το Instructable είναι η βασική γραμμή για τον τρόπο ρύθμισης του MQTT για χρήση στο μελλοντικό μου Instructables. Ωστόσο, οι διδασκαλίες σε αυτό το περιεχόμενο θα ισχύουν για κάθε έργο που θα ήθελε να αναλάβει. **

Το διαδίκτυο των πραγμάτων:

Το Διαδίκτυο των Πραγμάτων καταλαμβάνει τον κόσμο, και ιδιαίτερα σε κοινότητες όπως η δική μας εδώ στο Instructables. Από τότε που μπήκα σε αυτήν την κοινότητα, έχει εδραιωθεί με ανθρώπους που χτίζουν

Συσκευές που συνδέονται και ελέγχονται μέσω διαδικτύου. Όταν εργάζεστε με το Internet of Things είναι δύσκολο να μην ακολουθήσετε το πρωτόκολλο MQTT. Αυτό είναι ένα πρωτόκολλο επικοινωνίας όπως άλλα που χρησιμοποιούνται σήμερα στο Διαδίκτυο, όπως το HTTP ή το FTP, ωστόσο ο τρόπος λειτουργίας του είναι διαφορετικός, γεγονός που το καθιστά ιδανικό για εφαρμογές Internet of Things.

Τι είναι το MQTT:

Το MQTT (Message Queuing Telemetry Transport είναι ένα ελαφρύ πρωτόκολλο επικοινωνίας που χρησιμοποιεί αρχιτεκτονική δημοσίευσης/εγγραφής. Το HTTP, το οποίο χρησιμοποιεί το μεγαλύτερο μέρος του Διαδικτύου, βασίζεται σε σύστημα αιτήματος/απόκρισης. Αυτό σημαίνει ότι λαμβάνει ένα αίτημα από έναν πελάτη και στέλνει μια απάντηση σε αυτόν τον πελάτη. Το MQTT έχει επίσης έναν διακομιστή (που ονομάζεται μεσίτης) καθώς και πολλούς πελάτες. Σε αντίθεση με το HTTP, το MQTT επιτρέπει στους πελάτες να δημοσιεύουν ή να εγγραφούν σε συγκεκριμένα "θέματα". Αυτό που επιτρέπει είναι η ευρύτερη επικοινωνία μέσω ένα κεντρικό σημείο, ο μεσίτης. Κάθε κόμβος μπορεί να δημοσιεύσει ένα θέμα στον μεσίτη και οποιοσδήποτε κόμβος εγγραφεί σε αυτό το θέμα θα λάβει το μήνυμα. Οι πελάτες μπορούν επίσης να εγγραφούν σε πολλά θέματα και στη συνέχεια μπορούν να λάβουν πολλαπλές οδηγίες ή ενημερώσεις.

Όλο το σύστημα βασίζεται σε γεγονότα και επιτρέπει την προώθηση μηνυμάτων από τον μεσίτη σε κάθε εγγεγραμμένο πελάτη. Έτσι, αντί για το HTTP, όπου ο πελάτης ζητά τις πληροφορίες, ο πελάτης προωθεί τις πληροφορίες απευθείας από τον μεσίτη κατά την παραλαβή. Υπάρχουν ενσωματωμένες υπηρεσίες που επιτρέπουν διάφορες εγγυήσεις, όπως προδιαγραφές QOS. Μια προδιαγραφή QOS επιτρέπει σε έναν μεσίτη να καθορίσει εάν ένα μήνυμα πρέπει να παραδοθεί το πολύ μία φορά, τουλάχιστον μία ή ακριβώς μία φορά. Αυτό διασφαλίζει ότι τα δεδομένα παραδίδονται με τον απαιτούμενο τρόπο σε κάθε πελάτη. Οι πελάτες μπορούν επίσης να ζητήσουν την αποθήκευση των δημοσιευμένων μηνυμάτων στο θέμα τους στον μεσίτη σε περίπτωση που αποσυνδεθούν από αυτό για οποιονδήποτε λόγο. Μόλις επανέλθει στο διαδίκτυο, αυτά τα δεδομένα θα μεταφερθούν στον πελάτη.

Ένα θέμα δεν είναι τίποτα το ιδιαίτερο, είναι απλώς μια ποικιλία χορδών που συνδυάζονται και χωρίζονται με κάθετο. Η μορφή στο παράδειγμα που θα χρησιμοποιηθεί παρακάτω είναι η ακόλουθη: σπίτι/υπνοδωμάτιο/φωτιστικό οροφής. Κάθε κάθετο τοποθετείται μετά από ένα θέμα για να δηλώσει ένα υποκείμενο. Έτσι, ένα μήνυμα θα μπορούσε να δημοσιευτεί στο σπίτι, όπου θα το λάβουν όλες οι συσκευές του σπιτιού. Θα μπορούσε να δημοσιευτεί απευθείας στο σπίτι/υπνοδωμάτιο, όπου όλες οι συσκευές στην κρεβατοκάμαρα θα λάβουν το μήνυμα. Και μπορεί να κατέβει στη συγκεκριμένη συσκευή όπως εμφανίζεται αρχικά στο σπίτι/υπνοδωμάτιο/φωτιστικό οροφής όπου μόνο το φως οροφής στο υπνοδωμάτιο θα λάβει το μήνυμα. Ο τρόπος με τον οποίο μπορούμε να αφαιρέσουμε μεμονωμένες συσκευές όπως αυτή σε ολόκληρο το οικοσύστημα είναι εξαιρετικά βολικός, ειδικά όταν πρόκειται για οικιακό αυτοματισμό. Υπάρχουν και άλλοι τρόποι ανάλυσης θεμάτων και θα τους αναλύσω περαιτέρω σε μελλοντικά Instructables όπου η εφαρμογή είναι πιο λογική.

Προμήθειες

Απαιτείται μόνο ένα από τα παρακάτω:

Ubuntu:

Υποσύστημα Windows για Linux: https://ubuntu.com/wsl (Μόνο εάν δεν έχετε Linux/MacOS)

MacOS: Απαιτεί MacBook

Αυτό απαιτείται:

Mosquitto MQTT Broker - Λήψη χρησιμοποιώντας το apt -get (Τεκμηρίωση:

Βήμα 1: Αρχική ρύθμιση (ανάλογα με το λειτουργικό σας σύστημα)

MacOS/Linux:

Δεν απαιτείται ρύθμιση, απλά ανοίξτε το τερματικό σας και μεταβείτε στο Mosquitto Setup!

Windows:

Εάν χρησιμοποιείτε Windows, θα χρειαστεί να εγκαταστήσετε το Υποσύστημα Windows για Linux. Αυτό είναι ένα εξαιρετικά εύκολο στη χρήση και εξαιρετικά πολύτιμο εργαλείο που σας επιτρέπει να εκτελέσετε ένα τερματικό Ubuntu στα Windows. Δεν χρειάζεται εγκατάσταση και διπλή εκκίνηση του Ubuntu μόνο για να δοκιμάσετε την ανάπτυξη στο τερματικό!

Βήματα εγκατάστασης:

1. Μεταβείτε στο Windows Store και αναζητήστε ubuntu

2. Κατεβάστε και εγκαταστήστε το Υποσύστημα Windows για Linux

3. Ανοίξτε την εφαρμογή και ακολουθήστε τις οδηγίες για να ολοκληρώσετε τη ρύθμιση και είστε έτοιμοι να συνεχίσετε!

Βήμα 2: Ρύθμιση Mosquitto:

Mosquitto Setup
Mosquitto Setup
Mosquitto Setup
Mosquitto Setup
Mosquitto Setup
Mosquitto Setup

Έτσι, όπως συζητήθηκε στην εισαγωγή για το MQTT, το πρωτόκολλο απαιτεί μεσίτη (διακομιστή). Αυτός ο μεσίτης είναι το βασικό σημείο για όλες τις καθιερωμένες συνδέσεις με κάθε πελάτη. Όλα τα μηνύματα περνούν και τίθενται σε ουρά σε αυτόν τον μεσίτη. Υπάρχουν πολλές επιλογές για να διαλέξετε για έναν μεσίτη και μπορείτε να τις βρείτε στο διαδίκτυο, αλλά αυτή που θα χρησιμοποιήσουμε είναι ίσως η πιο κοινή: Mosquitto.

Το Mosquitto είναι ένας μεσίτης MQTT με βάση το Linux με έναν τόνο λειτουργικότητας. Δεν θα ασχοληθώ τώρα με τις ιδιαιτερότητες αυτής της λειτουργικότητας, αλλά μερικές βασικές απαιτήσεις που πληροί είναι ο έλεγχος ταυτότητας χρήστη/κωδικού πρόσβασης και η κρυπτογράφηση TLS υποστηρίζουν όλες τις οποίες είναι χρήσιμες για την ανάπτυξη συσκευών Internet of Things.

Βήματα:

Όλα αυτά τα βήματα πρέπει να ολοκληρωθούν σε ένα παράθυρο τερματικού.

1. Εγκαταστήστε Mosquitto και MQTT Clients

sudo apt-get install mosquitto mosquitto-clients

2. Εγγραφείτε σε ένα Θέμα

mosquitto_sub -t "test"

Αυτό που κάνει είναι να εγγραφείτε σε ένα θέμα. Αυτό το θέμα συμβολίζεται με "-t" και η τιμή του θέματος είναι "δοκιμή". Αυτή η τιμή που ακολουθεί το "-t" μπορεί να είναι οτιδήποτε θέλετε εκτός από μερικές ειδικές κρατήσεις.

3. Ανοίξτε ένα νέο παράθυρο τερματικού και δημοσιεύστε ένα μήνυμα στο θέμα "δοκιμή"

mosquitto_pub -t "test" -m "Hello World with MQTT!"

Αυτό δημοσιεύει ένα μήνυμα στο θέμα "δοκιμή", επιτρέποντας στο άλλο τερματικό μας παράδειγμα να λάβει το μήνυμα στην πλευρά της συνδρομής. Το δημοσιευμένο μήνυμα συμβολίζεται με ένα "-m" και η τιμή του μηνύματος είναι "Hello World With MQTT". Αυτό το μήνυμα, όπως και το θέμα, μπορεί να αλλάξει σε ό, τι θέλετε!

4. Μεταβείτε στο πρώτο παράθυρο τερματικού για να δείτε τα αποτελέσματά σας! Θα πρέπει να λάβετε ένα μήνυμα που εμφανίζει την ένδειξη "Hello World With MQTT". Εάν δεν το βλέπετε, βεβαιωθείτε ότι πληκτρολογήσατε το σωστό θέμα. Εάν το έχετε ολοκληρώσει με επιτυχία, συνεχίστε να παίζετε με αυτό. Δοκιμάστε διαφορετικά θέματα, με υποκείμενα και διαφορετικά μηνύματα!

Βήμα 3: Κλείστε

Αυτό είναι! Μόλις τα ολοκληρώσετε όλα καταλαβαίνετε τα βασικά για το πώς λειτουργεί το MQTT. Αυτό είναι ένα πολύ στοιχειώδες σεμινάριο που δείχνει ακριβώς το ελάχιστο του πρωτοκόλλου MQTT. Το Future Instructables θα αναλύσει σε βάθος πώς λειτουργεί το πρωτόκολλο στην πράξη με το Διαδίκτυο των Πραγμάτων, ιδιαίτερα με τις μονάδες ESP8266 που εκτελούν Arduino. Η πρώτη μου πρακτική εφαρμογή θα είναι η έξυπνη καφετιέρα που έχω αυτήν τη στιγμή στο δωμάτιό μου. Αν θέλετε να μάθετε πώς να φτιάχνετε μια καφετιέρα που ελέγχεται τόσο από το τηλέφωνό σας όσο και από την Alexa, φροντίστε να με ακολουθήσετε για περισσότερα μαθήματα.

Συνιστάται: