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

Raspberry Pi Μιλώντας στο ESP8266 χρησιμοποιώντας το MQTT: 8 βήματα
Raspberry Pi Μιλώντας στο ESP8266 χρησιμοποιώντας το MQTT: 8 βήματα
Anonim
Raspberry Pi Μιλώντας στο ESP8266 χρησιμοποιώντας MQTT
Raspberry Pi Μιλώντας στο ESP8266 χρησιμοποιώντας MQTT

Σε αυτό το έργο, θα εξηγήσω τι είναι το πρωτόκολλο 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

Raspberry Pi
Raspberry Pi
Raspberry Pi
Raspberry Pi
Raspberry Pi
Raspberry Pi
Raspberry Pi
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

Πώς να ρυθμίσετε τη στατική διεύθυνση IP
Πώς να ρυθμίσετε τη στατική διεύθυνση 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

NodeMCU
NodeMCU
NodeMCU
NodeMCU
NodeMCU
NodeMCU
NodeMCU
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
Σενάριο Python
Σενάριο Python
Σενάριο Python

Όπως συζήτησα παραπάνω χρειαζόμαστε 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: Αποτέλεσμα

Image
Image
Αποτέλεσμα
Αποτέλεσμα

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

Συνιστάται: