रास्पबेरी पाई पर एक MQTT सर्वर की मेजबानी

MQTT (संदेश कतारबद्ध टेलीमेट्री ट्रांसपोर्ट) एक हल्का संदेश प्रोटोकॉल है जिसका उपयोग आमतौर पर IoT (इंटरनेट ऑफ थिंग्स) में उपयोग किए जाने वाले उपकरणों के बीच विश्वसनीय और कुशल संचार के लिए किया जाता है। रास्पबेरी पाई पर MQTT सर्वर की मेजबानी करने से आप अपने IoT प्रोजेक्ट्स के लिए एक स्थानीय मैसेजिंग हब बना सकते हैं। यह गाइड आपको रास्पबेरी पाई पर MQTT सर्वर स्थापित करने और चलाने के माध्यम से चलता है।


आपको क्या चाहिए

  1. रसभरी पाई (GPIO समर्थन के साथ कोई भी मॉडल, जैसे, पीआई 3, पीआई 4)
  2. माइक्रो एसडी कार्ड (कम से कम 8GB, कक्षा 10 या बेहतर)
  3. बिजली की आपूर्ति (5V, 2.5a न्यूनतम PI 3 के लिए;
  4. रास्पबेरी पाई ओएस (लाइट या डेस्कटॉप संस्करण)
  5. इंटरनेट कनेक्शन
  6. MQTT ग्राहक (जैसे, ESP8266, ESP32, या MQTT सॉफ्टवेयर टूल्स)

चरण 1: रास्पबेरी पाई को अपडेट करें

  1. सुनिश्चित करें कि आपका रास्पबेरी पाई अद्यतित है:
    sudo apt update && sudo apt upgrade -y
    

चरण 2: मच्छर MQTT ब्रोकर स्थापित करें

मच्छर एक हल्का और व्यापक रूप से इस्तेमाल किया जाने वाला MQTT ब्रोकर है।

  1. मच्छर और उसके ग्राहक उपकरण स्थापित करें:

    sudo apt install -y mosquitto mosquitto-clients
    
  2. बूट पर शुरू करने के लिए मच्छर को सक्षम करें:

    sudo systemctl enable mosquitto
    
  3. मच्छर सेवा शुरू करें:

    sudo systemctl start mosquitto
    

चरण 3: MQTT ब्रोकर का परीक्षण करें

  1. अपने रास्पबेरी पाई के लिए दो टर्मिनल विंडो या एसएसएच सत्र खोलें।

  2. पहले टर्मिनल में, एक परीक्षण विषय की सदस्यता लें:

    mosquitto_sub -h localhost -t test/topic
    
  3. दूसरे टर्मिनल में, एक परीक्षण संदेश प्रकाशित करें:

    mosquitto_pub -h localhost -t test/topic -m "Hello, MQTT!"
    
  4. आपको संदेश "हैलो, MQTT!" देखना चाहिए। पहले टर्मिनल में।


चरण 4: बाहरी कनेक्शन के लिए मच्छर को कॉन्फ़िगर करें

  1. मच्छर कॉन्फ़िगरेशन फ़ाइल खोलें:

    sudo nano /etc/mosquitto/mosquitto.conf
    
  2. बाहरी कनेक्शन की अनुमति देने के लिए निम्न पंक्तियाँ जोड़ें:

    listener 1883
    allow_anonymous true
    

    टिप्पणी: उत्पादन वातावरण के लिए, अनाम पहुंच की अनुमति देने के बजाय उपयोगकर्ता प्रमाणीकरण सेट करें।

  3. परिवर्तन लागू करने के लिए मच्छर सेवा को पुनरारंभ करें:

    sudo systemctl restart mosquitto
    
  4. MQTT क्लाइंट टूल (जैसे, MQTT.FX या MQTT एक्सप्लोरर) का उपयोग करके एक ही नेटवर्क पर किसी अन्य डिवाइस से कनेक्शन का परीक्षण करें।


चरण 5: MQTT ब्रोकर को सुरक्षित करें (वैकल्पिक)

  1. पासवर्ड प्रमाणीकरण सक्षम करें:

    sudo mosquitto_passwd -c /etc/mosquitto/passwd <username>
    
    • उपयोगकर्ता के लिए एक पासवर्ड दर्ज करें और पुष्टि करें।
  2. पासवर्ड फ़ाइल का उपयोग करने के लिए मच्छर कॉन्फ़िगरेशन फ़ाइल को अपडेट करें:

    allow_anonymous false
    password_file /etc/mosquitto/passwd
    
  3. मच्छर सेवा को पुनरारंभ करें:

    sudo systemctl restart mosquitto
    
  4. उपयोगकर्ता नाम और पासवर्ड का उपयोग करके कनेक्शन का परीक्षण करें।


चरण 6: IoT डिवाइस को MQTT ब्रोकर से कनेक्ट करें

  1. ESP8266/ESP32 के लिए: अपने रास्पबेरी पाई MQTT ब्रोकर पर विषयों को प्रकाशित/सदस्यता लेने के लिए अपने IoT उपकरणों को प्रोग्राम करने के लिए Arduino IDE का उपयोग करें।

    #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 एक्सप्लोरर, या पायथन के साथ उपयोग करें 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
    • अपने रास्पबेरी पाई पर फ़ायरवॉल सेटिंग्स की जाँच करें।
  2. प्रमाणीकरण त्रुटियां:

    • मच्छर कॉन्फ़िगरेशन और क्लाइंट सेटअप में उपयोगकर्ता नाम और पासवर्ड को सत्यापित करें।
  3. कनेक्शन नहीं हो सका:

    • सुनिश्चित करें कि डिवाइस रास्पबेरी पाई के समान नेटवर्क पर है।
    • चेक करें कि पोर्ट 1883 खुला है।

MQTT के आवेदन

  1. IoT डिवाइस संचार
  2. गृह स्वचालन प्रणाली
  3. वास्तविक समय डेटा स्ट्रीमिंग
  4. सुदूर निगरानी और नियंत्रण

निष्कर्ष

रास्पबेरी पाई पर MQTT सर्वर की मेजबानी करना आपके IoT परियोजनाओं के लिए हल्के और विश्वसनीय संचार को सक्षम करने का एक शानदार तरीका है। इस गाइड का पालन करके, आप एक मच्छर MQTT ब्रोकर को सेट और सुरक्षित कर सकते हैं, 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.