- Ano ang Microsoft Azure IoT Hub?
- Lumilikha ng isang Azure IoT Hub
- Kinakailangan ang Mga Bahagi upang Buuin ang aming Test Circuit para sa Azure IoT kasama ang Raspberry Pi
- Azure IoT kasama ang Raspberry Pi - Hardware Schematic
- Programming Raspberry Pi upang Mag-publish ng Data sa Azure IoT Hub
- I-publish ang Data sa Azure IoT Hub - Pagsubok
Ang Azure IoT Hub, ang serbisyo sa cloud computing ng Microsoft ay nagbibigay-daan sa mga developer na kumonekta, subaybayan, at pamahalaan ang bilyun-bilyong mga IoT device sa isang solong platform. Ginamit na ito sa iba't ibang mga aplikasyon ng IoT tulad ng mga system sa pag-aautomat ng bahay, seguridad, pagsubaybay, at mga sistema ng pagsubaybay. Upang maipakita ang mga kakayahan ng Azure IoT hub, magtatayo kami ng isang maliit na circuit gamit ang Raspberry Pi, isang DHT11 Temperature, at Humidity Sensor, upang maproseso ang data ng sensor kasama nito. Panghuli, ilalathala namin ang data ng sensor sa server ng Azure IoT gamit ang MQTT protocol. Sa tutorial na ito, matututunan namin kung paano mag-set up at mag-configure ng isang Azure server at magpadala ng data gamit ang isang Raspberry Pi.
Ano ang Microsoft Azure IoT Hub?
Ang Azure IoT Hub ay isang koleksyon ng mga pinamamahalaang serbisyo na maaaring kumonekta, subaybayan, at kontrolin ang mga IoT device. Nagsasama rin ito ng ligtas na komunikasyon para sa mga aparato, na may visualization ng data at analytics na makakatulong sa mga tagagawa ng aparato na bumuo, mag-deploy, at pamahalaan ang mga aplikasyon ng IoT sa tulong ng Azure cloud. Ang data ng telemetry ng Device-to-Cd ng Azure IoT Hub ay nagpapaalam sa amin tungkol sa estado ng mga konektadong mga IoT device, at pinapayagan kami ng mga mensahe ng Cloud-to-Device na magpadala ng mga utos at abiso sa mga konektadong aparato. Ang isang halimbawa ay maaaring tulad ng, gamit ang isang smart home automation system, maaari kaming mangolekta ng iba't ibang data ng sensor at ipadala ang mga ito sa Azure IoT Hub upang mailarawan, maiimbak at pamahalaan ang mga ito. Maaari din nating makontrol ang mga output device mula sa interface ng Azure IoT Hub.
Sinusuportahan ng gitnang hub para sa bi-directional na komunikasyon para sa IoT application at mga aparato sa parehong komunikasyon sa cloud-device at cloud-device, sinusuportahan din nito ang maramihang mga pattern ng pagmemensahe tulad ng isang aparato sa cloud telemetry, pag-upload ng file mula sa mga aparato, at mga pamamaraan ng paghingi ng tugon at sa wakas, maaari naming gamitin ang per-device na paraan ng pagpapatotoo na nagbibigay-daan sa bawat aparato na ligtas na kumonekta sa IoT Hub. Ngayon, tulad ng naintindihan mo ang mga pangunahing kaalaman ng Azure IoT Hub, lumipat tayo sa pag-set up ng system.
Lumilikha ng isang Azure IoT Hub
Handa kaming gawin ang lahat ng kinakailangang mga pag-setup na kinakailangan para sa pag-set up ng mga serbisyo ng Microsoft Azure ngunit bago ito, tiyaking mayroon kang isang Microsoft account. Kung wala ka nito, maaari ka lang mag-sign up. Pagkatapos noon, pumunta sa portal ng Azure gamit ang portal.azure.com at mag-log in.
Sa sandaling naka-log in ka, pumunta sa homepage ng Azure, piliin ang pindutang Lumikha ng mapagkukunan, at pagkatapos ay hanapin ang IoT Hub sa larangan ng Paghahanap sa Marketplace. Piliin ang IoT Hub mula sa mga resulta ng paghahanap, at pagkatapos ay piliin ang Lumikha. Ang mga imahe sa ibaba ay magbibigay sa iyo ng isang mas mahusay na ideya ng proseso.
Punan ang Mga Kinakailangan na Detalye upang Lumikha ng isang IoT Hub.
Sa seksyon ng Subscription, kailangan mong piliin ang subscription upang magamit ito para sa iyong hub. Sa aming kaso, pumipili kami para sa isang Trial account at pinili namin ang " Libreng Pagsubok" .
Susunod, sa Seksyon ng Pangkat ng Resource, piliin ang iyong pangkat ng mapagkukunan . Kung wala kang isa, kailangan mong lumikha ng bago sa pamamagitan ng pag-click sa Lumikha ng bago at ipasok ang pangalan ng Mapagkukunan.
Sa Seksyon ng Rehiyon, maaari mong gamitin ang dropdown menu upang mapili ang iyong ginustong rehiyon.
Sa IoT Hub Pangalan Section, kailangan mong e nter isang pangalan para sa iyong hub. Dapat itong maging natatangi. Ang lahat ng kinakailangang mga komunikasyon ay magaganap sa pangalang ito.
Sa ilalim ng Tab na "Laki at Sukat", piliin ang " Libreng Tier " at Mag-click sa Susunod. Pagkatapos mag-click sa "Suriin + Lumikha". Aabutin ng ilang minuto upang likhain ang IoT Hub. Mag-click sa pangalan ng IoT Hub na iyong nilikha. Tandaan ang Hostname mula sa window tulad ng ipinakita sa imahe sa ibaba. Pagkatapos mag-click sa Mga nakabahaging patakaran sa pag- access sa Mga Setting. Ang mga nakabahaging patakaran sa pag-access ay naka-highlight sa imahe sa ibaba. Mag-click sa iothubowner na pagpipilian sa ilalim ng Patakaran. Tandaan ang pangunahing key at Koneksyon ng string-pangunahing key para sa mga sanggunian sa hinaharap. Ngayon, upang Magrehistro ng isang Bagong Device sa ilalim ng IoT Hub, Mag-click sa Mga IoT Device. Sa pane ng Device Explorer, mag-click sa Idagdag upang magdagdag ng isang aparato sa hub.
Punan ang Sumusunod na Impormasyon sa Tab ng Mga Bagong Device.
- Device ID: Ipasok ang Id para sa aparato. Ang mga Device Ids ay kailangang maging natatangi.
- Uri ng Pagpapatotoo: Pumili ng isang Symmetric Key.
- Mga Auto Key na Bumuo: Piliin ang check box na ito.
- Ikonekta ang Device sa IoT Hub: I-click ang Paganahin.
Kapag nilikha ang aparato, mahahanap mo ang iyong bagong nilikha na aparato sa seksyon ng Device Explorer. Mag-click sa pangalan ng aparato. Ipapakita nito ang mga detalye ng aparato. Tandaan ang pangunahing key at ang Koneksyon na string-pangunahing key ng Device. Ito ay mahalaga dahil kailangan natin ito para sa komunikasyon.
Ngayon, kapag tapos na iyan, maaari tayong magpatuloy sa bahagi ng hardware ng mga bagay.
Kinakailangan ang Mga Bahagi upang Buuin ang aming Test Circuit para sa Azure IoT kasama ang Raspberry Pi
Tulad ng bahagi ng hardware ng circuit na ito ay napaka-simple, ang kinakailangan ng sangkap din ay napaka-simple. Ang isang listahan ng mga kinakailangang sangkap ay ipinapakita sa ibaba.
- Raspberry Pi 3B (Maaari rin kaming gumamit ng anumang iba pang mga modelo ng Pi)
- Micro SD Card-16 GB
- DHT11 Sensor
- Micro USB 5V, 2.4A Power supply
Azure IoT kasama ang Raspberry Pi - Hardware Schematic
Ang kumpletong diagram ng circuit para sa Azure IoT na may proyekto na Raspberry Pi ay ipinapakita sa ibaba, Ito ay binuo gamit ang fritzing. Sundin ang circuit diagram at mga koneksyon upang magawa ang circuit.
Ang circuit sa itaas ay nagpapadala ng data ng Temperatura at Humidity sa Microsoft IoT Hub. Sa circuit na ito, gumamit kami ng sensor ng DHT11 upang makolekta ang data ng Temperatura at Humidity at gumagamit kami ng isang Raspberry Pi 3B bilang isang aparato sa pagpoproseso ng data. Ang sensor ng DHT11 ay may tatlong mga pin. Ang mga VCC at GND na pin ay ginagamit upang magbigay ng 5V DC supply sa sensor at ang Data output pin ng DHT11 ay konektado sa GPIO4 ng Raspberry Pi. Kung nais mong malaman kung paano i-interface ang DHT11 Temperature at Humidity Sensor Sa Raspberry Pi, maaari mong suriin ang aming nakaraang artikulo sa paksa. Ginamit din namin ang sensor na ito upang maitayo ang IoT Raspberry Pi Weather Station.
Programming Raspberry Pi upang Mag-publish ng Data sa Azure IoT Hub
Bago simulan ang pag-coding para sa proyektong ito, kailangan naming lumikha ng isang Azure cloud shell (CLI) sa Azure portal. Darating ito sa madaling gamiting paraan. Para doon, mag-click sa Azure cloud shell button sa portal tulad ng ipinakita sa ibaba. Pagkatapos mag-click sa pagpipilian sa paglikha ng imbakan, minarkahan ng pula.
Sa sandaling tapos na, maaari mong buksan ang CLI, at patakbuhin ang sumusunod na command upang i-install ang Azure add-on ' s na kung saan ay maaaring gamitin upang ipakita ang data ng sensor.
add ng az extension --name azure-kli-iot-ext
Kapag tapos na iyon, kailangan naming mag-install ng mga dependency sa Raspberry Pi upang makipag-usap sa sensor ng DHT11 at gawing madali ang proseso ng komunikasyon para sa mga serbisyo ng Azure IoT. Para doon buksan ang isang Raspberry Pi Terminal upang mai-install ang mga umaasang pakete na ginamit sa proyekto.
Una, kailangan naming i-download ang DHT library para sa Raspberry Pi, pagkatapos ay i-extract ito mula sa root folder at patakbuhin ang sumusunod na utos upang mai-install ito.
sudo python setup.py install
Matapos ang matagumpay na pag-install, patakbuhin ang mga sumusunod na utos upang mai-install ang lahat ng mga nakasalalay na pakete sa Azure IoT Hub.
sudo pip3 install azure-iot-device sudo pip3 install azure-iot-hub sudo pip3 install azure-iothub-service-client sudo pip3 install azure-iothub-device-client
Kapag nakumpleto na namin ang pag-install ng lahat ng mga kinakailangan, oras na upang isulat ang code sa Python. Upang magawa iyon, i-import muna ang lahat ng mga aklatan:
mag-import ng random na pag- import ng Adafruit_DHT oras ng pag-import mula sa azure.iot.device import IoTHubDeviceClient, Mensahe
Sa proyektong ito, gumagamit kami ng pin 4 ng Raspberry Pi upang maproseso ang data mula sa data ng DHT11, kaya kailangan itong ideklara tulad ng ipinakita.
sensor = Adafruit_DHT.DHT11 pin = 4
Susunod, tinutukoy namin ang string ng koneksyon ng code. Palitan ito ng iyong aparato-pangunahing string ng koneksyon na nai-save namin nang mas maaga.
CONNECTION_STRING = "HostName = sensordata.azure-devices.net; DeviceId = ZZZZZ; SharedAccessKey = ZZZZZZZZZZZZZZZZZZZ"
Susunod, gumagawa kami ng Isang array na gagamitin upang maipadala ang data sa Azure IoT Hub. Maaari itong gawin tulad ng ipinakita sa ibaba.
MSG_SND = '{{"temperatura": {temperatura}, "kahalumigmigan": {kahalumigmigan}}}'
Susunod, tinukoy namin ang isang habang loop, Sa habang loop, ang parehong data ng kahalumigmigan at temperatura ay naproseso gamit ang pagpapaandar ng Adafruit_DHT.read_retry . Bukod dito, tinutukoy namin ang dalawang espesyal na variable at itatalaga ang data ng output sa mga variable na iyon.
habang Totoo: kahalumigmigan, temperatura = Adafruit_DHT.read_retry (sensor, pin)
Susunod, isang function ay nakasulat upang ikonekta ang IoT Hub gamit ang mga parameter ng koneksyon na dati naming tinukoy.
def iothub_client_init (): client = IoTHubDeviceClient.create_from_connection_string (CONNECTION_STRING) ibalik ang client
Sa wakas, sa susunod na hakbang, ang parehong data ng Temperatura at Humidity ay ipinadala sa Azure Hub, gamit ang format tulad ng ipinakita sa code sa ibaba. Gayundin, gumamit kami ng isang pagsubok at paraan ng paghuli upang makilala kung mayroong anumang error sa code.
def iothub_client_telemetry_sample_run (): try: client = iothub_client_init () print ("Pagpapadala ng data sa IoT Hub, pindutin ang Ctrl-C upang lumabas") habang Totoo: msg_txt_formatted = MSG_SND.format (temperatura = temperatura, kahalumigmigan = halumigmig) mensahe = Mensahe (msg_txt_formatted) i- print ("Nagpapadala ng mensahe: {}". format (mensahe)) client.send_message (mensahe) na naka- print ("Matagumpay na naipadala ang mensahe") time.s Sleep (3)
I-publish ang Data sa Azure IoT Hub - Pagsubok
Matapos matagumpay na pagsulat ng code, ipunin ito at suriin para sa anumang mga error. Kung ang code block ay matagumpay na naipon, pagkatapos ay patakbuhin ang code. Sa window ng Terminal, dapat mong makita ang mensahe na nagsasabing, "Matagumpay na naipadala ang mensahe". Ang screenshot ng window ay ipinapakita sa ibaba:
Ngayon, upang makita ang data sa Azure IoT Hub, pumunta sa portal at mag-click sa CLI Terminal at patakbuhin ang mga sumusunod na utos na pinapalitan ang iyong mga kredensyal dito.
az iot hub monitor-event --hub-name XYZ --device-id XYZ
Tandaan:
Palitan ang XYZ ng iyong pangalan ng Hub at Device id.
Matapos patakbuhin ang utos sa itaas, dapat mong makuha ang data tulad ng ipinakita sa ibaba sa screen. Ito ang parehong data na ipinadala mula sa Raspberry Pi.
Ito ang marka ng pagtatapos ng tutorial na ito, sana ay nagustuhan mo ang artikulo at may natutunan na bago. Kung mayroon kang anumang mga katanungan tungkol sa artikulo, maaari mong iwanan ang mga ito sa seksyon ng komento sa ibaba. O maaari mong gamitin ang aming Electronics Forum upang makakuha ng mas mabilis at mas mahusay na tugon.