10 KiB
आपले IoT डिव्हाइस क्लाउडशी जोडा - व्हर्च्युअल IoT हार्डवेअर आणि रास्पबेरी पाय
या धड्याच्या या भागात, आपण आपले व्हर्च्युअल IoT डिव्हाइस किंवा रास्पबेरी पाय आपल्या IoT हबशी जोडाल, टेलिमेट्री पाठवण्यासाठी आणि आदेश प्राप्त करण्यासाठी.
आपले डिव्हाइस IoT हबशी जोडा
पुढील पाऊल म्हणजे आपले डिव्हाइस IoT हबशी जोडणे.
कार्य - IoT हबशी कनेक्ट करा
-
VS कोडमध्ये
soil-moisture-sensorफोल्डर उघडा. जर आपण व्हर्च्युअल IoT डिव्हाइस वापरत असाल, तर टर्मिनलमध्ये व्हर्च्युअल वातावरण चालू असल्याची खात्री करा. -
काही अतिरिक्त Pip पॅकेजेस इन्स्टॉल करा:
pip3 install azure-iot-deviceazure-iot-deviceहे आपल्याला IoT हबशी संवाद साधण्यासाठी लागणारे लायब्ररी आहे. -
खालील इम्पोर्ट्स
app.pyफाईलच्या शीर्षस्थानी, आधीच्या इम्पोर्ट्सच्या खाली जोडा:from azure.iot.device import IoTHubDeviceClient, Message, MethodResponseहा कोड IoT हबशी संवाद साधण्यासाठी आवश्यक SDK इम्पोर्ट करतो.
-
import paho.mqtt.client as mqttही ओळ काढून टाका कारण ही लायब्ररी आता आवश्यक नाही. MQTT कोड, टॉपिक नावे,mqtt_clientवापरणारा सर्व कोड आणिhandle_commandकाढून टाका.while True:लूप ठेवा, फक्त या लूपमधीलmqtt_client.publishओळ काढून टाका. -
इम्पोर्ट स्टेटमेंट्सच्या खालील कोड जोडा:
connection_string = "<connection string>"<connection string>च्या जागी या धड्यात आधी मिळवलेली डिव्हाइस कनेक्शन स्ट्रिंग ठेवा.💁 हे सर्वोत्तम पद्धत नाही. कनेक्शन स्ट्रिंग्स कधीही सोर्स कोडमध्ये साठवू नयेत, कारण ते सोर्स कोड कंट्रोलमध्ये चेक इन होऊ शकतात आणि कोणालाही सापडू शकतात. येथे आपण सोपेपणासाठी असे करत आहोत. आदर्शतः, आपण पर्यावरणीय व्हेरिएबल्स आणि
python-dotenvसारख्या साधनांचा वापर करावा. आपण याबद्दल पुढील धड्यात अधिक शिकाल. -
या कोडखाली, IoT हबशी संवाद साधण्यासाठी डिव्हाइस क्लायंट ऑब्जेक्ट तयार करण्यासाठी आणि त्याला कनेक्ट करण्यासाठी खालील कोड जोडा:
device_client = IoTHubDeviceClient.create_from_connection_string(connection_string) print('Connecting') device_client.connect() print('Connected') -
हा कोड चालवा. आपले डिव्हाइस कनेक्ट होईल.
pi@raspberrypi:~/soil-moisture-sensor $ python3 app.py Connecting Connected Soil moisture: 379
टेलिमेट्री पाठवा
आता आपले डिव्हाइस कनेक्ट झाले आहे, आपण MQTT ब्रोकर्सऐवजी IoT हबला टेलिमेट्री पाठवू शकता.
कार्य - टेलिमेट्री पाठवा
-
while Trueलूपच्या आत,sleepच्या आधी खालील कोड जोडा:message = Message(json.dumps({ 'soil_moisture': soil_moisture })) device_client.send_message(message)हा कोड IoT हबसाठी JSON स्ट्रिंग स्वरूपात मातीतील ओलसरतेचे वाचन असलेला
Messageतयार करतो आणि डिव्हाइस-टू-क्लाउड संदेश म्हणून IoT हबला पाठवतो.
आदेश हाताळा
आपल्या डिव्हाइसला रिले नियंत्रित करण्यासाठी सर्व्हर कोडकडून आदेश हाताळण्याची आवश्यकता आहे. हे थेट पद्धतीच्या विनंतीद्वारे पाठवले जाते.
कार्य - थेट पद्धतीची विनंती हाताळा
-
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ऑब्जेक्टमधून उपलब्ध होऊ शकते. -
थेट पद्धतींना कॉलिंग कोडला सांगण्यासाठी प्रतिसादाची आवश्यकता असते की त्यांना हाताळले गेले आहे.
handle_method_requestफंक्शनच्या शेवटी खालील कोड जोडा:method_response = MethodResponse.create_from_method_request(request, 200) device_client.send_method_response(method_response)हा कोड थेट पद्धतीच्या विनंतीला HTTP स्थिती कोड 200 सह प्रतिसाद पाठवतो आणि IoT हबला परत पाठवतो.
-
या फंक्शनच्या परिभाषेनंतर खालील कोड जोडा:
device_client.on_method_request_received = handle_method_requestहा कोड IoT हब क्लायंटला सांगतो की थेट पद्धत कॉल केल्यावर
handle_method_requestफंक्शन कॉल करावे.
💁 हा कोड code/pi किंवा code/virtual-device फोल्डरमध्ये सापडू शकतो.
😀 आपला मातीतील ओलसरता सेन्सर प्रोग्राम IoT हबशी कनेक्ट झाला आहे!
अस्वीकरण:
हा दस्तऐवज AI भाषांतर सेवा Co-op Translator वापरून भाषांतरित करण्यात आला आहे. आम्ही अचूकतेसाठी प्रयत्नशील असलो तरी कृपया लक्षात ठेवा की स्वयंचलित भाषांतरांमध्ये त्रुटी किंवा अचूकतेचा अभाव असू शकतो. मूळ भाषेतील दस्तऐवज हा अधिकृत स्रोत मानला जावा. महत्त्वाच्या माहितीसाठी व्यावसायिक मानवी भाषांतराची शिफारस केली जाते. या भाषांतराचा वापर करून निर्माण होणाऱ्या कोणत्याही गैरसमज किंवा चुकीच्या अर्थासाठी आम्ही जबाबदार राहणार नाही.