Πίνακας περιεχομένων:
2025 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2025-01-13 06:57
Θα ρυθμίσουμε διακομιστή και πελάτη MQTT στο Raspberry Pi χρησιμοποιώντας βιβλιοθήκες Mosquitto και paho-mqtt. Θα διαβάσουμε ένα κουμπί και αν πατηθεί θα κάνουμε Toggle LED στην πλευρά του Arduino.
Ενώ, στο Arduino θα χρησιμοποιήσουμε τη βιβλιοθήκη Adafruit MQTT. Θα χρησιμοποιήσουμε έναν αισθητήρα όπως LDR (Μπορείτε να χρησιμοποιήσετε οποιονδήποτε άλλο αισθητήρα), θα τον διαβάσετε και θα τον δημοσιεύσουμε μόλις αλλάξει σε Raspberry Pi.
Χρειαζόμαστε:
Raspberry Pi
NodeMCU
Βήμα 1: Προσθήκη Βιβλιοθηκών για το Esp8266
Μεταβείτε στο "Διαχείριση βιβλιοθηκών …" χρησιμοποιώντας το Arduino IDE και αναζητήστε "MQTT" από την Adafruit.
Μετά την επιτυχή εγκατάσταση, προσθέστε "MQTT_NodeMCU.ino" από τον ακόλουθο σύνδεσμο:
Κωδικός Arduino
Πραγματοποιήστε τις ακόλουθες αλλαγές αντικαθιστώντας το wifi ssid, τον κωδικό πρόσβασης και τη διεύθυνση IP RPi.
#define WLAN_SSID " #397" #define WLAN_PASS "farmhouse397" #define MQTT_SERVER "192.168.0.108" #define "led_pin" #define "sensor_input"
Ανεβάστε το σκίτσο και ανοίξτε το Serial Monitor στο 115200
Βήμα 2: Εγκαταστήστε το MQTT Sever and Client στο Raspberry Pi
Αρχικά, εγκαταστήστε τον διακομιστή Mosquitto χρησιμοποιώντας:
sudo apt-get install mosquitto
Εγκαταστήστε το Mosquitto Client χρησιμοποιώντας:
sudo apt-get install mosquitto-clients
Μπορείτε να επικυρώσετε την εγκατάσταση χρησιμοποιώντας:
systemctl status mosquitto.service
Τώρα, θα εγκαταστήσουμε το paho-MQTT χρησιμοποιώντας:
sudo apt-get install python python-pipsudo pip install RPi. GPIO paho-mqtt
Χρησιμοποιήστε αυτές τις εντολές για να δημοσιεύσετε μηνύματα-από raspberry pi (-hostname) έως esp8266-leds (-topic).
mosquitto_pub -h raspberrypi -t "/leds/esp8266" -m "ON"
mosquitto_pub -h raspberrypi -t "/leds/esp8266" -m "OFF"
-h ==> όνομα κεντρικού υπολογιστή ==> raspberrypi (εκτός αν το έχετε αλλάξει)
-t ==> θέμα
-m ==> μήνυμα
Βήμα 3: Εκτελέστε Python Script
Μπορείτε να κατεβάσετε το MQTT_Pi από
github.com/anuragvermaa/MQTT_NodeMCU
Εάν όλα είναι εντάξει, θα πρέπει να μπορείτε να δείτε δεδομένα αισθητήρα στο τερματικό.
Πατήστε Ctrl+C για έξοδο.