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.
121 lines
12 KiB
121 lines
12 KiB
# உங்கள் IoT சாதனத்தை மேகத்துடன் இணைக்கவும் - மெய்நிகர் IoT ஹார்ட்வேரும் Raspberry Pi-யும்
|
|
|
|
இந்த பாடத்தின் இந்த பகுதியில், உங்கள் மெய்நிகர் IoT சாதனத்தை அல்லது Raspberry Pi-யை உங்கள் IoT Hub-க்கு இணைத்து, டெலிமெட்ரியை அனுப்பவும், கட்டளைகளைப் பெறவும் செய்யலாம்.
|
|
|
|
## உங்கள் சாதனத்தை IoT Hub-க்கு இணைக்கவும்
|
|
|
|
அடுத்த படியாக, உங்கள் சாதனத்தை IoT Hub-க்கு இணைக்க வேண்டும்.
|
|
|
|
### பணிகள் - IoT Hub-க்கு இணைக்கவும்
|
|
|
|
1. VS Code-ல் `soil-moisture-sensor` கோப்புறையை திறக்கவும். நீங்கள் மெய்நிகர் IoT சாதனத்தைப் பயன்படுத்தினால், டெர்மினலில் மெய்நிகர் சூழல் இயங்குகிறதா என்பதை உறுதிப்படுத்தவும்.
|
|
|
|
1. சில கூடுதல் Pip தொகுப்புகளை நிறுவவும்:
|
|
|
|
```sh
|
|
pip3 install azure-iot-device
|
|
```
|
|
|
|
`azure-iot-device` என்பது உங்கள் IoT Hub-வுடன் தொடர்பு கொள்ள ஒரு நூலகம்.
|
|
|
|
1. `app.py` கோப்பின் மேல் உள்ள ஏற்கனவே உள்ள இறக்குமதிகளின் கீழ், பின்வரும் இறக்குமதிகளைச் சேர்க்கவும்:
|
|
|
|
```python
|
|
from azure.iot.device import IoTHubDeviceClient, Message, MethodResponse
|
|
```
|
|
|
|
இந்த குறியீடு உங்கள் IoT Hub-வுடன் தொடர்பு கொள்ள 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>`-ஐ இந்த பாடத்தில் முன்பு சாதனத்திற்காக நீங்கள் பெற்ற இணைப்பு சரத்தை மாற்றவும்.
|
|
|
|
> 💁 இது சிறந்த நடைமுறை அல்ல. இணைப்பு சரங்கள் மூலக் குறியீட்டில் எப்போதும் சேமிக்கப்படக்கூடாது, ஏனெனில் இது மூலக் குறியீட்டு கட்டுப்பாட்டில் சரிபார்க்கப்பட்டு யாராலும் கண்டுபிடிக்கப்படலாம். எளிமைக்காக இதை இங்கு செய்கிறோம். வழக்கமாக, நீங்கள் சூழல் மாறி மற்றும் [`python-dotenv`](https://pypi.org/project/python-dotenv/) போன்ற ஒரு கருவியைப் பயன்படுத்த வேண்டும். இதைப் பற்றிய மேலும் தகவலை நீங்கள் வரவிருக்கும் பாடத்தில் கற்றுக்கொள்வீர்கள்.
|
|
|
|
1. இந்த குறியீட்டின் கீழ், IoT Hub-வுடன் தொடர்பு கொள்ளும் சாதன கிளையன்ட் பொருளை உருவாக்கவும், அதை இணைக்கவும்:
|
|
|
|
```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 broker-க்கு பதிலாக IoT Hub-க்கு டெலிமெட்ரியை அனுப்பலாம்.
|
|
|
|
### பணிகள் - டெலிமெட்ரியை அனுப்பவும்
|
|
|
|
1. `while True` மடக்கத்தின் உள்ளே, தூக்கத்திற்கு முன் பின்வரும் குறியீட்டைச் சேர்க்கவும்:
|
|
|
|
```python
|
|
message = Message(json.dumps({ 'soil_moisture': soil_moisture }))
|
|
device_client.send_message(message)
|
|
```
|
|
|
|
இந்த குறியீடு மண் ஈரப்பதம் அளவீட்டை JSON சரமாக IoT Hub `Message` ஆக உருவாக்கி, சாதனம்-மேகம் செய்தியாக IoT Hub-க்கு அனுப்புகிறது.
|
|
|
|
## கட்டளைகளை கையாளவும்
|
|
|
|
உங்கள் சாதனம் ரிலேவை கட்டுப்படுத்த சர்வர் குறியீட்டிலிருந்து ஒரு கட்டளையை கையாள வேண்டும். இது நேரடி முறை கோரிக்கையாக அனுப்பப்படுகிறது.
|
|
|
|
## பணிகள் - நேரடி முறை கோரிக்கையை கையாளவும்
|
|
|
|
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 Hub மூலம் நேரடி முறை அழைக்கப்படும் போது அழைக்கப்படும். ஒவ்வொரு நேரடி முறைக்கும் ஒரு பெயர் உள்ளது, மேலும் இந்த குறியீடு ரிலேவை இயக்க `relay_on` மற்றும் ரிலேவை அணைக்க `relay_off` என்ற முறையை எதிர்பார்க்கிறது.
|
|
|
|
> 💁 இதை ஒரு முறை கோரிக்கையில் செயல்படுத்தவும் முடியும், ரிலேவின் விரும்பிய நிலையை ஒரு payload-ல் அனுப்பி, இது முறை கோரிக்கையுடன் அனுப்பப்படலாம் மற்றும் `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 Hub-க்கு திருப்பி அனுப்புகிறது.
|
|
|
|
1. இந்த செயல்பாட்டு வரையறையின் கீழ் பின்வரும் குறியீட்டைச் சேர்க்கவும்:
|
|
|
|
```python
|
|
device_client.on_method_request_received = handle_method_request
|
|
```
|
|
|
|
இந்த குறியீடு IoT Hub கிளையன்ட் நேரடி முறை அழைக்கப்படும் போது `handle_method_request` செயல்பாட்டை அழைக்கச் சொல்லுகிறது.
|
|
|
|
> 💁 இந்த குறியீட்டை [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 Hub-க்கு இணைக்கப்பட்டுள்ளது!
|
|
|
|
---
|
|
|
|
**குறிப்பு**:
|
|
இந்த ஆவணம் [Co-op Translator](https://github.com/Azure/co-op-translator) என்ற AI மொழிபெயர்ப்பு சேவையைப் பயன்படுத்தி மொழிபெயர்க்கப்பட்டுள்ளது. நாங்கள் துல்லியத்திற்காக முயற்சிக்கின்றோம், ஆனால் தானியங்கி மொழிபெயர்ப்புகளில் பிழைகள் அல்லது தவறான தகவல்கள் இருக்கக்கூடும் என்பதை கவனத்தில் கொள்ளவும். அதன் தாய்மொழியில் உள்ள மூல ஆவணம் அதிகாரப்பூர்வ ஆதாரமாக கருதப்பட வேண்டும். முக்கியமான தகவல்களுக்கு, தொழில்முறை மனித மொழிபெயர்ப்பு பரிந்துரைக்கப்படுகிறது. இந்த மொழிபெயர்ப்பைப் பயன்படுத்துவதால் ஏற்படும் எந்த தவறான புரிதல்கள் அல்லது தவறான விளக்கங்களுக்கு நாங்கள் பொறுப்பல்ல. |