6.8 KiB
ఇంటర్నెట్ ద్వారా మీ నైట్లైట్ను నియంత్రించండి - Wio టెర్మినల్
ఈ భాగంలో, మీరు MQTT బ్రోకర్ నుండి Wio టెర్మినల్కు పంపబడే కమాండ్లను సబ్స్క్రైబ్ చేస్తారు.
కమాండ్లను సబ్స్క్రైబ్ చేయండి
తరవాతి దశ MQTT బ్రోకర్ నుండి పంపబడే కమాండ్లను సబ్స్క్రైబ్ చేసి, వాటికి స్పందించడం.
పనిని
కమాండ్లను సబ్స్క్రైబ్ చేయండి.
-
VS కోడ్లో నైట్లైట్ ప్రాజెక్ట్ను ఓపెన్ చేయండి.
-
config.hఫైల్ లో దిగువ భాగంలో క్రింది కో드를 జోడించి కమాండ్ల కోసం టాపిక్ పేరును నిర్వచించండి:const string SERVER_COMMAND_TOPIC = ID + "/commands";SERVER_COMMAND_TOPICఅనేది డివైస్ సబ్స్క్రైబ్ అయ్యే టాపిక్, LED కమాండ్లను పొందడానికి. -
MQTT క్లయింట్ మళ్లీ కనెక్ట్ అయినప్పుడు కమాండ్ టాపిక్కు సబ్స్క్రైబ్ అయ్యేలా
reconnectMQTTClientఫంక్షన్ చివర క్రింది లైన్ను జోడించండి:client.subscribe(SERVER_COMMAND_TOPIC.c_str()); -
reconnectMQTTClientఫంక్షన్ కింద క్రింది కోడ్ను జోడించండి.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<JsonObject>(); bool led_on = obj["led_on"]; if (led_on) digitalWrite(D0, HIGH); else digitalWrite(D0, LOW); }ఈ ఫంక్షన్ MQTT క్లయింట్ సర్వర్ నుండి సందేశం పొందినప్పుడు పిలవబడే కాల్బ్యాక్ అవుతుంది.
సందేశం అన్సైండ్ 8-బిట్ ఇంటిగర్స్ అర్రేకాగా వస్తుంది, కావున దాన్ని టెక్స్ట్గా పరిగణించేందుకు క్యారెక్టర్ అర్రేగా మార్పిడి చేయాలి.
సందేశం JSON డాక్యుమెంట్ని కలిగి ఉంటుంది, దీనిని ArduinoJson లైబ్రరీతో డీకోడ్ చేస్తారు. JSON డాక్యుమెంట్ లోని
led_onప్రాపర్టీని చదివి, విలువ ఆధారంగా LEDని ఆన్ లేదా ఆఫ్ చేస్తారు. -
createMQTTClientఫంక్షన్లో క్రింది కోడ్ జోడించండి:client.setCallback(clientCallback);ఈ కోడ్ MQTT బ్రోకర్ నుండి సందేశం అందినప్పుడు
clientCallbackను కాల్బ్యాక్గా సెట్ చేస్తుంది.💁
clientCallbackహండ్ర్లర్ అన్ని సబ్స్క్రైబ్ చేసిన టాపిక్లకు పిలవబడుతుంది. తరువాత మీరు బహు టాపిక్లను వింటే, సందేశం పంపబడిన టాపిక్ను కాల్బ్యాక్ ఫంక్షన్కు పంపినtopicప్యారామీటర్ నుండి పొందవచ్చు. -
మీ కోడ్ను Wio టెర్మినల్కు అప్లోడ్ చేసి, సీరియల్ మానిటర్ ద్వారా MQTT బ్రోకర్కు పంపబడుతున్న లైట్ స్థాయిలను గమనించండి.
-
మీ భౌతిక లేదా వర్చువల్ డివైస్ ద్వారా లైట్ స్థాయిలను సర్దుబాటు చేయండి. టెర్మినల్లో సందేశాలు అందుతూ, కమాండ్లు పంపబడుతాయని మరియు లైట్ స్థాయిల ఆధారంగా LED ఆన్/ఆఫ్ అవుతున్నది చూడవచ్చు.
💁 మీరు ఈ కోడ్ను code-commands/wio-terminal ఫోల్డర్లో కనుగొనవచ్చు.
😀 మీరు విజయవంతంగా MQTT బ్రోకర్ నుండి కమాండ్లకు స్పందించే విధంగా మీ డివైస్ను కోడ్ చేశారు.
స్పష్టం:
ఈ పత్రం Co-op Translator అనే AI అనువాద సేవను ఉపయోగించి అనువదించబడింది. మేము సరివారిగా అనువదించేందుకు ప్రయత్నించినప్పటికీ, స్వయంచాలక అనువాదాల్లో పొరపాట్లు లేదా తప్పులు ఉండవచ్చు. అసలు పత్రం_NATIVE_ భాషలోనిది అధికారిక మూలగా పరిగణించాలి. కీలకమైన సమాచారానికి, వృత్తిపరమైన మానవ అనువాదం చేయించుకోవడం ఉత్తమం. ఈ అనువాదం ఉపయోగం వల్ల కలిగే ఏదైనా అపార్థాలు లేదా తప్పు వివరాలకు మేమ్స్ బాధ్యత వహించము.