# इंटरनेट के माध्यम से अपनी नाइटलाइट को नियंत्रित करें - Wio Terminal इस पाठ के इस भाग में, आप अपने Wio Terminal को MQTT ब्रोकर्स से भेजे गए कमांड्स को सब्सक्राइब करेंगे। ## कमांड्स को सब्सक्राइब करें अगला कदम MQTT ब्रोकर्स से भेजे गए कमांड्स को सब्सक्राइब करना और उनका जवाब देना है। ### कार्य कमांड्स को सब्सक्राइब करें। 1. VS Code में नाइटलाइट प्रोजेक्ट खोलें। 1. `config.h` फाइल के अंत में निम्नलिखित कोड जोड़ें ताकि कमांड्स के लिए टॉपिक नाम को परिभाषित किया जा सके: ```cpp const string SERVER_COMMAND_TOPIC = ID + "/commands"; ``` `SERVER_COMMAND_TOPIC` वह टॉपिक है जिसे डिवाइस LED कमांड्स प्राप्त करने के लिए सब्सक्राइब करेगा। 1. `reconnectMQTTClient` फंक्शन के अंत में निम्नलिखित लाइन जोड़ें ताकि MQTT क्लाइंट के फिर से कनेक्ट होने पर कमांड टॉपिक को सब्सक्राइब किया जा सके: ```cpp client.subscribe(SERVER_COMMAND_TOPIC.c_str()); ``` 1. `reconnectMQTTClient` फंक्शन के नीचे निम्नलिखित कोड जोड़ें: ```cpp void clientCallback(char *topic, uint8_t *payload, unsigned int length) { char buff[length + 1]; for (int i = 0; i < length; i++) { buff[i] = (char)payload[i]; } buff[length] = '\0'; Serial.print("Message received:"); Serial.println(buff); DynamicJsonDocument doc(1024); deserializeJson(doc, buff); JsonObject obj = doc.as(); bool led_on = obj["led_on"]; if (led_on) digitalWrite(D0, HIGH); else digitalWrite(D0, LOW); } ``` यह फंक्शन वह कॉलबैक होगा जिसे MQTT क्लाइंट सर्वर से कोई संदेश प्राप्त होने पर कॉल करेगा। संदेश unsigned 8-बिट इंटीजर की एक ऐरे के रूप में प्राप्त होता है, इसलिए इसे टेक्स्ट के रूप में ट्रीट करने के लिए एक कैरेक्टर ऐरे में कन्वर्ट करना होगा। संदेश में एक JSON डॉक्यूमेंट होता है, जिसे ArduinoJson लाइब्रेरी का उपयोग करके डिकोड किया जाता है। JSON डॉक्यूमेंट की `led_on` प्रॉपर्टी को पढ़ा जाता है, और उसके मान के आधार पर LED को चालू या बंद किया जाता है। 1. `createMQTTClient` फंक्शन में निम्नलिखित कोड जोड़ें: ```cpp client.setCallback(clientCallback); ``` यह कोड `clientCallback` को MQTT ब्रोकर्स से संदेश प्राप्त होने पर कॉल करने के लिए सेट करता है। > 💁 `clientCallback` हैंडलर सभी सब्सक्राइब किए गए टॉपिक्स के लिए कॉल किया जाता है। यदि आप बाद में ऐसा कोड लिखते हैं जो कई टॉपिक्स को सुनता है, तो आप उस टॉपिक को प्राप्त कर सकते हैं जिस पर संदेश भेजा गया था, `topic` पैरामीटर से जो कॉलबैक फंक्शन को पास किया जाता है। 1. कोड को अपने Wio Terminal पर अपलोड करें, और सीरियल मॉनिटर का उपयोग करके देखें कि लाइट लेवल्स MQTT ब्रोकर्स को कैसे भेजे जा रहे हैं। 1. अपने फिजिकल या वर्चुअल डिवाइस द्वारा डिटेक्ट किए गए लाइट लेवल्स को एडजस्ट करें। आप देखेंगे कि टर्मिनल में संदेश प्राप्त हो रहे हैं और कमांड्स भेजे जा रहे हैं। आप यह भी देखेंगे कि लाइट लेवल के आधार पर LED चालू और बंद हो रही है। > 💁 आप इस कोड को [code-commands/wio-terminal](../../../../../1-getting-started/lessons/4-connect-internet/code-commands/wio-terminal) फोल्डर में पा सकते हैं। 😀 आपने सफलतापूर्वक अपने डिवाइस को MQTT ब्रोकर्स से कमांड्स का जवाब देने के लिए कोड किया है। **अस्वीकरण**: यह दस्तावेज़ AI अनुवाद सेवा [Co-op Translator](https://github.com/Azure/co-op-translator) का उपयोग करके अनुवादित किया गया है। जबकि हम सटीकता सुनिश्चित करने का प्रयास करते हैं, कृपया ध्यान दें कि स्वचालित अनुवाद में त्रुटियां या अशुद्धियां हो सकती हैं। मूल भाषा में उपलब्ध मूल दस्तावेज़ को आधिकारिक स्रोत माना जाना चाहिए। महत्वपूर्ण जानकारी के लिए, पेशेवर मानव अनुवाद की सिफारिश की जाती है। इस अनुवाद के उपयोग से उत्पन्न किसी भी गलतफहमी या गलत व्याख्या के लिए हम जिम्मेदार नहीं हैं।