# आफ्नो नाइटलाइटलाई इन्टरनेटमार्फत नियन्त्रण गर्नुहोस् - 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. MQTT क्लाइन्ट पुन: जडान हुँदा आदेश टपिकलाई सब्सक्राइब गर्न `reconnectMQTTClient` फंक्शनको अन्त्यमा निम्न लाइन थप्नुहोस्: ```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-bit इन्टिजरहरूको एरेको रूपमा प्राप्त हुन्छ, त्यसैले यसलाई पाठको रूपमा व्यवहार गर्न क्यारेक्टर एरेमा रूपान्तरण गर्न आवश्यक छ। सन्देशमा JSON डकुमेन्ट हुन्छ, र यसलाई ArduinoJson लाइब्रेरी प्रयोग गरेर डिकोड गरिन्छ। JSON डकुमेन्टको `led_on` प्रोपर्टी पढिन्छ, र मानको आधारमा LED अन वा अफ गरिन्छ। 1. `createMQTTClient` फंक्शनमा निम्न कोड थप्नुहोस्: ```cpp client.setCallback(clientCallback); ``` यो कोडले `clientCallback` लाई MQTT ब्रोकरबाट सन्देश प्राप्त हुँदा कल गर्नुपर्ने कलब्याकको रूपमा सेट गर्दछ। > 💁 `clientCallback` ह्यान्डलर सबै सब्सक्राइब गरिएका टपिकहरूको लागि कल गरिन्छ। यदि तपाईं पछि धेरै टपिकहरू सुन्ने कोड लेख्नुहुन्छ भने, तपाईं कलब्याक फंक्शनमा पास गरिएको `topic` प्यारामिटरबाट सन्देश पठाइएको टपिक प्राप्त गर्न सक्नुहुन्छ। 1. कोडलाई आफ्नो Wio Terminal मा अपलोड गर्नुहोस्, र Serial Monitor प्रयोग गरेर प्रकाश स्तरहरू 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) प्रयोग गरी अनुवाद गरिएको हो। हामी यथासम्भव सटीकता सुनिश्चित गर्न प्रयास गर्छौं, तर कृपया ध्यान दिनुहोस् कि स्वचालित अनुवादहरूमा त्रुटि वा अशुद्धता हुन सक्छ। यसको मूल भाषामा रहेको मूल दस्तावेज़लाई आधिकारिक स्रोत मानिनुपर्छ। महत्त्वपूर्ण जानकारीका लागि, व्यावसायिक मानव अनुवाद सिफारिस गरिन्छ। यस अनुवादको प्रयोगबाट उत्पन्न हुने कुनै पनि गलतफहमी वा गलत व्याख्याको लागि हामी जिम्मेवार हुने छैनौं।