Το Πρωτόκολλο Τηλεμετρίας Ουράς Μηνυμάτων, ή MQTT, είναι ένα ελαφρύ πρωτόκολλο ανταλλαγής μηνυμάτων σχεδιασμένο για συσκευές και περιβάλλοντα χαμηλού εύρους ζώνης. Είναι μια γρήγορη, εύκολη στην εγκατάσταση και ενεργειακά αποδοτική λύση για τη σύνδεση και την ανταλλαγή πληροφοριών μεταξύ πολλαπλών συσκευών IoT. Απαιτεί έναν μεσίτη/διακομιστή MQTT και το θέμα στο οποίο δημοσιεύονται τα μηνύματα και εγγράφονται από τις συσκευές ή τους χρήστες για την αποστολή ή τη λήψη των πληροφοριών.

Σε αυτόν τον οδηγό, θα αναπτύξουμε το εργαλείο MQTT broker και Node-RED στο Raspberry Pi για να συνδέσουμε έξυπνες συσκευές IoT με δυνατότητα MQTT και να τις χρησιμοποιήσουμε για οικιακή αυτοματοποίηση.

Πράγματα που θα χρειαστείτε

Για να δημιουργήσετε και να αναπτύξετε έναν διακομιστή MQTT με Node-RED, θα χρειαστείτε τα εξής:

  • Ένα Raspberry Pi Zero W ή καλύτερο. Συνιστούμε να χρησιμοποιήσετε ένα Raspberry Pi 3 ή 4 (αν υπάρχει).
  • Μια κάρτα microSD (8 GB ή μεγαλύτερη).
  • Μια συσκευή ανάγνωσης καρτών microSD.
  • Ένας υπολογιστής Linux, Mac ή υπολογιστής Windows.
  • Σύνδεση στο Διαδίκτυο (Wi-Fi).
instagram viewer

Βήμα 1: Εγκαταστήστε το Raspberry Pi OS Lite (64-bit)

Θα χρειαστείτε την έκδοση 64-bit Lite του Raspberry Pi OS. Στο Raspberry Pi Imager εργαλείο σε άλλον υπολογιστή, κάντε κλικ Επιλέξτε OS > Raspberry Pi OS (Άλλο), μετά επιλέξτε Raspberry Pi OS Lite (64-bit). Επιπλέον, θα θέλετε να χρησιμοποιήσετε τις προηγμένες ρυθμίσεις του Imager για να ενεργοποιήσετε το SSH (χρησιμοποιήσαμε πι και βατόμουρο ως όνομα χρήστη και κωδικό πρόσβασης για αυτόν τον οδηγό) και διαμορφώστε τη σύνδεση Wi-Fi. Για περισσότερες λεπτομέρειες, ανατρέξτε στον οδηγό μας για πώς να εγκαταστήσετε ένα λειτουργικό σύστημα σε ένα Raspberry Pi. Αφού γράψετε το λειτουργικό σύστημα στην κάρτα, αφαιρέστε το και τοποθετήστε το στο Raspberry Pi.

Βήμα 2: Συνδεθείτε μέσω SSH και ενημερώστε τα πακέτα

Μπορείτε να συνδεθείτε στο Raspberry Pi μέσω SSH χρησιμοποιώντας PuTTY σε Windows ή Terminalon macOS και Linux. Ωστόσο, θα πρέπει να γνωρίζετε την IP του Raspberry Pi για να συνδεθείτε μέσω SSH. Για να το μάθετε, μπορείτε να ανοίξετε τις ρυθμίσεις DHCP του ασύρματου δρομολογητή σας ή να χρησιμοποιήσετε την εφαρμογή Fingapp στο smartphone σας.

Εισαγάγετε τη διεύθυνση IP Στόκος και κάντε κλικ Συνδέω-συωδεομαι. Πληκτρολογήστε το όνομα χρήστη και τον κωδικό πρόσβασής σας για να συνδεθείτε.

Σε τερματικό Linux ή macOS, πληκτρολογήστε YourPiUsername@IPAddress και μετά πληκτρολογήστε τον κωδικό πρόσβασης για να συνδεθείτε. Αφού συνδεθείτε μέσω SSH, εκτελέστε την ακόλουθη εντολή για να ενημερώσετε τη λίστα πακέτων και να αναβαθμίσετε τα πακέτα.

sudo apt ενημέρωση && αναβάθμιση sudo apt y

Βήμα 3: Εγκαταστήστε το MQTT Broker

