5.7 KiB
Unganisha kifaa chako cha IoT na wingu - Vifaa vya IoT vya Kijumla na Raspberry Pi
Katika sehemu hii ya somo, utaunganisha kifaa chako cha IoT cha kijumla au Raspberry Pi na IoT Hub yako, ili kutuma telemetry na kupokea amri.
Unganisha kifaa chako na IoT Hub
Hatua inayofuata ni kuunganisha kifaa chako na IoT Hub.
Kazi - Unganisha na IoT Hub
-
Fungua folda ya
soil-moisture-sensorkwenye VS Code. Hakikisha mazingira ya kijumla yanafanya kazi kwenye terminal ikiwa unatumia kifaa cha IoT cha kijumla. -
Sakinisha baadhi ya pakiti za ziada za Pip:
pip3 install azure-iot-deviceazure-iot-deviceni maktaba ya kuwasiliana na IoT Hub yako. -
Ongeza uingizaji ufuatao juu ya faili ya
app.py, chini ya uingizaji uliopo:from azure.iot.device import IoTHubDeviceClient, Message, MethodResponseMsimbo huu unaingiza SDK ya kuwasiliana na IoT Hub yako.
-
Ondoa mstari wa
import paho.mqtt.client as mqttkwani maktaba hii haitahitajika tena. Ondoa msimbo wote wa MQTT ikiwa ni pamoja na majina ya mada, msimbo wote unaotumiamqtt_clientnahandle_command. Weka kitanzi chawhile True:, lakini futa mstari wamqtt_client.publishkutoka kwenye kitanzi hiki. -
Ongeza msimbo ufuatao chini ya taarifa za uingizaji:
connection_string = "<connection string>"Badilisha
<connection string>na kamba ya muunganisho uliyoipata kwa kifaa mapema katika somo hili.💁 Hii si mbinu bora. Kamba za muunganisho hazipaswi kuhifadhiwa kwenye msimbo wa chanzo, kwani zinaweza kuingizwa kwenye udhibiti wa msimbo wa chanzo na kupatikana na yeyote. Tunafanya hivi hapa kwa urahisi. Kwa kawaida unapaswa kutumia kitu kama variable ya mazingira na zana kama
python-dotenv. Utajifunza zaidi kuhusu hili katika somo lijalo. -
Chini ya msimbo huu, ongeza yafuatayo ili kuunda kitu cha mteja wa kifaa kinachoweza kuwasiliana na IoT Hub, na kuunganisha:
device_client = IoTHubDeviceClient.create_from_connection_string(connection_string) print('Connecting') device_client.connect() print('Connected') -
Endesha msimbo huu. Utaona kifaa chako kimeunganishwa.
pi@raspberrypi:~/soil-moisture-sensor $ python3 app.py Connecting Connected Soil moisture: 379
Tuma telemetry
Sasa kifaa chako kimeunganishwa, unaweza kutuma telemetry kwa IoT Hub badala ya MQTT broker.
Kazi - Tuma telemetry
-
Ongeza msimbo ufuatao ndani ya kitanzi cha
while True, kabla tu ya kulala:message = Message(json.dumps({ 'soil_moisture': soil_moisture })) device_client.send_message(message)Msimbo huu unaunda
Messageya IoT Hub inayojumuisha usomaji wa unyevu wa udongo kama kamba ya JSON, kisha inaituma kwa IoT Hub kama ujumbe wa kifaa kwenda wingu.
Shughulikia amri
Kifaa chako kinahitaji kushughulikia amri kutoka kwa msimbo wa seva ili kudhibiti relay. Hii inatumwa kama ombi la mbinu ya moja kwa moja.
Kazi - Shughulikia ombi la mbinu ya moja kwa moja
-
Ongeza msimbo ufuatao kabla ya kitanzi cha
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()Hii inafafanua mbinu,
handle_method_request, ambayo itaitwa wakati mbinu ya moja kwa moja inaitwa na IoT Hub. Kila mbinu ya moja kwa moja ina jina, na msimbo huu unatarajia mbinu inayoitwarelay_onkuwasha relay, narelay_offkuzima relay.💁 Hii pia inaweza kutekelezwa katika ombi moja la mbinu ya moja kwa moja, kwa kupitisha hali inayotakiwa ya relay katika mzigo ambao unaweza kupitishwa na ombi la mbinu na kupatikana kutoka kwa kitu cha
request. -
Mbinu za moja kwa moja zinahitaji majibu ili kuambia msimbo unaoitwa kwamba zimeshughulikiwa. Ongeza msimbo ufuatao mwishoni mwa kazi ya
handle_method_requestili kuunda jibu kwa ombi:method_response = MethodResponse.create_from_method_request(request, 200) device_client.send_method_response(method_response)Msimbo huu unatuma jibu kwa ombi la mbinu ya moja kwa moja na msimbo wa hali ya HTTP wa 200, na kuutuma tena kwa IoT Hub.
-
Ongeza msimbo ufuatao chini ya ufafanuzi wa kazi hii:
device_client.on_method_request_received = handle_method_requestMsimbo huu unaiambia mteja wa IoT Hub kuita kazi ya
handle_method_requestwakati mbinu ya moja kwa moja inaitwa.
💁 Unaweza kupata msimbo huu katika folda ya code/pi au code/virtual-device.
😀 Programu yako ya sensor ya unyevu wa udongo imeunganishwa na IoT Hub yako!
Kanusho:
Hati hii imetafsiriwa kwa kutumia huduma ya kutafsiri ya AI Co-op Translator. Ingawa tunajitahidi kuhakikisha usahihi, tafadhali fahamu kuwa tafsiri za kiotomatiki zinaweza kuwa na makosa au kutokuwa sahihi. Hati ya asili katika lugha yake ya awali inapaswa kuzingatiwa kama chanzo cha mamlaka. Kwa taarifa muhimu, tafsiri ya kitaalamu ya binadamu inapendekezwa. Hatutawajibika kwa kutoelewana au tafsiri zisizo sahihi zinazotokana na matumizi ya tafsiri hii.