You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
IoT-For-Beginners/translations/te/2-farm/lessons/4-migrate-your-plant-to-the.../single-board-computer-conne...

11 KiB

మీ IoT డివైస్‌ను క్లౌడ్ కు కనెక్ట్ చెయ్యండి - వర్చువల్ IoT హార్డ్వేర్ మరియు రాస్ప్బెరీ పి

ఈ పాఠంలో, మీరు మీ వర్చువల్ IoT డివైస్ లేదా రాస్ప్బెరీ పి‌ను మీ IoT హబ్ కు కనెక్ట్ చేసి, టెలిమెట్రీ పంపడం మరియు ఆదేశాలు స్వీకరించడాన్ని నేర్చుకుంటారు.

మీ డివైస్‌ను IoT హబ్‌కు కనెక్ట్ చేయండి

తర్వాతి అడుగు మీ డివైస్‌ను IoT హబ్ కు కనెక్ట్ చేయడం.

టాస్క్ - IoT హబ్‌కు కనెక్ట్ అవ్వండి

  1. VS కోడ్‌లో soil-moisture-sensor ఫోల్డర్ ను తెరవండి. మీరు వర్చువల్ IoT డివైస్ ఉపయోగిస్తునట్లయితే, టెర్మినల్‌లో వర్చువల్ ఎన్విరాన్‌మెంట్ నడుస్తున్నదని నిర్ధారించుకోండి.

  2. కొన్ని అదనపు పిప్ ప్యాకేజిలను ఇన్ స్టాల్ చేయండి:

    pip3 install azure-iot-device
    

    azure-iot-device అనేది మీ IoT హబ్ తో కమ్యూనికేట్ చేసేందుకు ఉపయోగించే లైబ్రరీ.

  3. app.py ఫైల్ టాప్‌లో, జేత్ ఉన్న ఇంపోర్టుల కింద, క్రింది ఇంపోర్టులు జోడించండి:

    from azure.iot.device import IoTHubDeviceClient, Message, MethodResponse
    

    ఈ కోడ్ మీ IoT హబ్ తో కమ్యూనికేట్ చేయడానికి SDKని ఇంపోర్ట్ చేస్తుంది.

  4. import paho.mqtt.client as mqtt లైన్ తీసివేయండి, ఎందుకంటే ఈ లైబ్రరీ ఇక అవసరం లేదు. MQTT కోడ్ ను, టాపిక్ నేమ్స్ సహా, mqtt_client ఉపయోగించే అన్ని కోడ్, మరియు handle_command ను తీసివేయండి. while True: లూప్ నిలుపుకోండి, కేవలం mqtt_client.publish లైన్ ఈ లూప్ నుండి తొలగించండి.

  5. ఇంపోర్ట్ స్టేట్మెంట్స్ కింద క్రింది కోడ్ను జోడించండి:

    connection_string = "<connection string>"
    

    <connection string> ను మీరు ఈ పాఠంలో ముందుగా పొందిన డివైస్ కనెక్షన్ స్ట్రింగ్ తో మార్చండి.

    💁 ఇది ఉత్తమ పద్ధతి కాదు. కనెక్షన్ స్ట్రింగ్ లను ఎప్పుడూ సోర్స్ కోడ్ లో నిల్వ చేయకూడదు, ఎందుకంటే ఇది సోర్స్ కోడ్ కంట్రోల్ లో చెక్ ఇన్ అయ్యి ఎవరికైనా కనిపించవచ్చు. ఈ సులభత కోసం ఇక్కడ మనం ఇది చేస్తున్నాము. ఐడియల్ గా మీరు ఒకenvironment variable మరియు python-dotenv లాంటి టూల్ ఉపయోగించాలి. మిమ్మల్ని తదుపరి పాఠంలో ఈ విషయం పై మరింత నేర్పబడతారు.

  6. ఈ కోడ్ కింద క్రింది కోడ్ ను జోడించి IoT హబ్ తో కమ్యూనికేట్ చేయగలిగే డివైస్ క్లైంట్ ఆబ్జెక్ట్ సృష్టించి, కనెక్ట్ చేయండి:

    device_client = IoTHubDeviceClient.create_from_connection_string(connection_string)
    
    print('Connecting')
    device_client.connect()
    print('Connected')
    
  7. ఈ కోడ్ ను రన్ చేయండి. మీ డివైస్ కనెక్ట్ అయినట్లు మీరు చూడగలరని.

    pi@raspberrypi:~/soil-moisture-sensor $ python3 app.py 
    Connecting
    Connected
    Soil moisture: 379
    

టెలిమెట్రీ పంపండి

ఇప్పుడు మీ డివైస్ కనెక్ట్ అయినందున, మీరు MQTT బ్రోకర్ కి బదులు IoT హబ్ కి టెలిమెట్రీ పంపవచ్చు.