Για να εγκαταστήσετε και να ενεργοποιήσετε τον μεσίτη MQTT (Mosquitto), ακολουθήστε τα παρακάτω βήματα.

  1. Εγκαταστήστε το Mosquitto εκτελώντας την ακόλουθη εντολή στο παράθυρο Terminal.
    sudo apt εγκαθιστώ κουνούπι κουνούπι-πελάτες -υ
    Αυτό θα ξεκινήσει την εγκατάσταση του Mosquitto (MQTT broker) και των υπηρεσιών πελατών.
  2. Μετά την εγκατάσταση, ενεργοποιήστε την υπηρεσία Mosquitto και ελέγξτε την έκδοση MQTT χρησιμοποιώντας τις ακόλουθες εντολές.
    sudosystemctlεπιτρέπωκουνούπι.υπηρεσία
    κουνούπι -v
  3. Δημιουργήστε έναν λογαριασμό χρήστη για να επιτρέψετε την απομακρυσμένη πρόσβαση με έλεγχο ταυτότητας χρησιμοποιώντας την ακόλουθη εντολή.
    sudo mosquitto_passwd -c /etc/mosquitto/passwd ravi
    Εδώ ράβι είναι το όνομα χρήστη (μπορείτε να χρησιμοποιήσετε ό, τι θέλετε). Εισαγάγετε τον κωδικό πρόσβασης όταν σας ζητηθεί. Σημειώστε αυτό το όνομα χρήστη και τον κωδικό πρόσβασης για μελλοντική χρήση.
  4. Ανοιξε το κουνούπι.conf αρχείο στον nano editor χρησιμοποιώντας την ακόλουθη εντολή.
    sudo nano /etc/mosquitto.conf
    Επικολλήστε τον παρακάτω κώδικα στο nano editor.
    per_listener_settings αληθής
    pid_file /run/mosquitto/mosquitto.pid
    επιμονή αληθής
    persistence_location /var/lib/mosquitto/
    αρχείο log_dest /var/log/mosquitto/mosquitto.log
    include_dir /etc/mosquitto/conf.d
    επιτρέπω_ανώνυμος ψευδής
    ακροατής 1883
    password_file /etc/mosquitto/passwd
    Τύπος CTRL+X ακολουθούμενη από Υ και Εισαγω για να αποθηκεύσετε τις αλλαγές.
  5. Κάντε επανεκκίνηση του μεσίτη MQTT εκτελώντας την ακόλουθη εντολή.
    sudo systemctl επανεκκίνηση κουνουπιών
  6. Ελέγξτε την κατάσταση του μεσίτη MQTT για να δείτε εάν το MQTT εκτελείται.
    sudo systemctl status κουνούπι
    Εάν δείτε την παραπάνω έξοδο, το MQTT εκτελείται.

Βήμα 4: Δοκιμάστε το MQTT Broker

Για να ελέγξετε εάν ο μεσίτης MQTT λειτουργεί ή όχι, εγκαταστήστε το MQTTLens ή μια παρόμοια εφαρμογή MQTT στο Chrome ή σε οποιοδήποτε άλλο πρόγραμμα περιήγησης ιστού και εκκινήστε την. Εισαγάγετε τη διεύθυνση IP του Raspberry Pi και το όνομα χρήστη/κωδικό MQTT. Κάντε κλικ Δημιουργία σύνδεσης.

Εισαγάγετε οποιοδήποτε θέμα στο Εγγραφείτε πεδίο και το ίδιο θέμα στο Δημοσιεύω πεδίο. Πληκτρολογήστε "Hi" ή οτιδήποτε άλλο στο πεδίο μηνύματος και κάντε κλικ Δημοσιεύω.

Εάν δείτε το μήνυμα κάτω από τις συνδρομές, ο μεσίτης MQTT λειτουργεί καλά.

Βήμα 5: Εγκαταστήστε το Node-RED

Με το Node-RED, μπορείτε να δημοσιεύετε μηνύματα ή να στέλνετε και να λαμβάνετε ωφέλιμα φορτία προς ή από τις έξυπνες συσκευές σας. Αυτό το ωφέλιμο φορτίο μπορεί να χρησιμοποιηθεί για την ενεργοποίηση έξυπνων συσκευών για ενεργοποίηση/απενεργοποίηση ή λήψη δεδομένων (όπως θερμοκρασία) από έναν αισθητήρα. Μπορείτε να χρησιμοποιήσετε το πρόγραμμα περιήγησής σας για να δημιουργήσετε τέτοιες ροές στο Node-RED και να ελέγξετε τις έξυπνες συσκευές σας.

