# ఇన్టర్నెట్ ద్వారా మీ నైట్‌లైట్‌ని నియంత్రించండి - వర్చువల్ IoT హార్డ్వేర్ మరియు రాస్ప్బెర్రి పై పాఠం యొక్క ఈ భాగంలో, మీరు MQTT బ్రోకు నుండి మీ రాస్ప్బెర్రి పై లేదా వర్చువల్ IoT డివైస్‌కు పంపబడే ఆదేశాలకు సభ్యత్వం ఇవ్వబోతున్నారు. ## ఆదేశాలకు సభ్యత్వం పొందండి తదుపరి దశ MQTT బ్రోకు నుండి పంపబడే ఆదేశాలకు సభ్యత్వం పొందడం మరియు వాటికి స్పందించడం. ### పని ఆదేశాలకు సభ్యత్వం పొందండి. 1. VS కోడ్‌లో నైట్‌లైట్ ప్రాజెక్ట్‌ను తెరవండి. 1. మీరు వర్చువల్ IoT డివైస్‌ను ఉపయోగిస్తుంటే, టెర్మినల్ వర్చువల్ వాతావరణం నడుస్తున్నదిగా నిర్ధారించండి. మీరు రాస్ప్బెర్రి పై ఉపయోగిస్తుంటే, వర్చువల్ వాతావరణం ఉపయోగించరు. 1. `client_telemetry_topic` నిర్వచనాల తర్వాత క్రింది కోడ్‌ను జతచేయండి: ```python server_command_topic = id + '/commands' ``` `server_command_topic` అనేది డివైస్ ఆ LED ఆదేశాలు అందుకోవడానికి సభ్యత్వం పొందే MQTT టాపిక్. 1. `mqtt_client.loop_start()` లైనుకు మించి, ప్రధాన లూప్‌కు కింద క్రింది కోడ్‌ను జతచేయండి: ```python 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` ఆబ్జెక్ట్ నుండి పొందవచ్చు, అది హ్యాండ్లర్ ఫంక్షన్‌కు పాసవుతుంది. 1. గత భాగం నుండి కోడ్‌ను నడిపినట్లుగానే ఈ కోడ్‌ని నడిపించండి. మీరు వర్చువల్ IoT డివైస్ ఉపయోగిస్తుంటే, కౌంటర్‌ఫిట్ యాప్ నడుస్తోంది మరియు లైట్ సెన్సార్ మరియు LED సరైన పిన్లపై సృష్టించబడ్డాయి అని నిర్ధారించండి. 1. మీ భౌతిక లేదా వర్చువల్ డివైస్ ద్వారా డిటెక్ట్ అయ్యే లైట్ స్థాయిలను సర్దుబాటు చేయండి. మెసేజులు అందుతున్నాయి మరియు ఆదేశాలు పంపబడుతున్నాయి అని టెర్మినల్‌లో రాయబడతాయి. లైట్ స్థాయి ఆధారంగా LED ఆన్ మరియు ఆఫ్ అవుతుంది. > 💁 మీరు ఈ కోడ్‌ని [code-commands/virtual-device](../../../../../1-getting-started/lessons/4-connect-internet/code-commands/virtual-device) ఫోల్డర్ లేదా [code-commands/pi](../../../../../1-getting-started/lessons/4-connect-internet/code-commands/pi) ఫోల్డర్‌లో పొందొచ్చు. 😀 మీరు విజయవంతంగా మీ డివైస్‌ని MQTT బ్రోకు నుండి వచ్చే ఆదేశాలకు స్పందించేలా కోడ్ చేశారు. --- **తగ్గింపు నోటీసు**: ఈ డాక్యుమెంట్‌ను AI అనువాద సేవ [Co-op Translator](https://github.com/Azure/co-op-translator) ఉపయోగించి అనువదించబడింది. మేము ఖచ్చితత్వానికి ప్రయత్నిస్తామని ఉన్నప్పటికీ, ఆటోమేటెడ్ అనువాదాలలో పొరపాట్లు లేదా తప్పుడు పదొచ్చులు ఉండి ఉండొచ్చు. మౌలిక భాషలో ఉన్న అసలు డాక్యుమెంట్‌ను అధికారిక మూలంలా పరిగణించాలి. ముఖ్యమైన సమాచారం కోసం, వ్యావసాయిక మానవ అనువాదం సిఫార్సు చేయబడుతుంది. ఈ అనువాదం వాడుక కారణంగా ఏదైనా అపర్థం లేదా తప్పుదోవపోవడంపై మేము బాధ్యత వహించము.