Πίνακας περιεχομένων:
- Βήμα 1: Τι είναι το MQTT και πώς λειτουργεί
- Βήμα 2: Raspberry Pi
- Βήμα 3: Πώς να ρυθμίσετε τη στατική διεύθυνση IP
- Βήμα 4: NodeMCU
- Βήμα 5: Python Script
- Βήμα 6: Συνδέσεις και διάγραμμα κυκλώματος
- Βήμα 7: Αποτέλεσμα
2024 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2024-01-30 08:37
Σε αυτό το έργο, θα εξηγήσω τι είναι το πρωτόκολλο MQTT και πώς χρησιμοποιείται για την επικοινωνία μεταξύ συσκευών. Στη συνέχεια, ως πρακτική επίδειξη, θα δείξω πώς να ρυθμίσετε ένα σύστημα πελάτη και μεσίτη, όπου μια μονάδα ESP8266 καθώς και ομιλία RPi μεταξύ τους ή να στείλετε μήνυμα όταν πατήσετε ένα κουμπί.
Απαιτείται υλικό
1. Raspberry Pi 3
2. NodeMCU
3. LED
4. Κουμπί
5. Αντιστάσεις (10k, 475 ohm)
Βήμα 1: Τι είναι το MQTT και πώς λειτουργεί
MQTT
Το MQTT είναι ένα πρωτόκολλο μεταφοράς δεδομένων από μηχανή σε μηχανή (M2M). Το MQTT δημιουργήθηκε με στόχο τη συλλογή δεδομένων από πολλές συσκευές και στη συνέχεια τη μεταφορά αυτών των δεδομένων στην υποδομή πληροφορικής. Είναι ελαφρύ και επομένως ιδανικό για απομακρυσμένη παρακολούθηση, ειδικά σε συνδέσεις M2M που απαιτούν μικρό αποτύπωμα κώδικα ή όπου το εύρος ζώνης δικτύου είναι περιορισμένο.
Πώς λειτουργεί το MQTT
Το MQTT είναι ένα πρωτόκολλο δημοσίευσης/εγγραφής που επιτρέπει στις συσκευές άκρου του δικτύου να δημοσιεύουν σε έναν μεσίτη. Οι πελάτες συνδέονται με αυτόν τον μεσίτη, ο οποίος στη συνέχεια μεσολαβεί στην επικοινωνία μεταξύ των δύο συσκευών. Κάθε συσκευή μπορεί να εγγραφεί ή να εγγραφεί σε συγκεκριμένα θέματα. Όταν ένας άλλος πελάτης δημοσιεύει ένα μήνυμα σχετικά με ένα εγγεγραμμένο θέμα, ο μεσίτης προωθεί το μήνυμα σε κάθε πελάτη που έχει εγγραφεί.
Το MQTT είναι αμφίδρομο και διατηρεί την επίγνωση της συνόδου κατάστασης. Εάν μια συσκευή άκρου δικτύου χάσει τη συνδεσιμότητα, όλοι οι εγγεγραμμένοι πελάτες θα ειδοποιηθούν με τη δυνατότητα "Τελευταία Θέληση και Διαθήκη" του διακομιστή MQTT, έτσι ώστε οποιοσδήποτε εξουσιοδοτημένος πελάτης στο σύστημα να μπορεί να δημοσιεύσει μια νέα τιμή πίσω στο άκρο του συσκευή δικτύου, διατηρώντας αμφίδρομη συνδεσιμότητα.
Το έργο χωρίζεται σε 3 μέρη
Πρώτον, δημιουργούμε διακομιστή MQTT σε RPi και εγκαθιστούμε μερικές βιβλιοθήκες.
Δεύτερον, θα εγκαταστήσουμε βιβλιοθήκες στο Arduino IDE για να λειτουργήσει το NodeMCU με το MQTT, θα ανεβάσουμε τον κώδικα και θα ελέγξουμε αν ο διακομιστής λειτουργεί ή όχι.
Τέλος, δημιουργούμε ένα σενάριο σε Rpi, ανεβάζουμε τον απαιτούμενο κώδικα στο NodeMCU και τρέχουμε το σενάριο python για τον έλεγχο των led τόσο από την πλευρά του διακομιστή όσο και από τον πελάτη. Εδώ, ο διακομιστής είναι RPi και ο πελάτης είναι NodeMCU.
Βήμα 2: Raspberry Pi
1. Για να εγκαταστήσετε τον πιο πρόσφατο διακομιστή και πελάτη MQTT στο RPi, για να χρησιμοποιήσετε το νέο αποθετήριο θα πρέπει πρώτα να εισαγάγετε το κλειδί υπογραφής πακέτου αποθετηρίου.
wget https://repo.mosquitto.org/debian/mosquitto-repo.gpg.keysudo apt-key add mosquitto-repo.gpg.key
2. Θέστε το αποθετήριο διαθέσιμο στο apt.
cd /etc/apt/sources.list.d/
3. Ανάλογα με την έκδοση του Debian που χρησιμοποιείτε.
sudo wget https://repo.mosquitto.org/debian/mosquitto-wheezy.listsudo wget
sudo wget
sudo apt-get ενημέρωση
4. Εγκαταστήστε τον διακομιστή Mosquitto χρησιμοποιώντας την εντολή.
sudo apt-get install mosquitto
Εάν λαμβάνετε σφάλματα κατά την εγκατάσταση του Mosquitto όπως αυτό.
#################################################################
Τα ακόλουθα πακέτα έχουν μη ικανοποιημένες εξαρτήσεις: mosquitto: Εξαρτάται: libssl1.0.0 (> = 1.0.1) αλλά δεν είναι εγκατάστατο Εξαρτάται: libwebsockets3 (> = 1.2) αλλά δεν είναι εγκατάστατο πακέτα.
#################################################################
Στη συνέχεια, χρησιμοποιήστε αυτήν την εντολή για να διορθώσετε προβλήματα.
sudo apt --εγκατάσταση που έχει σπάσει
5. Μετά την εγκατάσταση του διακομιστή MQTT, εγκαταστήστε τον πελάτη χρησιμοποιώντας την εντολή
sudo apt-get install mosquitto-clients
Μπορείτε να ελέγξετε τις υπηρεσίες χρησιμοποιώντας την εντολή.
systemctl status mosquitto.service
Καθώς ο διακομιστής και ο πελάτης MQTT είναι εγκατεστημένος. Τώρα, μπορούμε να το ελέγξουμε χρησιμοποιώντας εγγραφή και δημοσίευση. Για εγγραφή και δημοσίευση, μπορείτε να ελέγξετε τις εντολές ή να επισκεφθείτε τον ιστότοπο όπως αναφέρεται παρακάτω.
Mosquitto Sub
Mosquitto Pub
Για να εγκαταστήσετε τη βιβλιοθήκη paho-mqtt χρησιμοποιήστε την παρακάτω εντολή.
sudo pip εγκατάσταση paho-mqtt
Πάχο
Βήμα 3: Πώς να ρυθμίσετε τη στατική διεύθυνση IP
Μεταβείτε στον κατάλογο cd /etc και ανοίξτε το αρχείο dhcpcd.conf χρησιμοποιώντας οποιονδήποτε επεξεργαστή. Στο τέλος, γράψτε αυτές τις τέσσερις γραμμές.
διασύνδεση eth0 static ip_address = 192.168.1.100 // ip που θέλετε να χρησιμοποιήσετε
διεπαφή wlan0
στατική ip_address = 192.168.1.68
στατικοί δρομολογητές = 192.168.1.1 // η προεπιλεγμένη πύλη σας
διακομιστές στατικού domain_name_servers = 192.168.1.1
Μετά από αυτό, αποθηκεύστε το και επανεκκινήστε το pi σας.
Βήμα 4: NodeMCU
Εγκαταστήστε τις απαιτούμενες βιβλιοθήκες στο Arduino IDE για το NodeMCU
1. Μεταβείτε στο Sketch ==> Συμπερίληψη βιβλιοθήκης ==> Διαχείριση βιβλιοθηκών.
2. Αναζητήστε mqtt και εγκαταστήστε τη βιβλιοθήκη από το Adafruit ή μπορείτε να εγκαταστήσετε οποιαδήποτε βιβλιοθήκη.
3. Εξαρτάται από τη βιβλιοθήκη sleepydog, οπότε χρειαζόμαστε και αυτή τη βιβλιοθήκη.
Το πρόγραμμα δίνεται παραπάνω, μόνο για να ελέγξει αν λειτουργεί ή όχι. Εδώ δεν έχω δημιουργήσει κανένα σενάριο σε RPi. Χρησιμοποιούμε απλώς εντολές για εγγραφή και δημοσίευση. Θα δημιουργήσουμε σενάριο για έλεγχο αργότερα.
mosquitto_pub -h raspberrypi -t "/leds/pi" -m "ON"
mosquitto_pub -h raspberrypi -t "/leds/pi" -m "OFF"
mosquitto_pub -h raspberrypi -t "/leds/pi" -m "TOGGLE"
mosquitto_pub -h raspberrypi -t "/leds/esp8266" -m "ON"
mosquitto_pub -h raspberrypi -t "/leds/esp8266" -m "OFF"
mosquitto_pub -h raspberrypi -t "/leds/esp8266" -m "TOGGLE"
-h ==> όνομα κεντρικού υπολογιστή-t ==> θέμα
-m ==> μήνυμα
Αφού ελέγξετε το πρόγραμμα Mqtt_check, ανεβάστε το πλήρες πρόγραμμα στο NodeMCU
Βήμα 5: Python Script
Όπως συζήτησα παραπάνω χρειαζόμαστε python script για τον έλεγχο των led χρησιμοποιώντας κουμπιά. Έτσι, πρόκειται να δημιουργήσουμε script. Το σενάριο δίνεται παραπάνω.
Όταν εκτελείτε το σενάριο, το σενάριό σας θα πρέπει να μοιάζει με αυτό που φαίνεται στην εικόνα, εάν ο κωδικός αποτελέσματος δεν είναι μηδενικός, τότε είναι ένα σφάλμα που μπορείτε να ελέγξετε στην ιστοσελίδα paho.
Βήμα 6: Συνδέσεις και διάγραμμα κυκλώματος
Διασύνδεση κουμπιού, LED με NodeMCU
NodeMCU ===> ButtonGnd ===> Gnd
3.3V ===> PIN1
GPIO4 (D2) ===> PIN2
NodeMCU ===> LED
Gnd ===> Cathode (-ve)
GPIO5 (D1) ===> Άνοδος (+ve)
Διασύνδεση κουμπιού, LED με RPi
RPi ===> ButtonGnd ===> PIN1
GPIO 23 ===> PIN2
RPi ===> LED
Gnd ==> Cathode (-ve)
GPIO 24 ===> Άνοδος (+ve)
Βήμα 7: Αποτέλεσμα
Βεβαιωθείτε ότι το σενάριο εκτελείται διαφορετικά δεν θα μπορεί να ελέγξει το led χρησιμοποιώντας κουμπιά.
Συνιστάται:
Έξυπνο σύστημα στάθμευσης βασισμένο στο IoT χρησιμοποιώντας NodeMCU ESP8266: 5 βήματα
Έξυπνο σύστημα στάθμευσης βασισμένο στο IoT χρησιμοποιώντας το NodeMCU ESP8266: Στις μέρες μας η εξεύρεση χώρων στάθμευσης σε πολυσύχναστες περιοχές είναι πολύ δύσκολη και δεν υπάρχει σύστημα για να λάβετε τις λεπτομέρειες της διαθεσιμότητας στάθμευσης στο διαδίκτυο. Φανταστείτε αν μπορείτε να λάβετε πληροφορίες διαθεσιμότητας θέσης στάθμευσης στο τηλέφωνό σας και δεν έχετε περιαγωγή για έλεγχο
IOT - Δημοσιεύστε δεδομένα στο Thingspeak χρησιμοποιώντας το ESP8266: 3 βήματα
IOT | Δημοσίευση δεδομένων στο Thingspeak χρησιμοποιώντας το ESP8266: Σήμερα, το IoT είναι σε τάση και πολλά μηχανήματα έχουν δεδομένα για να ανεβάσουν στο cloud και να αναλύσουν τα δεδομένα. Οι μικροί αισθητήρες ενημερώνουν τα δεδομένα στο σύννεφο και ο ενεργοποιητής σε άλλο άκρο ενεργεί σε αυτό. Θα εξηγήσω το παράδειγμα του IoT. Εγώ αυτό το άρθρο και
Σύνδεση του Arduino WiFi στο cloud χρησιμοποιώντας ESP8266: 7 βήματα
Σύνδεση του Arduino WiFi στο Cloud χρησιμοποιώντας το ESP8266: Σε αυτό το σεμινάριο θα σας εξηγήσουμε πώς να συνδέσετε το Arduino σας στο IoT cloud μέσω WiFi. Θα διαμορφώσουμε μια ρύθμιση που αποτελείται από ένα Arduino και μια μονάδα WiFi ESP8266 ως IoT Thing και θα το κάνουμε έτοιμο για επικοινωνία με το σύννεφο AskSensors.L
Μιλώντας έξυπνο γυαλί για τυφλούς: 7 βήματα
Talking Smart Glass for the Blind: Υπάρχουν πολλά έξυπνα αξεσουάρ όπως έξυπνα γυαλιά, έξυπνα ρολόγια κ.λπ. Αλλά όλα αυτά είναι φτιαγμένα για εμάς. Υπάρχει σημαντική έλλειψη τεχνολογίας για να βοηθήσει τους σωματικά προβληματισμένους. Wantedθελα να χτίσω κάτι που είναι
ESP8266 Παρακολούθηση θερμοκρασίας Nodemcu χρησιμοποιώντας DHT11 σε τοπικό διακομιστή ιστοσελίδων - Λάβετε θερμοκρασία δωματίου και υγρασία στο πρόγραμμα περιήγησής σας: 6 βήματα
ESP8266 Παρακολούθηση θερμοκρασίας Nodemcu χρησιμοποιώντας DHT11 σε τοπικό διακομιστή ιστοσελίδων | Λάβετε θερμοκρασία δωματίου και υγρασία στο πρόγραμμα περιήγησής σας: Γεια σας παιδιά σήμερα θα κάνουμε υγρασία & σύστημα παρακολούθησης θερμοκρασίας χρησιμοποιώντας ESP 8266 NODEMCU & Αισθητήρας θερμοκρασίας DHT11. Η θερμοκρασία και η υγρασία θα ληφθούν από τον αισθητήρα DHT11 & μπορεί να δει σε ένα πρόγραμμα περιήγησης ποια ιστοσελίδα θα διαχειριστεί