# ఇంటర్నెట్ ద్వారా మీ నైట్‌లైట్‌ని నియంత్రించండి - వర్చువల్ ఐఒటి హార్డ్‌వేర్ మరియు రాస్ప్బెర్రీ పై ఐఒటి డివైస్‌ను *test.mosquitto.org* తో MQTT ఉపయోగించి టెలిమెట్రీ విలువలను పంపడానికి, లైట్ సెన్సార్ రీడింగ్‌తో కమ్యూనికేట్ చేయడానికి, మరియు LED ను నియంత్రించడానికి కమాండ్లు స్వీకరించడానికి కోడ్ చేయాలి. పాఠం ఈ భాగంలో, మీ రాస్ప్బెర్రీ పై లేదా వర్చువల్ ఐఒటి డివైస్‌ను MQTT బ్రోకర్‌కు కనెక్ట్ చేస్తారు. ## MQTT క్లయింట్ ప్యాకేజ్ ఇన్‌స్టాల్ చేయండి MQTT బ్రోకర్‌తో కమ్యూనికేట్ చేయడానికి, మీరు మీ పైపై లేదా వర్చువల్ డివైస్ ఉపయోగిస్తుంటే వర్చువల్ ఎన్‌విరాన్‌మెంట్‌లో MQTT లైబ్రరీపైపిప్ ప్యాకేజి ఇన్‌స్టాల్ చేయాలి. ### పని పైపిప్ ప్యాకేజి ఇన్‌స్టాల్ చేయండి 1. నైట్‌లైట్ ప్రాజెక్ట్‌ను VS కోడ్‌లో తెరవండి. 1. మీరు వర్చువల్ ఐఒటి డివైస్ ఉపయోగిస్తుంటే, టెర్మినల్ వర్చువల్ ఎన్‌విరాన్‌మెంట్‌ను నడుపుతున్నదిగా నిర్ధారించుకోండి. మీరు రాస్ప్బెర్రీ పై ఉపయోగిస్తుంటే వర్చువల్ ఎన్‌విరాన్‌మెంట్ అవసరం ఉండదు. 1. MQTT పైపిప్ ప్యాకేజిని ఇన్‌స్టాల్ చేయడానికి ఈ క్రింది కమాండ్ నడపండి: ```sh pip3 install paho-mqtt ``` ## డివైస్‌ను కోడ్ చెయండి డివైస్ కోడ్ చేయడానికి సిద్ధంగా ఉంది. ### పని డివైస్ కోడ్ రాయండి. 1. `app.py` ఫైల్ టాప్‌లో ఈ దిగువ ఇంపోర్ట్ ని జోడించండి: ```python import paho.mqtt.client as mqtt ``` `paho.mqtt.client` లైబ్రరీ మీ యాప్‌కి MQTT పై కమ్యూనికేట్ అయ్యే వీలునిస్తుంది. 1. లైట్ సెన్సార్ మరియు LED నిర్వచనాల తర్వాత ఈ క్రింది కోడ్ జోడించండి: ```python id = '' client_name = id + 'nightlight_client' ``` `` స్థానంలో ఈ డివైస్ క్లయింట్ పేరు మరియు ఈ డివైస్ ప్రచురించే మరియు సబ్‌స్క్రైబ్ చేసే టాపిక్స్ కోసం ఉపయోగించే ప్రత్యేక ID ని చేర్చండి. *test.mosquitto.org* బ్రోకర్ పబ్లిక్ మరియు ఈ అసైన్మెంట్తో పని చేసుకునే ఇతర విద్యార్థులు సహా అనేక పిపుల్ ఉపయోగిస్తున్నారు. ప్రత్యేక MQTT క్లయింట్ పేరు మరియు టాపిక్ పేర్లు మీ కోడ్ ఎవరూ ఇతరుల కోడ్‌తో ఘర్షణ చెందకుండా చేస్తాయి. ఈ ID అవసరం తరువాత సర్వర్ కోడ్ సృష్టించేప్పుడు కూడా ఉంటుంది. > 💁 మీరు [GUIDGen](https://www.guidgen.com) వంటి వెబ్‌సైట్ ఉపయోగించి ప్రత్యేక IDని సృష్టించుకోవచ్చు. `client_name` అనేది ఈ MQTT క్లయింట్‌కు బ్రోకర్ పై ప్రత్యేక పేరు. 1. కొత్త కోడ్ కింద ఈ క్రింది కోడ్ జోడించి MQTT క్లయింట్ ఆబ్జెక్టు సృష్టించండి మరియు MQTT బ్రోకర్‌కు కనెక్ట్ అవ్వండి: ```python mqtt_client = mqtt.Client(client_name) mqtt_client.connect('test.mosquitto.org') mqtt_client.loop_start() print("MQTT connected!") ``` ఈ కోడ్ క్లయింట్ ఆబ్జెక్టును సృష్టిస్తుంది, పబ్లిక్ MQTT బ్రోకర్‌కు కనెక్ట్ అవుతుంది, మరియు బ్యాక్‌గ్రౌండ్ థ్రెడ్‌లో నడిచే ప్రాసెసింగ్ లూప్ మొదలుపెడుతుంది, ఇది సబ్‌స్క్రైబ్ చేసుకున్న ఏదైనా టాపిక్‌లపై సందేశాలు వినుస్తుంది. 1. అసైన్మెంట్ యొక్క గత భాగం కోడ్ నడిపిన విధంగా ఈ కోడ్‌ను నడపండి. మీరు వర్చువల్ ఐఒటి డివైస్ ఉపయోగిస్తుంటే, కౌంటర్‌ఫిట్ యాప్ నడుస్తుందని మరియు లైట్ సెన్సార్ మరియు LED సరిగా ఉన్న పిన్లపై సృష్టించబడ్డాయని నిర్ధారించుకోండి. ```output (.venv) ➜ nightlight python app.py MQTT connected! Light level: 0 Light level: 0 ``` > 💁 మీరు ఈ కోడ్‌ను [code-mqtt/virtual-device](../../../../../1-getting-started/lessons/4-connect-internet/code-mqtt/virtual-device) ఫోల్డర్ లేదా [code-mqtt/pi](../../../../../1-getting-started/lessons/4-connect-internet/code-mqtt/pi) ఫోల్డర్‌లో కనుగొనవచ్చు. 😀 మీరు విజయవంతంగా మీ డివైస్‌ను MQTT బ్రోకర్‌కు కనెక్ట్ చేశారు. --- **డిస్క్లెయిమర్**: ఈ డాక్యుమెంట్‌ను AI అనువాద సేవ [Co-op Translator](https://github.com/Azure/co-op-translator) ఉపయోగించి అనువదించబడ్డది. మేము ఖచ్చితత్వానికి శ్రద్ధ వహిస్తున్నప్పటికీ, ఆటోమేటెడ్ అనువాదాల్లో తప్పిదాలు లేదా లోపాలు ఉండవచ్చు అని దయచేసి గమనించండి. మూల డాక్యుమెంట్‌ను ఒక అధికారం ఉన్న మూలంగా పరిగణించాలి. క్రిటికల్ సమాచారం కోసం, నిపుణుల చేతిలో మానవ అనువాదం సిఫారసు చేయబడుతుంది. ఈ అనువాదాన్ని ఉపయోగించడంతో కలిగే ఏవైనా తప్పుడు అర్థం చేసుకోవడం లేదా నిర్వచన లోపాల వల్ల మేము బాధ్యత వహించము.