- Ce este Microsoft Azure IoT Hub?
- Crearea unui Azure IoT Hub
- Componente necesare pentru a construi circuitul nostru de testare pentru Azure IoT cu Raspberry Pi
- Azure IoT cu Raspberry Pi - Schema hardware
- Programarea Raspberry Pi pentru publicarea datelor pe Azure IoT Hub
- Publicați date pe Azure IoT Hub - Testare
Azure IoT Hub, serviciul de cloud computing de la Microsoft permite dezvoltatorilor să se conecteze, să monitorizeze și să administreze miliarde de dispozitive IoT pe o singură platformă. Este deja utilizat în diferite aplicații IoT, cum ar fi sistemele de automatizare a casei, sistemele de securitate, supraveghere și monitorizare. Pentru a demonstra capacitățile hubului Azure IoT, vom construi un circuit mic cu Raspberry Pi, un senzor de temperatură și umiditate DHT11, pentru a procesa datele senzorului cu acesta. În cele din urmă, vom publica datele senzorilor pe serverul Azure IoT utilizând protocolul MQTT. În acest tutorial, vom învăța cum să configurați și să configurați un server Azure și să trimiteți date folosind un Raspberry Pi.
Ce este Microsoft Azure IoT Hub?
Azure IoT Hub este o colecție de servicii gestionate care pot conecta, monitoriza și controla dispozitivele IoT. De asemenea, include comunicații sigure pentru dispozitive, cu vizualizare și analiză a datelor care ajută producătorii de dispozitive să construiască, să implementeze și să gestioneze aplicații IoT cu ajutorul cloudului Azure . Datele de telemetrie Device-to-Cd Azure IoT Hub ne permit să aflăm despre starea dispozitivelor IoT conectate, iar mesajele Cloud-to-Device ne permit să trimitem comenzi și notificări către dispozitivele conectate. Un exemplu ar putea fi ca, folosind un sistem inteligent de automatizare a locuinței, putem colecta diverse date despre senzori și le putem trimite la Azure IoT Hub pentru a le vizualiza, stoca și gestiona. De asemenea, putem controla dispozitivele de ieșire din interfața Azure IoT Hub.
Hub central pentru comunicații bidirecționale pentru aplicații și dispozitive IoT acceptă atât comunicații dispozitiv-cloud, cât și cloud-dispozitive, acceptă, de asemenea, mai multe modele de mesagerie, cum ar fi un dispozitiv pentru cloud telemetrie, încărcarea fișierelor de pe dispozitive și metode de solicitare-răspuns și, în cele din urmă, putem utiliza metoda de autentificare per dispozitiv care permite fiecărui dispozitiv să se conecteze în siguranță la IoT Hub. Acum, după cum ați înțeles elementele de bază ale Azure IoT Hub, să trecem la configurarea sistemului.
Crearea unui Azure IoT Hub
Suntem gata să facem toate setările necesare pentru configurarea serviciilor Microsoft Azure, dar înainte de aceasta, asigurați-vă că aveți un cont Microsoft. Dacă nu aveți acest lucru, vă puteți înscrie pur și simplu. Apoi, accesați portalul Azure utilizând portal.azure.com și conectați-vă.
După ce v-ați conectat, accesați pagina de pornire Azure, selectați butonul Creați o resursă, apoi căutați Hub IoT în câmpul Căutare piață. Selectați Hub IoT din rezultatele căutării, apoi selectați Creare. Imaginile de mai jos vă vor oferi o idee mai bună despre proces.
Completați detaliile necesare pentru a crea un hub IoT.
În secțiunea Abonament, trebuie să selectați abonamentul pentru al utiliza pentru hub-ul dvs. În cazul nostru, optăm pentru un cont Trial și am selectat „ Test gratuit” .
Apoi, în secțiunea Grup de resurse, selectați grupul de resurse . Dacă nu aveți una, trebuie să creați una nouă făcând clic pe Creare nouă și introduceți numele resursei.
În secțiunea Regiune, puteți utiliza meniul derulant pentru a selecta regiunea preferată.
În numele secțiunii Hub internetul obiectelor, aveți nevoie pentru a e nter un nume pentru hub. Acest lucru trebuie să fie unic. Toate comunicările necesare se vor întâmpla cu acest nume.
Sub fila „Dimensiune și scară”, selectați „ Nivel gratuit ” și faceți clic pe Următorul. Apoi faceți clic pe „Examinați + Creați”. Va dura câteva minute pentru a crea IoT Hub. Faceți clic pe numele centrului IoT pe care l-ați creat. Notați numele gazdei din fereastră așa cum se arată în imaginea de mai jos. Apoi faceți clic pe politicile de acces partajat din Setări. Politicile de acces partajat sunt evidențiate în imaginea de mai jos. Faceți clic pe opțiunea iothubowner din Politică. Notați cheia primară și șirul de conexiune-cheia primară pentru referințe viitoare. Acum, pentru a înregistra un dispozitiv nou sub IoT Hub, faceți clic pe Dispozitive IoT. În panoul Explorer dispozitiv, faceți clic pe Adăugare pentru a adăuga un dispozitiv la hub.
Completați următoarele informații din fila Dispozitive noi.
- ID dispozitiv: introduceți ID-ul dispozitivului. ID-urile dispozitivului trebuie să fie unice.
- Tipul de autentificare: Selectați o cheie simetrică.
- Generare automată taste: bifați această casetă de selectare.
- Conectați dispozitivul la IoT Hub: faceți clic pe Activare.
Odată ce dispozitivul este creat, puteți găsi dispozitivul nou creat în secțiunea Device Explorer. Faceți clic pe numele dispozitivului. Va afișa detaliile dispozitivului. Notați cheia principală și șirul de conexiune - cheia primară a dispozitivului. Acest lucru este important deoarece avem nevoie de el pentru comunicare.
Acum, când se face acest lucru, putem trece la partea hardware a lucrurilor.
Componente necesare pentru a construi circuitul nostru de testare pentru Azure IoT cu Raspberry Pi
Deoarece partea hardware a acestui circuit este foarte simplă, cerința componentelor este foarte simplă. O listă a componentelor necesare este prezentată mai jos.
- Raspberry Pi 3B (Putem folosi și orice alte modele de Pi)
- Card Micro SD-16 GB
- Senzor DHT11
- Micro USB 5V, alimentare 2.4A
Azure IoT cu Raspberry Pi - Schema hardware
Schema completă de circuite pentru proiectul Azure IoT cu Raspberry Pi este prezentată mai jos, a fost construită folosind fritzing. Urmați schema circuitului și conexiunile pentru a realiza circuitul dvs.
Circuitul de mai sus trimite date de temperatură și umiditate către Microsoft IoT Hub. În acest circuit, am folosit un senzor DHT11 pentru a colecta datele de temperatură și umiditate și folosim un Raspberry Pi 3B ca dispozitiv de procesare a datelor. Senzorul DHT11 are trei pini. Pinii VCC și GND sunt utilizați pentru a furniza o alimentare de 5V DC senzorului, iar pinul de ieșire de date al DHT11 este conectat la GPIO4 al Raspberry Pi. Dacă doriți să aflați cum să interfațați senzorul de temperatură și umiditate DHT11 cu Raspberry Pi, puteți consulta articolul nostru anterior pe această temă. De asemenea, am folosit acest senzor pentru a construi stația meteo IoT Raspberry Pi.
Programarea Raspberry Pi pentru publicarea datelor pe Azure IoT Hub
Înainte de a începe codarea pentru acest proiect, trebuie să creăm un cloud shell Azure (CLI) în portalul Azure. Acest lucru va fi util în multe feluri. Pentru aceasta, faceți clic pe butonul Azure cloud shell din portal așa cum se arată mai jos. Apoi faceți clic pe opțiunea Creați stocare, marcată cu roșu.
Odată terminat, puteți deschide CLI, și rulați următoarele comenzi pentru a instala Azure add-on“ s, care vor fi utilizate pentru a afișa datele de senzor.
az extension add --name azure-cli-iot-ext
Odată ce ați terminat, trebuie să instalăm dependențe pe Raspberry Pi pentru a comunica cu senzorul DHT11 și pentru a facilita procesul de comunicare pentru serviciile Azure IoT. Pentru aceasta deschideți un terminal Raspberry Pi pentru a instala pachetele dependente utilizate în proiect.
Mai întâi, trebuie să descărcăm biblioteca DHT pentru Raspberry Pi, apoi să o extragem din folderul rădăcină și să executăm următoarea comandă pentru ao instala.
sudo python setup.py instalare
După instalarea cu succes, rulați următoarele comenzi pentru a instala toate pachetele dependente pe Azure IoT Hub.
sudo pip3 instalează azure-iot-device sudo pip3 instalează azure-iot-hub sudo pip3 instalează azure-iothub-service-client sudo pip3 instalează azure-iothub-device-client
Odată ce am finalizat instalarea tuturor condițiilor prealabile, este timpul să scriem codul în Python. Pentru aceasta, mai întâi importați toate bibliotecile:
import import aleatoriu Adafruit_DHT timp de import din azure.iot.device import IoTHubDeviceClient, Message
În acest proiect, folosim pinul 4 al Raspberry Pi pentru a procesa datele din datele DHT11, deci trebuie să fie declarate așa cum se arată.
senzor = Adafruit_DHT.DHT11 pin = 4
Apoi, definim șirul de conexiune al codului. Înlocuiți-l cu șirul de conexiune principal al dispozitivului pe care l-am salvat anterior.
CONNECTION_STRING = "Numele gazdei = sensordata.azure-devices.net; DeviceId = ZZZZZ; SharedAccessKey = ZZZZZZZZZZZZZZZZZZZ"
Apoi, creăm o matrice care va fi utilizată pentru a trimite datele către Azure IoT Hub. Se poate face așa cum se arată mai jos.
MSG_SND = '{{"temperature": {temperature}, "umiditate": {umiditate}}}'
Apoi, am definit o buclă while, în bucla while, atât datele privind umiditatea, cât și temperatura sunt procesate utilizând funcția Adafruit_DHT.read_retry . Mai mult, definim două variabile speciale și atribuim datele de ieșire acelor variabile.
în timp ce este adevărat: umiditate, temperatură = Adafruit_DHT.read_retry (senzor, pin)
Apoi, este scrisă o funcție pentru a conecta IoT Hub folosind parametrii de conexiune pe care i-am definit anterior.
def iothub_client_init (): client = IoTHubDeviceClient.create_from_connection_string (CONNECTION_STRING) return client
În cele din urmă, în pasul următor, atât datele de temperatură cât și de umiditate sunt trimise către Azure Hub, utilizând formatul așa cum se arată în codul de mai jos. De asemenea, am folosit o metodă try and catch pentru a identifica dacă există vreo eroare în cod.
def iothub_client_telemetry_sample_run (): try: client = iothub_client_init () print ("Trimiterea datelor către Hub IoT, apăsați Ctrl-C pentru a ieși") în timp ce True: msg_txt_formatted = MSG_SND.format (temperature = temperature, umiditate = umiditate) mesaj = Mesaj (msg_txt_formatted) print ("Trimiterea mesajului: {}". format (mesaj)) client.send_message (mesaj) print ("Mesaj trimis cu succes") time.sleep (3)
Publicați date pe Azure IoT Hub - Testare
După ce ați scris cu succes codul, compilați-l și verificați dacă există erori. Dacă blocul de cod este compilat cu succes, executați codul. În fereastra Terminal, ar trebui să vedeți mesajul care spune: „Mesajul a fost trimis cu succes”. Captura de ecran a ferestrei este prezentată mai jos:
Acum, pentru a vedea datele în Azure IoT Hub, accesați portalul și faceți clic pe terminalul CLI și rulați următoarele comenzi înlocuind acreditările dvs. în acesta.
az iot hub monitor-events --hub-name XYZ --device-id XYZ
Notă:
Înlocuiți XYZ cu numele hub-ului și ID-ul dispozitivului.
După executarea comenzii de mai sus, ar trebui să obțineți datele așa cum se arată mai jos pe ecran. Acestea sunt aceleași date care au fost trimise de la Raspberry Pi.
Aceasta marchează sfârșitul acestui tutorial, sper că ți-a plăcut articolul și ai învățat ceva nou. Dacă aveți întrebări cu privire la articol, le puteți lăsa în secțiunea de comentarii de mai jos. Sau puteți utiliza forumul nostru electronic pentru a obține un răspuns mai rapid și mai bun.