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...

123 lines
11 KiB

# మీ IoT డివైస్‌ను క్లౌడ్ కు కనెక్ట్ చెయ్యండి - వర్చువల్ IoT హార్డ్వేర్ మరియు రాస్ప్బెరీ పి
ఈ పాఠంలో, మీరు మీ వర్చువల్ IoT డివైస్ లేదా రాస్ప్బెరీ పి‌ను మీ IoT హబ్ కు కనెక్ట్ చేసి, టెలిమెట్రీ పంపడం మరియు ఆదేశాలు స్వీకరించడాన్ని నేర్చుకుంటారు.
## మీ డివైస్‌ను IoT హబ్‌కు కనెక్ట్ చేయండి
తర్వాతి అడుగు మీ డివైస్‌ను IoT హబ్ కు కనెక్ట్ చేయడం.
### టాస్క్ - IoT హబ్‌కు కనెక్ట్ అవ్వండి
1. VS కోడ్‌లో `soil-moisture-sensor` ఫోల్డర్ ను తెరవండి. మీరు వర్చువల్ IoT డివైస్ ఉపయోగిస్తునట్లయితే, టెర్మినల్‌లో వర్చువల్ ఎన్విరాన్‌మెంట్ నడుస్తున్నదని నిర్ధారించుకోండి.
1. కొన్ని అదనపు పిప్ ప్యాకేజిలను ఇన్ స్టాల్ చేయండి:
```sh
pip3 install azure-iot-device
```
`azure-iot-device` అనేది మీ IoT హబ్ తో కమ్యూనికేట్ చేసేందుకు ఉపయోగించే లైబ్రరీ.
1. `app.py` ఫైల్ టాప్‌లో, జేత్ ఉన్న ఇంపోర్టుల కింద, క్రింది ఇంపోర్టులు జోడించండి:
```python
from azure.iot.device import IoTHubDeviceClient, Message, MethodResponse
```
ఈ కోడ్ మీ IoT హబ్ తో కమ్యూనికేట్ చేయడానికి SDKని ఇంపోర్ట్ చేస్తుంది.
1. `import paho.mqtt.client as mqtt` లైన్ తీసివేయండి, ఎందుకంటే ఈ లైబ్రరీ ఇక అవసరం లేదు. MQTT కోడ్ ను, టాపిక్ నేమ్స్ సహా, `mqtt_client` ఉపయోగించే అన్ని కోడ్, మరియు `handle_command` ను తీసివేయండి. `while True:` లూప్ నిలుపుకోండి, కేవలం `mqtt_client.publish` లైన్ ఈ లూప్ నుండి తొలగించండి.
1. ఇంపోర్ట్ స్టేట్మెంట్స్ కింద క్రింది కోడ్ను జోడించండి:
```python
connection_string = "<connection string>"
```
`<connection string>` ను మీరు ఈ పాఠంలో ముందుగా పొందిన డివైస్ కనెక్షన్ స్ట్రింగ్ తో మార్చండి.
> 💁 ఇది ఉత్తమ పద్ధతి కాదు. కనెక్షన్ స్ట్రింగ్ లను ఎప్పుడూ సోర్స్ కోడ్ లో నిల్వ చేయకూడదు, ఎందుకంటే ఇది సోర్స్ కోడ్ కంట్రోల్ లో చెక్ ఇన్ అయ్యి ఎవరికైనా కనిపించవచ్చు. ఈ సులభత కోసం ఇక్కడ మనం ఇది చేస్తున్నాము. ఐడియల్ గా మీరు ఒకenvironment variable మరియు [`python-dotenv`](https://pypi.org/project/python-dotenv/) లాంటి టూల్ ఉపయోగించాలి. మిమ్మల్ని తదుపరి పాఠంలో ఈ విషయం పై మరింత నేర్పబడతారు.
1. ఈ కోడ్ కింద క్రింది కోడ్ ను జోడించి IoT హబ్ తో కమ్యూనికేట్ చేయగలిగే డివైస్ క్లైంట్ ఆబ్జెక్ట్ సృష్టించి, కనెక్ట్ చేయండి:
```python
device_client = IoTHubDeviceClient.create_from_connection_string(connection_string)
print('Connecting')
device_client.connect()
print('Connected')
```
1. ఈ కోడ్ ను రన్ చేయండి. మీ డివైస్ కనెక్ట్ అయినట్లు మీరు చూడగలరని.
```output
pi@raspberrypi:~/soil-moisture-sensor $ python3 app.py
Connecting
Connected
Soil moisture: 379
```
## టెలిమెట్రీ పంపండి
ఇప్పుడు మీ డివైస్ కనెక్ట్ అయినందున, మీరు MQTT బ్రోకర్ కి బదులు IoT హబ్ కి టెలిమెట్రీ పంపవచ్చు.
### టాస్క్ - టెలిమెట్రీ పంపండి
1. `while True` లూప్ లో, `sleep` ముందు క్రింది కోడ్‌ను జోడించండి:
```python
message = Message(json.dumps({ 'soil_moisture': soil_moisture }))
device_client.send_message(message)
```
ఈ కోడ్ IoT హబ్ `Message` ను క్రియేట్ చేస్తుంది, ఇది JSON స్ట్రింగ్ గా మట్టిలో తేమ ఉచ్చికను కలిగి ఉంటుంది, తద్వారా ఇది డివైస్-టు-క్లౌడ్ సందేశంగా IoT హబ్ కి పంపబడుతుంది.
## ఆదేశాలు హ్యాండిల్ చేయండి
మీ డివైస్ కి రీలే నియంత్రించేందుకు సర్వర్ కోడ్ నుంచి వచ్చే ఆదేశాన్ని హ్యాండిల్ చేయాలి. ఇది డైరెక్ట్ మెథడ్ రిక్వెస్ట్ గా పంపబడుతుంది.
## టాస్క్ - డైరెక్ట్ మెథడ్ రిక్వెస్ట్ ను హ్యాండిల్ చేయండి
1. `while True` లూప్ ముందు క్రింది కోడ్ జోడించండి:
```python
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` ఆబ్జెక్టు నుండి అందుబాటులో ఉంచడం.
1. డైరెక్ట్ మెథడ్‌లు హ్యాండిల్ అయినట్లు కాలింగ్ కోడ్ కి తెలియజేయడానికి స్పందన అవసరం. `handle_method_request` ఫంక్షన్ చివర క్రింది కోడ్ జోడించండి, ఇది రిక్వెస్ట్ కు స్పందన సృష్టిస్తుంది:
```python
method_response = MethodResponse.create_from_method_request(request, 200)
device_client.send_method_response(method_response)
```
ఈ కోడ్ HTTP స్టేటస్ కోడ్ 200 తో డైరెక్ట్ మెథడ్ రిక్వెస్ట్ కు స్పందన పంపుతుంది, మరియు దీన్ని IoT హబ్ కి తిరిగి పంపుతుంది.
1. ఈ ఫంక్షన్ నిర్వచన కింద క్రింది కోడ్ జోడించండి:
```python
device_client.on_method_request_received = handle_method_request
```
ఈ కోడ్ డైరెక్ట్ మెథడ్ పిలవబడినప్పుడు `handle_method_request` ఫంక్షన్ ను IoT హబ్ క్లైంట్ కి కాల్ చేయమని చెప్పుతుంది.
> 💁 మీరు ఈ కోడ్ ను [code/pi](../../../../../2-farm/lessons/4-migrate-your-plant-to-the-cloud/code/pi) లేదా [code/virtual-device](../../../../../2-farm/lessons/4-migrate-your-plant-to-the-cloud/code/virtual-device) ఫోల్డర్లలో చూడవచ్చు.
😀 మీ మట్టి తేమ సెన్సార్ ప్రోగ్రామ్ మీ IoT హబ్ కు కనెక్ట్ అయిపోయింది!
---
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**అస్వీకరణ ప్రకటన**:
ఈ పత్రాన్ని AI అనువాద సేవ [Co-op Translator](https://github.com/Azure/co-op-translator) ఉపయోగించి అనువదించబడింది. మేము ఖచ్చితత్వానికి యత్నించినప్పటికీ, స్వయంచాలక అనువాదాలలో తప్పులు లేదా అసత్యతలు ఉండవచ్చు. కృత్రిమ భాషలో ఉన్న అసలు పత్రాన్ని అధికారిక మూలంగా పరిగణించవలెను. ముఖ్యమైన సమాచారం కోసం, ప్రొఫెషనల్ మానవ అనువాదాన్ని సూచిస్తాము. ఈ అనువాదం ఉపయోగంతో ఏర్పడిన ఈటరువులు లేదా తప్పుబాట్ల కోసం మేము బాధ్యత వహించము.
<!-- CO-OP TRANSLATOR DISCLAIMER END -->