6.9 KiB
इंटरनेट पर अपनी नाइटलाइट को नियंत्रित करें - वर्चुअल IoT हार्डवेयर और रास्पबेरी पाई
इस पाठ के इस भाग में, आप अपने रास्पबेरी पाई या वर्चुअल IoT डिवाइस पर MQTT ब्रोकर्स से भेजे गए कमांड्स को सब्सक्राइब करेंगे।
कमांड्स को सब्सक्राइब करें
अगला कदम MQTT ब्रोकर्स से भेजे गए कमांड्स को सब्सक्राइब करना और उनका जवाब देना है।
कार्य
कमांड्स को सब्सक्राइब करें।
-
VS Code में नाइटलाइट प्रोजेक्ट खोलें।
-
यदि आप वर्चुअल IoT डिवाइस का उपयोग कर रहे हैं, तो सुनिश्चित करें कि टर्मिनल वर्चुअल एनवायरनमेंट चला रहा है। यदि आप रास्पबेरी पाई का उपयोग कर रहे हैं, तो आप वर्चुअल एनवायरनमेंट का उपयोग नहीं करेंगे।
-
client_telemetry_topic
की परिभाषा के बाद निम्नलिखित कोड जोड़ें:server_command_topic = id + '/commands'
server_command_topic
वह MQTT टॉपिक है जिसे डिवाइस LED कमांड्स प्राप्त करने के लिए सब्सक्राइब करेगा। -
मुख्य लूप के ठीक ऊपर,
mqtt_client.loop_start()
लाइन के बाद निम्नलिखित कोड जोड़ें:def handle_command(client, userdata, message): payload = json.loads(message.payload.decode()) print("Message received:", payload) if payload['led_on']: led.on() else: led.off() mqtt_client.subscribe(server_command_topic) mqtt_client.on_message = handle_command
यह कोड एक फ़ंक्शन,
handle_command
, को परिभाषित करता है जो एक संदेश को JSON डॉक्यूमेंट के रूप में पढ़ता है औरled_on
प्रॉपर्टी के मान को देखता है। यदि इसेTrue
पर सेट किया गया है, तो LED चालू हो जाती है, अन्यथा यह बंद हो जाती है।MQTT क्लाइंट उस टॉपिक पर सब्सक्राइब करता है जिस पर सर्वर संदेश भेजेगा और जब कोई संदेश प्राप्त होता है तो
handle_command
फ़ंक्शन को कॉल करता है।💁
on_message
हैंडलर सभी सब्सक्राइब किए गए टॉपिक्स के लिए कॉल किया जाता है। यदि आप बाद में ऐसा कोड लिखते हैं जो कई टॉपिक्स को सुनता है, तो आप उस टॉपिक को प्राप्त कर सकते हैं जिस पर संदेश भेजा गया था,message
ऑब्जेक्ट से जो हैंडलर फ़ंक्शन को पास किया गया है। -
उसी तरह कोड चलाएं जैसे आपने असाइनमेंट के पिछले भाग से कोड चलाया था। यदि आप वर्चुअल IoT डिवाइस का उपयोग कर रहे हैं, तो सुनिश्चित करें कि CounterFit ऐप चल रहा है और लाइट सेंसर और LED सही पिन पर बनाए गए हैं।
-
अपने भौतिक या वर्चुअल डिवाइस द्वारा डिटेक्ट किए गए लाइट लेवल को समायोजित करें। प्राप्त किए जा रहे संदेश और भेजे जा रहे कमांड्स टर्मिनल पर लिखे जाएंगे। लाइट लेवल के अनुसार LED चालू और बंद हो जाएगी।
💁 आप इस कोड को code-commands/virtual-device फोल्डर या code-commands/pi फोल्डर में पा सकते हैं।
😀 आपने सफलतापूर्वक अपने डिवाइस को MQTT ब्रोकर्स से कमांड्स का जवाब देने के लिए कोड किया है।
अस्वीकरण:
यह दस्तावेज़ AI अनुवाद सेवा Co-op Translator का उपयोग करके अनुवादित किया गया है। जबकि हम सटीकता सुनिश्चित करने का प्रयास करते हैं, कृपया ध्यान दें कि स्वचालित अनुवाद में त्रुटियां या अशुद्धियां हो सकती हैं। मूल भाषा में उपलब्ध मूल दस्तावेज़ को आधिकारिक स्रोत माना जाना चाहिए। महत्वपूर्ण जानकारी के लिए, पेशेवर मानव अनुवाद की सिफारिश की जाती है। इस अनुवाद के उपयोग से उत्पन्न किसी भी गलतफहमी या गलत व्याख्या के लिए हम जिम्मेदार नहीं हैं।