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/kn/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
    

    ಈ ಕೋಡ್ SDK ಅನ್ನು ನಿಮ್ಮ IoT ಹಬ್ ಜೊತೆಗೆ ಸಂವಹನ ಮಾಡಲು ಇಂಪೋರ್ಟ್ ಮಾಡುತ್ತದೆ.

  4. import paho.mqtt.client as mqtt ಲೈನ್ ಅನ್ನು ತೆಗೆದುಹಾಕಿ ಏಕೆಂದರೆ ಈ ಲೈಬ್ರರಿಯ enää ಅಗತ್ಯವಿಲ್ಲ. MQTT ಕೋಡ್ ನಾಲ್ಕು ಭಾಗಗಳನ್ನು ತೆಗೆದುಹಾಕಿ: ವಿಷಯದ ಹೆಸರುಗಳು, mqtt_client ಬಳಕೆ ಮಾಡುವ ಎಲ್ಲಾ ಕೋಡ್ ಮತ್ತು handle_command. while True: ಲೂಪ್ ಇಡೀ ಉಳಿಯಲಿ, ಆದರೆ ಈ ಲೂಪಿನಲ್ಲಿ mqtt_client.publish ಸಾಲನ್ನು ತೆಗೆದುಹಾಕಿ.

  5. ಇಂಪೋರ್ಟ್‌ಗಳ ಕೆಳಗೆ ಈ ಕೆಳಗಿನ ಕೋಡ್ ಸೇರಿಸಿ:

    connection_string = "<connection string>"
    

    <connection string> ಅನ್ನು ನೀವು ಈ ಪಾಠದ ಮೊದಲಿನ ಹಂತದಲ್ಲಿ ಪಡೆಯಿದ ಸಾಧನದ ಸಂಪರ್ಕ ಸರಣಿಗೆ ಬದಲಿಸಿಕೊಳ್ಳಿ.

    💁 ಇದು ಉತ್ತಮ ಅಭ್ಯಾಸವಲ್ಲ. ಸಂಪರ್ಕ ಸರಣಿಗಳನ್ನು ಮೂಲ ಕೋಡ್‌ನಲ್ಲಿ ಸಂಗ್ರಹಿಸಬಾರದು ಏಕೆಂದರೆ ಅದು ಕೋಡ್ ನಿಯಂತ್ರಣ ವ್ಯವಸ್ಥೆಯಲ್ಲಿ ಮಾಹಿತಿಯಾಗಬಹುದು ಮತ್ತು ಯಾರಾದರೂ ಕಂಡುಹಿಡಿಯಬಹುದು. ಸರಳತೆಗೆ ನಾವು ಇದನ್ನು ಇಲ್ಲಿ ಮಾಡುತ್ತಿದ್ದೇವೆ. ಸರಿಯಾದ ರೀತಿಯಲ್ಲಿ ನೀವು ಎನ್ವಿರೋನ್ಮೆಂಟ್ ವ್ಯಾರೀಬಲ್ ಮತ್ತು 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 ಲೂಪ್ ಒಳಗೆ, ನಿದ್ರೆ ಮಿಗಿಲಾಗಿ ಈ ಕೆಳಗಿನ ಕೋಡ್ ಸೇರಿಸಿ:

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

    ಈ ಕೋಡ್ ಮಣ್ಣು ತೇವಾಂಶ ಓದಿಕೆಯನ್ನು JSON ಸರಣಿಯಾಗಿ ಅಳವಡಿಸಿದ IoT ಹಬ್ Message ರಚಿಸುತ್ತದೆ, ನಂತರ ಇದನ್ನು ಸಾಧನದಿಂದ ಕ್ಲೌಡ್ ಸಂದೇಶವಾಗಿ 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)
    

    ಈ ಕೋಡ್ 200 HTTP ಸ್ಥಿತಿ ಕೋಡ್ ಜೊತೆ ನೇರ ವಿಧಾನ ವಿನಂತಿಗೆ ಪ್ರತಿಕ್ರಿಯೆಯನ್ನು ಕಳುಹಿಸುತ್ತದೆ, ಮತ್ತು ಇದನ್ನು IoT ಹಬ್‌ಗೆ ಹಿಂತಿರುಗಿಸುತ್ತದೆ.

  3. ಈ ಫಂಕ್ಷನ್ ನಿರೂಪಣೆಯ ಕೆಳಗೆ ಈ ಕೆಳಗಿನ ಕೋಡ್ ಸೇರಿಸಿ:

    device_client.on_method_request_received = handle_method_request
    

    ಈ ಕೋಡ್ IoT ಹಬ್ ಕ್ಲಯಿಂಟ್‌ಗೆ ನೇರ ವಿಧಾನ ಕರೆದಾಗ handle_method_request ಫಂಕ್ಷನ್ ಅನ್ನು ಕರೆ ಮಾಡಲು ಹೇಳುತ್ತದೆ.

💁 ನೀವು ಈ ಕೋಡ್ ಅನ್ನು code/pi ಅಥವಾ code/virtual-device ಫೋಲ್ಡರ್‌ನಲ್ಲಿ ಕಂಡುಹಿಡಿಯಬಹುದು.

😀 ನಿಮ್ಮ ಮಣ್ಣು ತೇವಾಂಶ ಸೆನ್ಸರ್ ಪ್ರೋಗ್ರಾಂ ನಿಮ್ಮ IoT ಹಬ್‌ಗೆ ಸಂಪರ್ಕಗೊಂಡಿದೆ!


ಅ ಹೇಳಿದ್ದಾರೆ: ಈ ದಸ್ತಾವೇಜನ್ನು AI ಅನುವಾದ ಸೇವೆ Co-op Translator ಬಳಸಿ ಅನುವಾದಿಸಲಾಗಿದೆ. ನಾವು ನಿಖರತೆಯನ್ನು ತಲುಪಲು ಪ್ರಯತ್ನಿಸುವಾಗ, ಸ್ವಯಂಚಾಲಿತ ಅನುವಾದಗಳಲ್ಲಿ ತಪ್ಪುಗಳು ಅಥವಾ accuracies ಬಾರತವಿರುವ ಸಾಧ್ಯತೆ ಇರುತ್ತದೆ ಎಂದು ದಯವಿಟ್ಟು ಗಮನಿಸಿರಿ. ಮೂಲ ಭಾಷೆಯಲ್ಲಿರುವ ಮೂಲ ದಸ್ತಾವೇಜು ನಂಬಿಕೆ ಇದ್ದ ಮೂಲವಾಗಿರಬೇಕು. ಮಹತ್ವದ ಮಾಹಿತಿಗಾಗಿ, ವೃತ್ತಿಪರ ಮಾನವ ಅನುವಾದವನ್ನು ಶಿಫಾರಸು ಮಾಡಲಾಗಿದೆ. ಈ ಅನುವಾದ ಬಳಕೆಯಿಂದ ಉಂಟಾಗಬಹುದಾದ ಯಾವುದೇ ಅರ್ಥಮಾಡಿಕೊಳ್ಳದ ಅಥವಾ ತಪ್ಪಾದ ಅರ್ಥದ ಕುರಿತು ನಾವು ಜವಾಬ್ದಾರಿತರಾಗುವುದಿಲ್ಲ.