אירוח שרת MQTT ב- Raspberry Pi

MQTT (הובלת טלמטריה של תור הודעות) הוא פרוטוקול העברת הודעות קל משמש הנפוץ ביישומי IoT (Internet of Things) לתקשורת אמינה ויעילה בין מכשירים. אירוח שרת MQTT ב- Raspberry PI מאפשר לך ליצור רכזת העברת הודעות מקומית לפרויקטים של IoT שלך. מדריך זה מעביר אותך בהגדרת והפעלת שרת MQTT ב- Raspberry Pi.


מה תצטרך

  1. Raspberry Pi (כל דגם עם תמיכה ב- GPIO, למשל, pi 3, pi 4)
  2. כרטיס MicroSD (לפחות 8 ג'יגה -בייט, כיתה 10 ומעלה)
  3. ספק כוח (5V, 2.5A מינימום עבור PI 3; 5V, 3A עבור PI 4)
  4. Raspberry pi os (גרסת לייט או שולחן עבודה)
  5. חיבור לאינטרנט
  6. לקוחות MQTT (למשל, ESP8266, ESP32 או MQTT כלי תוכנה)

שלב 1: עדכן את ה- Raspberry Pi

  1. ודא ש- Raspberry Pi שלך מעודכן:
    sudo apt update && sudo apt upgrade -y
    

שלב 2: התקן מתווך MSquitto MQTT

Mosquitto הוא מתווך MQTT קל משקל.

  1. התקן MOSQUITTO וכלי הלקוח שלה:

    sudo apt install -y mosquitto mosquitto-clients
    
  2. אפשר MOSQUITTO להתחיל באתחול:

    sudo systemctl enable mosquitto
    
  3. התחל את שירות Mosquitto:

    sudo systemctl start mosquitto
    

שלב 3: בדוק את מתווך MQTT

  1. פתח שני חלונות מסוף או מפגשי SSH ל- Raspberry Pi שלך.

  2. בטרמינל הראשון, הירשם לנושא מבחן:

    mosquitto_sub -h localhost -t test/topic
    
  3. בטרמינל השני, פרסם הודעת מבחן:

    mosquitto_pub -h localhost -t test/topic -m "Hello, MQTT!"
    
  4. אתה אמור לראות את ההודעה "שלום, mqtt!" בטרמינל הראשון.


שלב 4: קביעת תצורה של MOSQUITTO לחיבורים חיצוניים

  1. פתח את קובץ התצורה של Mosquitto:

    sudo nano /etc/mosquitto/mosquitto.conf
    
  2. הוסף את השורות הבאות כדי לאפשר חיבורים חיצוניים:

    listener 1883
    allow_anonymous true
    

    פֶּתֶק: לסביבות ייצור, הגדר אימות משתמשים במקום לאפשר גישה אנונימית.

  3. הפעל מחדש את שירות Mosquitto כדי להחיל שינויים:

    sudo systemctl restart mosquitto
    
  4. בדוק את החיבור ממכשיר אחר באותה רשת באמצעות כלי לקוח MQTT (למשל, MQTT.FX או MQTT Explorer).


שלב 5: אבטח את מתווך MQTT (אופציונלי)

  1. אפשר אימות סיסמא:

    sudo mosquitto_passwd -c /etc/mosquitto/passwd <username>
    
    • הזן ואשר סיסמה למשתמש.
  2. עדכן את קובץ התצורה של Mosquitto כדי להשתמש בקובץ הסיסמה:

    allow_anonymous false
    password_file /etc/mosquitto/passwd
    
  3. הפעל מחדש את שירות Mosquitto:

    sudo systemctl restart mosquitto
    
  4. בדוק את החיבור באמצעות שם המשתמש והסיסמה.


שלב 6: חבר התקני IoT למתווך MQTT

  1. עבור ESP8266/ESP32: השתמש ב- Arduino IDE כדי לתכנת את מכשירי ה- IoT שלך כדי לפרסם/להירשם לנושאים במתווך ה- Raspberry Pi Mqtt שלך.

    #include <ESP8266WiFi.h>
    #include <PubSubClient.h>
    
    const char* ssid = "YourSSID";
    const char* password = "YourPassword";
    const char* mqtt_server = "<raspberry-pi-ip>";
    
    WiFiClient espClient;
    PubSubClient client(espClient);
    
    void setup() {
      WiFi.begin(ssid, password);
      client.setServer(mqtt_server, 1883);
    }
    
    void loop() {
      if (!client.connected()) {
        client.connect("ESPClient");
      }
      client.loop();
      client.publish("test/topic", "Hello from ESP8266!");
      delay(1000);
    }
    
  2. עבור לקוחות תוכנה: השתמש ב- MQTT.FX, MQTT Explorer או Python עם paho-mqtt סִפְרִיָה.

    import paho.mqtt.client as mqtt
    
    def on_connect(client, userdata, flags, rc):
        print("Connected with result code "+str(rc))
        client.subscribe("test/topic")
    
    def on_message(client, userdata, msg):
        print(msg.topic+" "+str(msg.payload))
    
    client = mqtt.Client()
    client.on_connect = on_connect
    client.on_message = on_message
    
    client.connect("<raspberry-pi-ip>", 1883, 60)
    
    client.loop_forever()
    

פתרון בעיות

  1. לא יכול להתחבר למתווך MQTT:

    • ודא שמוסקיטו פועל: sudo systemctl status mosquitto
    • בדוק את הגדרות חומת האש ב- Raspberry Pi שלך.
  2. שגיאות אימות:

    • אמת את שם המשתמש והסיסמה בתצורת הושוס והגדרת הלקוחות.
  3. חיבור סירב:

    • ודא שהמכשיר נמצא באותה רשת כמו ה- Raspberry Pi.
    • בדוק כי היציאה 1883 פתוחה.

יישומים של MQTT

  1. תקשורת מכשירי IoT
  2. מערכות אוטומציה ביתיות
  3. הזרמת נתונים בזמן אמת
  4. ניטור ובקרה מרחוק

מַסְקָנָה

אירוח שרת MQTT ב- Raspberry Pi הוא דרך מצוינת לאפשר תקשורת קלה ואמינה לפרויקטים של IoT שלך. על ידי ביצוע מדריך זה, תוכלו להגדיר ולהבטיח מתווך MQTT Mosquitto, לחבר מכשירי IoT ולהתחיל לבנות יישומים חזקים. התנסו בתצורות שונות כדי לחקור את מלוא הפוטנציאל של MQTT!

השאירו תגובה

Notice an Issue? Have a Suggestion?
If you encounter a problem or have an idea for a new feature, let us know! Report a problem or request a feature here.