Για να εγκαταστήσετε το Node-RED, εκτελέστε την ακόλουθη εντολή στο παράθυρο Terminal.

bash //raw.githubusercontent.com/node-red/linux-installers/master/deb/update-nodejs-and-nodered)

Αυτό θα κατεβάσει και θα εγκαταστήσει το Node-RED στο Raspberry Pi σας. Μπορεί να χρειαστεί λίγος χρόνος για να ολοκληρωθεί. Μόλις εγκατασταθεί το Node-RED, πρέπει να δημιουργήσετε ένα αρχείο ρυθμίσεων Node-RED εκτελώντας την ακόλουθη εντολή.

node-red admin init

Στη συνέχεια, ακολουθήστε αυτά τα βήματα:

  1. Πάτα το Εισαγω κλειδί.
  2. Θέλετε να ρυθμίσετε την ασφάλεια χρήστη; Επιλέγω Ναί. Εισαγάγετε ένα όνομα χρήστη και έναν κωδικό πρόσβασης. Διατηρήστε το ασφαλές καθώς θα χρησιμοποιηθεί για τη σύνδεση και τη διαχείριση του Node-RED μέσω μιας διεπαφής ιστού.
  3. Επιλέγω Πλήρης πρόσβαση.
  4. Μπορείτε να προσθέσετε άλλον χρήστη ή να επιλέξετε Οχι να προχωρήσει.
  5. Επιλέγω Οχι όταν σας ζητηθεί να ενεργοποιήσετε τις δυνατότητες του έργου.
  6. Τύπος Εισαγω.
  7. Πληκτρολογήστε μια φράση πρόσβασης και διατηρήστε την ασφαλή.
  8. Επιλέξτε το προεπιλεγμένο θέμα > Μονακό (προεπιλογή).
  9. Επιλέγω Οχι όταν σας ζητηθεί να φορτωθούν εξωτερικοί κόμβοι.

Μόλις γίνει αυτό, επανεκκινήστε το Node-RED.

κόμβος-κόκκινη επανεκκίνηση

Τώρα μπορείτε να επισκεφθείτε Your-Raspberry-Pi-IP: 1880 σε ένα πρόγραμμα περιήγησης ιστού για να ανοίξετε και να συνδεθείτε στον πίνακα διαχείρισης Node-RED.

Τώρα μπορείτε να δημιουργήσετε ροές στο Node-RED. Παρακάτω είναι ένα παράδειγμα ροής Node-RED που χρησιμοποιούμε για την εκτέλεση της οθόνης μήτρας WS2812B 8x32 που εμφανίζει διάφορες πληροφορίες αισθητήρων που είναι εγκατεστημένες στο σπίτι μας σε πραγματικό χρόνο.

Για να ξεκινήσετε, μπορείτε επίσης κατασκευάστε ένα έξυπνο ρολόι DIY χρησιμοποιώντας MAX7219 dot matrixκαι συνδέστε το στον διακομιστή MQTT για να εμφανίσετε κείμενο ή μηνύματα σε αυτόν.

Ενεργοποίηση οικιακού αυτοματισμού με χρήση MQTT και Node-RED

Τώρα μπορείτε να δημιουργήσετε ροές για τον έλεγχο ή την παρακολούθηση των έξυπνων οικιακών συσκευών σας με δυνατότητα MQTT. Μπορείτε επίσης να δημιουργήσετε έξυπνους διακόπτες Tasmota DIY ή έξυπνους αισθητήρες βασισμένους σε Arduino και άλλες έξυπνες συσκευές με έλεγχο MQTT και να τις χρησιμοποιήσετε με αυτόν τον διακομιστή MQTT και Node-RED. Μπορείτε να δημιουργήσετε ροές για οικιακή αυτοματοποίηση βάσει συμβάντων, χρόνου ή ωφέλιμου φορτίου που λαμβάνετε από τον πελάτη MQTT του smartphone σας.

Στο smartphone Android σας, μπορείτε να εγκαταστήσετε το MQTT Dash για να συνδεθείτε με τον μεσίτη MQTT και να στείλετε ή να λάβετε ωφέλιμα φορτία προς ή από διάφορα θέματα στα οποία είναι συνδρομητές ή δημοσιεύονται οι έξυπνες συσκευές σας.