టాస్క్ - టెలిమెట్రీ పంపండి

  1. while True లూప్ లో, sleep ముందు క్రింది కోడ్‌ను జోడించండి:

    message = Message(json.dumps({ 'soil_moisture': soil_moisture }))
    device_client.send_message(message)
    

    ఈ కోడ్ IoT హబ్ Message ను క్రియేట్ చేస్తుంది, ఇది JSON స్ట్రింగ్ గా మట్టిలో తేమ ఉచ్చికను కలిగి ఉంటుంది, తద్వారా ఇది డివైస్-టు-క్లౌడ్ సందేశంగా IoT హబ్ కి పంపబడుతుంది.

ఆదేశాలు హ్యాండిల్ చేయండి

మీ డివైస్ కి రీలే నియంత్రించేందుకు సర్వర్ కోడ్ నుంచి వచ్చే ఆదేశాన్ని హ్యాండిల్ చేయాలి. ఇది డైరెక్ట్ మెథడ్ రిక్వెస్ట్ గా పంపబడుతుంది.

టాస్క్ - డైరెక్ట్ మెథడ్ రిక్వెస్ట్ ను హ్యాండిల్ చేయండి

  1. while True లూప్ ముందు క్రింది కోడ్ జోడించండి:

    def handle_method_request(request):
        print("Direct method received - ", request.name)
    
        if request.name == "relay_on":
            relay.on()
        elif request.name == "relay_off":
            relay.off()    
    

    ఇది handle_method_request అనే ఒక మెథడ్ నిర్వచిస్తుంది, ఇది IoT హబ్ ద్వారా డైరెక్ట్ మెథడ్ పిలవబడినప్పుడు కాల్ అవుతుంది. ప్రతి డైరెక్ట్ మెథడ్ కి ఒక పేరు ఉంటుంది, ఈ కోడ్ relay_on అనే మెథడ్ తో రీలేని ఆన్ చేయడానికి, మరియు relay_off తో ఆఫ్ చేయడానికి ఆశిస్తుంది.

    💁 ఇది ఒకే డైరెక్ట్ మెథడ్ రిక్వెస్ట్ లో కూడా అమలు చేయవచ్చు, ఆ రీలే యొక్క కావలసిన పరిస్థితిని మెథడ్ రిక్వెస్ట్ లో పాస్ అయ్యే పేగ్లోడ్ ద్వారా పంపడం మరియు request ఆబ్జెక్టు నుండి అందుబాటులో ఉంచడం.

  2. డైరెక్ట్ మెథడ్‌లు హ్యాండిల్ అయినట్లు కాలింగ్ కోడ్ కి తెలియజేయడానికి స్పందన అవసరం. handle_method_request ఫంక్షన్ చివర క్రింది కోడ్ జోడించండి, ఇది రిక్వెస్ట్ కు స్పందన సృష్టిస్తుంది:

    method_response = MethodResponse.create_from_method_request(request, 200)
    device_client.send_method_response(method_response)
    

    ఈ కోడ్ HTTP స్టేటస్ కోడ్ 200 తో డైరెక్ట్ మెథడ్ రిక్వెస్ట్ కు స్పందన పంపుతుంది, మరియు దీన్ని IoT హబ్ కి తిరిగి పంపుతుంది.

  3. ఈ ఫంక్షన్ నిర్వచన కింద క్రింది కోడ్ జోడించండి:

    device_client.on_method_request_received = handle_method_request
    

    ఈ కోడ్ డైరెక్ట్ మెథడ్ పిలవబడినప్పుడు handle_method_request ఫంక్షన్ ను IoT హబ్ క్లైంట్ కి కాల్ చేయమని చెప్పుతుంది.

💁 మీరు ఈ కోడ్ ను code/pi లేదా code/virtual-device ఫోల్డర్లలో చూడవచ్చు.

😀 మీ మట్టి తేమ సెన్సార్ ప్రోగ్రామ్ మీ IoT హబ్ కు కనెక్ట్ అయిపోయింది!


అస్వీకరణ ప్రకటన: ఈ పత్రాన్ని AI అనువాద సేవ Co-op Translator ఉపయోగించి అనువదించబడింది. మేము ఖచ్చితత్వానికి యత్నించినప్పటికీ, స్వయంచాలక అనువాదాలలో తప్పులు లేదా అసత్యతలు ఉండవచ్చు. కృత్రిమ భాషలో ఉన్న అసలు పత్రాన్ని అధికారిక మూలంగా పరిగణించవలెను. ముఖ్యమైన సమాచారం కోసం, ప్రొఫెషనల్ మానవ అనువాదాన్ని సూచిస్తాము. ఈ అనువాదం ఉపయోగంతో ఏర్పడిన ఈటరువులు లేదా తప్పుబాట్ల కోసం మేము బాధ్యత వహించము.