51 KiB
Μεταφέρετε το φυτό σας στο cloud
Σκίτσο από τη Nitya Narasimhan. Κάντε κλικ στην εικόνα για μεγαλύτερη έκδοση.
Αυτό το μάθημα διδάχθηκε ως μέρος της σειράς IoT for Beginners Project 2 - Digital Agriculture από το Microsoft Reactor.
Ερωτήσεις πριν το μάθημα
Εισαγωγή
Στο προηγούμενο μάθημα, μάθατε πώς να συνδέσετε το φυτό σας σε έναν MQTT broker και να ελέγξετε ένα ρελέ μέσω κώδικα που εκτελείται τοπικά. Αυτό αποτελεί τη βάση ενός αυτοματοποιημένου συστήματος ποτίσματος συνδεδεμένου στο διαδίκτυο, το οποίο μπορεί να χρησιμοποιηθεί από μεμονωμένα φυτά στο σπίτι έως και εμπορικές φάρμες.
Η συσκευή IoT επικοινωνούσε με έναν δημόσιο MQTT broker για να δείξει τις βασικές αρχές, αλλά αυτός δεν είναι ο πιο αξιόπιστος ή ασφαλής τρόπος. Σε αυτό το μάθημα θα μάθετε για το cloud και τις δυνατότητες IoT που παρέχονται από δημόσιες υπηρεσίες cloud. Θα μάθετε επίσης πώς να μεταφέρετε το φυτό σας από τον δημόσιο MQTT broker σε μία από αυτές τις υπηρεσίες cloud.
Σε αυτό το μάθημα θα καλύψουμε:
- Τι είναι το cloud;
- Δημιουργία συνδρομής στο cloud
- Υπηρεσίες IoT στο cloud
- Δημιουργία υπηρεσίας IoT στο cloud
- Επικοινωνία με το IoT Hub
- Σύνδεση της συσκευής σας με την υπηρεσία IoT
Τι είναι το cloud;
Πριν από το cloud, όταν μια εταιρεία ήθελε να παρέχει υπηρεσίες στους υπαλλήλους της (όπως βάσεις δεδομένων ή αποθήκευση αρχείων) ή στο κοινό (όπως ιστοσελίδες), έπρεπε να δημιουργήσει και να λειτουργήσει ένα data center. Αυτό μπορούσε να είναι από ένα δωμάτιο με λίγους υπολογιστές έως ένα κτίριο με πολλούς υπολογιστές. Η εταιρεία έπρεπε να διαχειρίζεται τα πάντα, όπως:
- Αγορά υπολογιστών
- Συντήρηση υλικού
- Παροχή ενέργειας και ψύξη
- Δικτύωση
- Ασφάλεια, συμπεριλαμβανομένης της ασφάλειας του κτιρίου και του λογισμικού στους υπολογιστές
- Εγκατάσταση και ενημερώσεις λογισμικού
Αυτό μπορούσε να είναι πολύ ακριβό, να απαιτεί ένα ευρύ φάσμα εξειδικευμένων υπαλλήλων και να είναι πολύ αργό στις αλλαγές όταν χρειάζεται. Για παράδειγμα, αν ένα ηλεκτρονικό κατάστημα έπρεπε να προετοιμαστεί για μια πολυάσχολη εορταστική περίοδο, θα έπρεπε να σχεδιάσει μήνες νωρίτερα για να αγοράσει περισσότερο υλικό, να το ρυθμίσει, να εγκαταστήσει το λογισμικό και να διαχειριστεί τη διαδικασία πωλήσεων. Μετά την εορταστική περίοδο, όταν οι πωλήσεις μειώνονταν, θα έμεναν με υπολογιστές που είχαν πληρώσει και δεν χρησιμοποιούνταν μέχρι την επόμενη πολυάσχολη περίοδο.
✅ Πιστεύετε ότι αυτό θα επέτρεπε στις εταιρείες να κινηθούν γρήγορα; Αν ένας διαδικτυακός πωλητής ρούχων γινόταν ξαφνικά δημοφιλής λόγω μιας διασημότητας που φορούσε τα ρούχα του, θα μπορούσε να αυξήσει γρήγορα την υπολογιστική του ισχύ για να υποστηρίξει την ξαφνική αύξηση των παραγγελιών;
Ο υπολογιστής κάποιου άλλου
Το cloud συχνά αναφέρεται χιουμοριστικά ως "ο υπολογιστής κάποιου άλλου". Η αρχική ιδέα ήταν απλή - αντί να αγοράζετε υπολογιστές, νοικιάζετε τον υπολογιστή κάποιου άλλου. Κάποιος άλλος, ένας πάροχος cloud computing, θα διαχειριζόταν τεράστια data centers. Θα ήταν υπεύθυνος για την αγορά και εγκατάσταση του υλικού, τη διαχείριση της ενέργειας και της ψύξης, τη δικτύωση, την ασφάλεια του κτιρίου, τις ενημερώσεις υλικού και λογισμικού, τα πάντα. Ως πελάτης, θα νοικιάζατε τους υπολογιστές που χρειάζεστε, νοικιάζοντας περισσότερους όταν αυξάνεται η ζήτηση και μειώνοντας τον αριθμό που νοικιάζετε όταν η ζήτηση πέφτει. Αυτά τα data centers βρίσκονται σε όλο τον κόσμο.
Αυτά τα data centers μπορούν να έχουν μέγεθος πολλών τετραγωνικών χιλιομέτρων. Οι παραπάνω εικόνες τραβήχτηκαν πριν από λίγα χρόνια σε ένα data center του Microsoft cloud και δείχνουν το αρχικό μέγεθος, καθώς και μια προγραμματισμένη επέκταση. Η περιοχή που έχει καθαριστεί για την επέκταση είναι πάνω από 5 τετραγωνικά χιλιόμετρα.
💁 Αυτά τα data centers απαιτούν τόσο μεγάλες ποσότητες ενέργειας που ορισμένα έχουν δικούς τους σταθμούς παραγωγής ενέργειας. Λόγω του μεγέθους τους και του επιπέδου επένδυσης από τους παρόχους cloud, είναι συνήθως πολύ φιλικά προς το περιβάλλον. Είναι πιο αποδοτικά από έναν μεγάλο αριθμό μικρών data centers, λειτουργούν κυρίως με ανανεώσιμες πηγές ενέργειας και οι πάροχοι cloud εργάζονται σκληρά για να μειώσουν τα απόβλητα, να περιορίσουν τη χρήση νερού και να αναδασώσουν περιοχές που έχουν αποψιλωθεί για την κατασκευή data centers. Μπορείτε να διαβάσετε περισσότερα για το πώς ένας πάροχος cloud εργάζεται για τη βιωσιμότητα στον ιστότοπο βιωσιμότητας του Azure.
✅ Κάντε έρευνα: Διαβάστε για τους μεγάλους παρόχους cloud όπως το Azure από τη Microsoft ή το GCP από την Google. Πόσα data centers έχουν και πού βρίσκονται στον κόσμο;
Η χρήση του cloud μειώνει το κόστος για τις εταιρείες και τους επιτρέπει να επικεντρωθούν σε αυτό που κάνουν καλύτερα, αφήνοντας την εξειδίκευση στο cloud computing στα χέρια του παρόχου. Οι εταιρείες δεν χρειάζεται πλέον να νοικιάζουν ή να αγοράζουν χώρο σε data centers, να πληρώνουν διαφορετικούς παρόχους για συνδεσιμότητα και ενέργεια ή να απασχολούν ειδικούς. Αντίθετα, μπορούν να πληρώνουν έναν μηνιαίο λογαριασμό στον πάροχο cloud για να φροντίζει τα πάντα.
Ο πάροχος cloud μπορεί στη συνέχεια να χρησιμοποιήσει οικονομίες κλίμακας για να μειώσει το κόστος, αγοράζοντας υπολογιστές μαζικά σε χαμηλότερες τιμές, επενδύοντας σε εργαλεία για να μειώσει το φόρτο εργασίας για τη συντήρηση, ακόμη και σχεδιάζοντας και κατασκευάζοντας το δικό του υλικό για να βελτιώσει την προσφορά του cloud.
Microsoft Azure
Το Azure είναι το cloud για προγραμματιστές από τη Microsoft, και αυτό είναι το cloud που θα χρησιμοποιήσετε για αυτά τα μαθήματα. Το παρακάτω βίντεο δίνει μια σύντομη επισκόπηση του Azure:
Δημιουργία συνδρομής στο cloud
Για να χρησιμοποιήσετε υπηρεσίες στο cloud, θα χρειαστεί να εγγραφείτε για μια συνδρομή με έναν πάροχο cloud. Για αυτό το μάθημα, θα εγγραφείτε για μια συνδρομή στο Microsoft Azure. Αν έχετε ήδη συνδρομή στο Azure, μπορείτε να παραλείψετε αυτήν την εργασία. Οι λεπτομέρειες της συνδρομής που περιγράφονται εδώ είναι σωστές τη στιγμή της γραφής, αλλά μπορεί να αλλάξουν.
💁 Αν έχετε πρόσβαση σε αυτά τα μαθήματα μέσω του σχολείου σας, μπορεί να έχετε ήδη διαθέσιμη μια συνδρομή στο Azure. Ελέγξτε με τον δάσκαλό σας.
Υπάρχουν δύο διαφορετικοί τύποι δωρεάν συνδρομής στο Azure που μπορείτε να εγγραφείτε:
-
Azure για Φοιτητές - Αυτή είναι μια συνδρομή σχεδιασμένη για φοιτητές 18+. Δεν χρειάζεστε πιστωτική κάρτα για να εγγραφείτε και χρησιμοποιείτε τη σχολική σας διεύθυνση email για να επαληθεύσετε ότι είστε φοιτητής. Όταν εγγραφείτε, λαμβάνετε 100$ για να ξοδέψετε σε πόρους cloud, μαζί με δωρεάν υπηρεσίες, συμπεριλαμβανομένης μιας δωρεάν έκδοσης μιας υπηρεσίας IoT. Αυτό διαρκεί 12 μήνες και μπορείτε να το ανανεώσετε κάθε χρόνο που παραμένετε φοιτητής.
-
Δωρεάν συνδρομή στο Azure - Αυτή είναι μια συνδρομή για οποιονδήποτε δεν είναι φοιτητής. Θα χρειαστείτε πιστωτική κάρτα για να εγγραφείτε στη συνδρομή, αλλά η κάρτα σας δεν θα χρεωθεί, χρησιμοποιείται μόνο για να επαληθευτεί ότι είστε πραγματικός άνθρωπος και όχι bot. Λαμβάνετε 200$ πίστωσης για να χρησιμοποιήσετε τις πρώτες 30 ημέρες σε οποιαδήποτε υπηρεσία, μαζί με δωρεάν επίπεδα υπηρεσιών του Azure. Μόλις εξαντληθεί η πίστωσή σας, η κάρτα σας δεν θα χρεωθεί εκτός αν μετατρέψετε τη συνδρομή σας σε συνδρομή πληρωμής ανά χρήση.
💁 Η Microsoft προσφέρει μια συνδρομή Azure για Φοιτητές Starter για φοιτητές κάτω των 18 ετών, αλλά τη στιγμή της γραφής αυτή δεν υποστηρίζει υπηρεσίες IoT.
Εργασία - εγγραφή για δωρεάν συνδρομή στο cloud
Αν είστε φοιτητής ηλικίας 18+, τότε μπορείτε να εγγραφείτε για μια συνδρομή Azure για Φοιτητές. Θα χρειαστεί να επαληθεύσετε με μια σχολική διεύθυνση email. Μπορείτε να το κάνετε με δύο τρόπους:
-
Εγγραφείτε για το πακέτο προγραμματιστών φοιτητών GitHub στο education.github.com/pack. Αυτό σας δίνει πρόσβαση σε μια σειρά εργαλείων και προσφορών, συμπεριλαμβανομένων του GitHub και του Microsoft Azure. Μόλις εγγραφείτε στο πακέτο προγραμματιστών, μπορείτε να ενεργοποιήσετε την προσφορά Azure για Φοιτητές.
-
Εγγραφείτε απευθείας για έναν λογαριασμό Azure για Φοιτητές στο azure.microsoft.com/free/students.
⚠️ Αν η σχολική σας διεύθυνση email δεν αναγνωρίζεται, υποβάλετε ένα θέμα σε αυτό το repo και θα δούμε αν μπορεί να προστεθεί στη λίστα επιτρεπόμενων του Azure για Φοιτητές.
Αν δεν είστε φοιτητής ή δεν έχετε έγκυρη σχολική διεύθυνση email, τότε μπορείτε να εγγραφείτε για μια δωρεάν συνδρομή στο Azure.
- Εγγραφείτε για μια δωρεάν συνδρομή στο Azure στο azure.microsoft.com/free
Υπηρεσίες IoT στο cloud
Ο δημόσιος δοκιμαστικός MQTT broker που χρησιμοποιούσατε είναι ένα εξαιρετικό εργαλείο για εκμάθηση, αλλά έχει αρκετά μειονεκτήματα ως εργαλείο για εμπορική χρήση:
- Αξιοπιστία - είναι μια δωρεάν υπηρεσία χωρίς εγγυήσεις και μπορεί να απενεργοποιηθεί ανά πάσα στιγμή
- Ασφάλεια - είναι δημόσια, οπότε οποιοσδήποτε μπορεί να ακούσει την τηλεμετρία σας ή να στείλει εντολές για να ελέγξει το υλικό σας
- Απόδοση - είναι σχεδιασμένη για λίγα δοκιμαστικά μηνύματα, οπότε δεν θα μπορούσε να διαχειριστεί μεγάλο όγκο μηνυμάτων
- Ανακάλυψη - δεν υπάρχει τρόπος να γνωρίζετε ποιες συσκευές είναι συνδεδεμένες
Οι υπηρεσίες IoT στο cloud λύνουν αυτά τα προβλήματα. Διατηρούνται από μεγάλους παρόχους cloud που επενδύουν σημαντικά στην αξιοπιστία και είναι διαθέσιμοι για να διορθώσουν τυχόν προβλήματα που μπορεί να προκύψουν. Έχουν ενσωματωμένη ασφάλεια για να αποτρέψουν τους χάκερ από το να διαβάσουν τα δεδομένα σας ή να στείλουν κακόβουλες εντολές. Είναι επίσης υψηλής απόδοσης, ικανές να διαχειριστούν εκατομμύρια μηνύματα κάθε μέρα, εκμεταλλευόμενες το cloud για να κλιμακωθούν όπως χρειάζεται.
💁 Παρόλο που πληρώνετε για αυτά τα πλεονεκτήματα με μηνιαία χρέωση, οι περισσότεροι πάροχοι cloud προσφέρουν μια δωρεάν έκδοση της υπηρεσίας IoT τους με περιορισμένο αριθμό μηνυμάτων ανά ημέρα ή συσκευών που μπορούν να συνδεθούν. Αυτή η δωρεάν έκδοση είναι συνήθως υπεραρκετή για έναν προγραμματιστή να μάθει για την υπηρεσία. Σε αυτό το μάθημα θα χρησιμοποιήσετε μια δωρεάν έκδοση.
Οι συσκευές IoT συνδέονται με μια υπηρεσία cloud είτε χρησιμοποιώντας ένα SDK συσκευής (μια βιβλιοθήκη που παρέχει κώδικα για να λειτουργήσει με τις δυνατότητες της υπηρεσίας) είτε απευθείας μέσω ενός πρωτοκόλλου επικοινωνίας όπως το MQTT ή το HTTP. Το SDK συσκευής είναι συνήθως η πιο εύκολη διαδρομή, καθώς χειρίζεται τα πάντα για εσάς, όπως το να γνωρίζει ποια θέματα να δημοσιεύσει ή να εγγραφεί και πώς να χειριστεί την ασφάλεια.
Η συσκευή σας στη συνέχεια επικοινωνεί με άλλα μέρη της εφαρμογής σας μέσω αυτής της υπηρεσίας - παρόμοια με το πώς στέλνατε τηλεμετρία και λαμβάνατε εντολές μέσω MQTT. Αυτό γίνεται συνήθως χρησιμοποιώντας ένα SDK υπηρεσίας ή μια παρόμοια βιβλιοθήκη. Τα μηνύματα έρχονται από τη συσκευή σας στην υπηρεσία, όπου άλλα μέρη της εφαρμογής σας μπορούν να τα διαβάσουν, και τα μηνύματα μπορούν να σταλούν πίσω στη συσκευή σας.
Αυτές οι υπηρεσίες εφαρμόζουν ασφάλεια γνωρίζοντας όλες τις συσκευές που μπορούν να συνδεθούν και να στείλουν δεδομένα, είτε με την προεγγραφή των συσκευών στην υπηρεσία είτε δίνοντας στις συσκευές μυστικά κλειδιά ή πιστοποιητικά που μπορούν να χρησιμοποιήσουν για να εγγραφούν στην υπηρεσία την πρώτη φορά που συνδέονται. Άγνωστες συσκευές δεν μπορούν να συνδεθούν, αν προσπαθήσουν η υπηρεσία απορρίπτει τη σύνδεση και αγνοεί τα μηνύματα 💁 Οι υπηρεσίες IoT υλοποιούν επίσης πρόσθετες δυνατότητες, και οι πάροχοι cloud διαθέτουν επιπλέον υπηρεσίες και εφαρμογές που μπορούν να συνδεθούν με την υπηρεσία. Για παράδειγμα, αν θέλετε να αποθηκεύσετε όλα τα μηνύματα τηλεμετρίας που στέλνονται από όλες τις συσκευές σε μια βάση δεδομένων, συνήθως χρειάζονται μόνο λίγα κλικ στο εργαλείο διαμόρφωσης του παρόχου cloud για να συνδέσετε την υπηρεσία με μια βάση δεδομένων και να μεταφέρετε τα δεδομένα.
Δημιουργία υπηρεσίας IoT στο cloud
Τώρα που έχετε μια συνδρομή Azure, μπορείτε να εγγραφείτε σε μια υπηρεσία IoT. Η υπηρεσία IoT της Microsoft ονομάζεται Azure IoT Hub.
Το παρακάτω βίντεο παρέχει μια σύντομη επισκόπηση του Azure IoT Hub:
🎥 Κάντε κλικ στην παραπάνω εικόνα για να παρακολουθήσετε το βίντεο
✅ Αφιερώστε λίγο χρόνο για να κάνετε έρευνα και να διαβάσετε την επισκόπηση του IoT Hub στη τεκμηρίωση του Microsoft IoT Hub.
Οι υπηρεσίες cloud που είναι διαθέσιμες στο Azure μπορούν να ρυθμιστούν μέσω μιας διαδικτυακής πύλης ή μέσω μιας διεπαφής γραμμής εντολών (CLI). Για αυτήν την εργασία, θα χρησιμοποιήσετε το CLI.
Εργασία - εγκατάσταση του Azure CLI
Για να χρησιμοποιήσετε το Azure CLI, πρέπει πρώτα να το εγκαταστήσετε στον υπολογιστή σας ή στο Mac σας.
-
Ακολουθήστε τις οδηγίες στη τεκμηρίωση του Azure CLI για να εγκαταστήσετε το CLI.
-
Το Azure CLI υποστηρίζει έναν αριθμό επεκτάσεων που προσθέτουν δυνατότητες για τη διαχείριση μιας ευρείας γκάμας υπηρεσιών Azure. Εγκαταστήστε την επέκταση IoT εκτελώντας την παρακάτω εντολή από τη γραμμή εντολών ή το τερματικό σας:
az extension add --name azure-iot
-
Από τη γραμμή εντολών ή το τερματικό σας, εκτελέστε την παρακάτω εντολή για να συνδεθείτε στη συνδρομή σας στο Azure μέσω του Azure CLI.
az login
Θα ανοίξει μια ιστοσελίδα στον προεπιλεγμένο σας περιηγητή. Συνδεθείτε χρησιμοποιώντας τον λογαριασμό που χρησιμοποιήσατε για να εγγραφείτε στη συνδρομή σας στο Azure. Μόλις συνδεθείτε, μπορείτε να κλείσετε την καρτέλα του περιηγητή.
-
Εάν έχετε πολλές συνδρομές Azure, όπως μια που παρέχεται από το σχολείο σας και τη δική σας συνδρομή Azure for Students, θα χρειαστεί να επιλέξετε ποια θέλετε να χρησιμοποιήσετε. Εκτελέστε την παρακάτω εντολή για να δείτε όλες τις συνδρομές στις οποίες έχετε πρόσβαση:
az account list --output table
Στην έξοδο, θα δείτε το όνομα κάθε συνδρομής μαζί με το
SubscriptionId
.➜ ~ az account list --output table Name CloudName SubscriptionId State IsDefault ---------------------- ----------- ------------------------------------ ------- ----------- School-subscription AzureCloud cb30cde9-814a-42f0-a111-754cb788e4e1 Enabled True Azure for Students AzureCloud fa51c31b-162c-4599-add6-781def2e1fbf Enabled False
Για να επιλέξετε τη συνδρομή που θέλετε να χρησιμοποιήσετε, χρησιμοποιήστε την παρακάτω εντολή:
az account set --subscription <SubscriptionId>
Αντικαταστήστε το
<SubscriptionId>
με το Id της συνδρομής που θέλετε να χρησιμοποιήσετε. Αφού εκτελέσετε αυτήν την εντολή, εκτελέστε ξανά την εντολή για να δείτε τους λογαριασμούς σας. Θα δείτε ότι η στήληIsDefault
θα έχει την τιμήTrue
για τη συνδρομή που μόλις ορίσατε.
Εργασία - δημιουργία ομάδας πόρων
Οι υπηρεσίες Azure, όπως οι περιπτώσεις IoT Hub, οι εικονικές μηχανές, οι βάσεις δεδομένων ή οι υπηρεσίες AI, αναφέρονται ως πόροι. Κάθε πόρος πρέπει να ανήκει σε μια Ομάδα Πόρων, μια λογική ομαδοποίηση ενός ή περισσότερων πόρων.
💁 Η χρήση ομάδων πόρων σημαίνει ότι μπορείτε να διαχειριστείτε πολλές υπηρεσίες ταυτόχρονα. Για παράδειγμα, μόλις ολοκληρώσετε όλα τα μαθήματα για αυτό το έργο, μπορείτε να διαγράψετε την ομάδα πόρων και όλοι οι πόροι σε αυτήν θα διαγραφούν αυτόματα.
-
Υπάρχουν πολλά κέντρα δεδομένων Azure σε όλο τον κόσμο, χωρισμένα σε περιοχές. Όταν δημιουργείτε έναν πόρο ή μια ομάδα πόρων Azure, πρέπει να καθορίσετε πού θέλετε να δημιουργηθεί. Εκτελέστε την παρακάτω εντολή για να λάβετε τη λίστα των τοποθεσιών:
az account list-locations --output table
Θα δείτε μια λίστα τοποθεσιών. Αυτή η λίστα θα είναι μεγάλη.
💁 Τη στιγμή της συγγραφής, υπάρχουν 65 τοποθεσίες στις οποίες μπορείτε να αναπτύξετε.
➜ ~ az account list-locations --output table DisplayName Name RegionalDisplayName ------------------------ ------------------- ------------------------------------- East US eastus (US) East US East US 2 eastus2 (US) East US 2 South Central US southcentralus (US) South Central US ...
Σημειώστε την τιμή από τη στήλη
Name
της περιοχής που βρίσκεται πιο κοντά σας. Μπορείτε να βρείτε τις περιοχές σε έναν χάρτη στη σελίδα γεωγραφιών του Azure. -
Εκτελέστε την παρακάτω εντολή για να δημιουργήσετε μια ομάδα πόρων με το όνομα
soil-moisture-sensor
. Τα ονόματα των ομάδων πόρων πρέπει να είναι μοναδικά στη συνδρομή σας.az group create --name soil-moisture-sensor \ --location <location>
Αντικαταστήστε το
<location>
με την τοποθεσία που επιλέξατε στο προηγούμενο βήμα.
Εργασία - δημιουργία IoT Hub
Μπορείτε τώρα να δημιουργήσετε έναν πόρο IoT Hub στην ομάδα πόρων σας.
-
Χρησιμοποιήστε την παρακάτω εντολή για να δημιουργήσετε τον πόρο IoT Hub:
az iot hub create --resource-group soil-moisture-sensor \ --sku F1 \ --partition-count 2 \ --name <hub_name>
Αντικαταστήστε το
<hub_name>
με ένα όνομα για το hub σας. Αυτό το όνομα πρέπει να είναι μοναδικό παγκοσμίως - δηλαδή κανένα άλλο IoT Hub που έχει δημιουργηθεί από οποιονδήποτε δεν μπορεί να έχει το ίδιο όνομα. Αυτό το όνομα χρησιμοποιείται σε μια διεύθυνση URL που δείχνει στο hub, οπότε πρέπει να είναι μοναδικό. Χρησιμοποιήστε κάτι όπωςsoil-moisture-sensor-
και προσθέστε έναν μοναδικό αναγνωριστικό στο τέλος, όπως μερικές τυχαίες λέξεις ή το όνομά σας.Η επιλογή
--sku F1
υποδεικνύει τη χρήση της δωρεάν βαθμίδας. Η δωρεάν βαθμίδα υποστηρίζει 8.000 μηνύματα την ημέρα μαζί με τις περισσότερες δυνατότητες των βαθμίδων πλήρους τιμής.🎓 Οι διαφορετικές βαθμίδες τιμολόγησης των υπηρεσιών Azure αναφέρονται ως επίπεδα. Κάθε επίπεδο έχει διαφορετικό κόστος και παρέχει διαφορετικές δυνατότητες ή όγκους δεδομένων.
💁 Εάν θέλετε να μάθετε περισσότερα για την τιμολόγηση, μπορείτε να δείτε τον οδηγό τιμολόγησης του Azure IoT Hub.
Η επιλογή
--partition-count 2
ορίζει πόσα ρεύματα δεδομένων υποστηρίζει το IoT Hub. Περισσότερα partitions μειώνουν την απόφραξη δεδομένων όταν πολλαπλές συσκευές διαβάζουν και γράφουν από το IoT Hub. Τα partitions είναι εκτός του πεδίου αυτών των μαθημάτων, αλλά αυτή η τιμή πρέπει να οριστεί για να δημιουργηθεί ένα IoT Hub δωρεάν βαθμίδας.💁 Μπορείτε να έχετε μόνο ένα IoT Hub δωρεάν βαθμίδας ανά συνδρομή.
Το IoT Hub θα δημιουργηθεί. Μπορεί να χρειαστεί ένα λεπτό για να ολοκληρωθεί.
Επικοινωνία με το IoT Hub
Στο προηγούμενο μάθημα, χρησιμοποιήσατε το MQTT και στείλατε μηνύματα μπρος-πίσω σε διαφορετικά θέματα, με τα διαφορετικά θέματα να έχουν διαφορετικούς σκοπούς. Αντί να στέλνετε μηνύματα σε διαφορετικά θέματα, το IoT Hub έχει έναν αριθμό καθορισμένων τρόπων για τη συσκευή να επικοινωνεί με το Hub ή το Hub να επικοινωνεί με τη συσκευή.
💁 Στο παρασκήνιο, αυτή η επικοινωνία μεταξύ του IoT Hub και της συσκευής σας μπορεί να χρησιμοποιεί MQTT, HTTPS ή AMQP.
-
Μηνύματα από συσκευή προς cloud (D2C) - αυτά είναι μηνύματα που αποστέλλονται από μια συσκευή στο IoT Hub, όπως τηλεμετρία. Στη συνέχεια, μπορούν να διαβαστούν από το IoT Hub από τον κώδικα της εφαρμογής σας.
🎓 Στο παρασκήνιο, το IoT Hub χρησιμοποιεί μια υπηρεσία Azure που ονομάζεται Event Hubs. Όταν γράφετε κώδικα για να διαβάσετε μηνύματα που αποστέλλονται στο hub, αυτά συχνά ονομάζονται γεγονότα.
-
Μηνύματα από cloud προς συσκευή (C2D) - αυτά είναι μηνύματα που αποστέλλονται από τον κώδικα της εφαρμογής, μέσω ενός IoT Hub, σε μια συσκευή IoT.
-
Αιτήματα άμεσων μεθόδων - αυτά είναι μηνύματα που αποστέλλονται από τον κώδικα της εφαρμογής μέσω ενός IoT Hub σε μια συσκευή IoT για να ζητηθεί από τη συσκευή να κάνει κάτι, όπως να ελέγξει έναν ενεργοποιητή. Αυτά τα μηνύματα απαιτούν απάντηση, ώστε ο κώδικας της εφαρμογής σας να μπορεί να διαπιστώσει εάν επεξεργάστηκαν με επιτυχία.
-
Δίδυμα συσκευών - αυτά είναι έγγραφα JSON που διατηρούνται συγχρονισμένα μεταξύ της συσκευής και του IoT Hub και χρησιμοποιούνται για την αποθήκευση ρυθμίσεων ή άλλων ιδιοτήτων που είτε αναφέρονται από τη συσκευή είτε πρέπει να οριστούν στη συσκευή (γνωστά ως επιθυμητά) από το IoT Hub.
Το IoT Hub μπορεί να αποθηκεύσει μηνύματα και αιτήματα άμεσων μεθόδων για μια ρυθμιζόμενη χρονική περίοδο (με προεπιλογή μία ημέρα), οπότε αν μια συσκευή ή ο κώδικας της εφαρμογής χάσει τη σύνδεση, μπορεί να ανακτήσει τα μηνύματα που στάλθηκαν ενώ ήταν εκτός σύνδεσης μόλις επανασυνδεθεί. Τα δίδυμα συσκευών διατηρούνται μόνιμα στο IoT Hub, οπότε οποιαδήποτε στιγμή μια συσκευή μπορεί να επανασυνδεθεί και να λάβει το πιο πρόσφατο δίδυμο συσκευής.
✅ Κάντε έρευνα: Διαβάστε περισσότερα για αυτούς τους τύπους μηνυμάτων στις οδηγίες επικοινωνίας από συσκευή προς cloud και στις οδηγίες επικοινωνίας από cloud προς συσκευή στη τεκμηρίωση του IoT Hub.
Συνδέστε τη συσκευή σας με την υπηρεσία IoT
Μόλις δημιουργηθεί το hub, η συσκευή IoT σας μπορεί να συνδεθεί σε αυτό. Μόνο εγγεγραμμένες συσκευές μπορούν να συνδεθούν σε μια υπηρεσία, οπότε θα χρειαστεί να εγγράψετε πρώτα τη συσκευή σας. Όταν εγγραφείτε, μπορείτε να λάβετε μια συμβολοσειρά σύνδεσης που η συσκευή μπορεί να χρησιμοποιήσει για να συνδεθεί. Αυτή η συμβολοσειρά σύνδεσης είναι συγκεκριμένη για τη συσκευή και περιέχει πληροφορίες σχετικά με το IoT Hub, τη συσκευή και ένα μυστικό κλειδί που θα επιτρέψει σε αυτήν τη συσκευή να συνδεθεί.
🎓 Μια συμβολοσειρά σύνδεσης είναι ένας γενικός όρος για ένα κομμάτι κειμένου που περιέχει λεπτομέρειες σύνδεσης. Χρησιμοποιούνται κατά τη σύνδεση σε IoT Hubs, βάσεις δεδομένων και πολλές άλλες υπηρεσίες. Συνήθως αποτελούνται από έναν αναγνωριστικό για την υπηρεσία, όπως μια διεύθυνση URL, και πληροφορίες ασφαλείας, όπως ένα μυστικό κλειδί. Αυτές περνούν σε SDKs για να συνδεθούν με την υπηρεσία.
⚠️ Οι συμβολοσειρές σύνδεσης πρέπει να διατηρούνται ασφαλείς! Η ασφάλεια θα καλυφθεί με περισσότερες λεπτομέρειες σε ένα μελλοντικό μάθημα.
Εργασία - εγγραφή της συσκευής IoT σας
Η συσκευή IoT μπορεί να εγγραφεί στο IoT Hub σας χρησιμοποιώντας το Azure CLI.
-
Εκτελέστε την παρακάτω εντολή για να εγγράψετε μια συσκευή:
az iot hub device-identity create --device-id soil-moisture-sensor \ --hub-name <hub_name>
Αντικαταστήστε το
<hub_name>
με το όνομα που χρησιμοποιήσατε για το IoT Hub σας.Αυτό θα δημιουργήσει μια συσκευή με ID
soil-moisture-sensor
. -
Όταν η συσκευή IoT σας συνδεθεί στο IoT Hub σας χρησιμοποιώντας το SDK, θα χρειαστεί να χρησιμοποιήσει μια συμβολοσειρά σύνδεσης που παρέχει τη διεύθυνση URL του hub, μαζί με ένα μυστικό κλειδί. Εκτελέστε την παρακάτω εντολή για να λάβετε τη συμβολοσειρά σύνδεσης:
az iot hub device-identity connection-string show --device-id soil-moisture-sensor \ --output table \ --hub-name <hub_name>
Αντικαταστήστε το
<hub_name>
με το όνομα που χρησιμοποιήσατε για το IoT Hub σας. -
Αποθηκεύστε τη συμβολοσειρά σύνδεσης που εμφανίζεται στην έξοδο, καθώς θα τη χρειαστείτε αργότερα.
Εργασία - συνδέστε τη συσκευή IoT σας στο cloud
Ακολουθήστε τον σχετικό οδηγό για να συνδέσετε τη συσκευή IoT σας στο cloud:
Εργασία - παρακολούθηση γεγονότων
Προς το παρόν, δεν θα ενημερώσετε τον κώδικα του διακομιστή σας. Αντίθετα, μπορείτε να χρησιμοποιήσετε το Azure CLI για να παρακολουθήσετε γεγονότα από τη συσκευή IoT σας.
-
Βεβαιωθείτε ότι η συσκευή IoT σας λειτουργεί και στέλνει τιμές τηλεμετρίας υγρασίας εδάφους.
-
Εκτελέστε την παρακάτω εντολή στη γραμμή εντολών ή στο τερματικό σας για να παρακολουθήσετε μηνύματα που αποστέλλονται στο IoT Hub σας:
az iot hub monitor-events --hub-name <hub_name>
Αντικαταστήστε το
<hub_name>
με το όνομα που χρησιμοποιήσατε για το IoT Hub σας.Θα δείτε μηνύματα να εμφανίζονται στην έξοδο της κονσόλας καθώς αποστέλλονται από τη συσκευή IoT σας.
Starting event monitor, use ctrl-c to stop... { "event": { "origin": "soil-moisture-sensor", "module": "", "interface": "", "component": "", "payload": "{\"soil_moisture\": 376}" } }, { "event": { "origin": "soil-moisture-sensor", "module": "", "interface": "", "component": "", "payload": "{\"soil_moisture\": 381}" } }
Το περιεχόμενο του
payload
θα ταιριάζει με το μήνυμα που αποστέλλεται από τη συσκευή IoT σας.Τη στιγμή της συγγραφής, η επέκταση
az iot
δεν λειτουργεί πλήρως σε συσκευές Apple Silicon. Εάν χρησιμοποιείτε συσκευή Apple Silicon, θα χρειαστεί να παρακολουθήσετε τα μηνύματα με διαφορετικό τρόπο, όπως χρησιμοποιώντας τα Azure IoT Tools για το Visual Studio Code. -
Αυτά τα μηνύματα έχουν έναν αριθμό ιδιοτήτων που επισυνάπτονται αυτόματα, όπως η χρονική σήμανση που στάλθηκαν. Αυτές είναι γνωστές ως annotations. Για να δείτε όλες τις σημειώσεις μηνυμάτων, χρησιμοποιήστε την παρακάτω εντολή:
az iot hub monitor-events --properties anno --hub-name <hub_name>
Αντικαταστήστε το
<hub_name>
με το όνομα που χρησιμοποιήσατε για το IoT Hub σας.Θα δείτε μηνύματα να εμφανίζονται στην έξοδο της κονσόλας καθώς αποστέλλονται από τη συσκευή IoT σας.
Starting event monitor, use ctrl-c to stop... { "event": { "origin": "soil-moisture-sensor", "module": "", "interface": "", "component": "", "properties": {}, "annotations": { "iothub-connection-device-id": "soil-moisture-sensor", "iothub-connection-auth-method": "{\"scope\":\"device\",\"type\":\"sas\",\"issuer\":\"iothub\",\"acceptingIpFilterRule\":null}", "iothub-connection-auth-generation-id": "637553997165220462", "iothub-enqueuedtime": 1619976150288, "iothub-message-source": "Telemetry", "x-opt-sequence-number": 1379, "x-opt-offset": "550576", "x-opt-enqueued-time": 1619976150277 }, "payload": "{\"soil_moisture\": 381}" } }
Οι χρονικές τιμές στις σημειώσεις είναι σε χρόνο UNIX, που αντιπροσωπεύει τον αριθμό των δευτερολέπτων από τα μεσάνυχτα της 1ης Ιανουαρίου 1970.
Έξοδος από την παρακολούθηση γεγονότων όταν τελειώσετε.
Εργ
<hub_name> ` με το όνομα που χρησιμοποιήσατε για το IoT Hub σας.
Αυτό στέλνει ένα αίτημα άμεσης μεθόδου για τη μέθοδο που καθορίζεται από το method-name
. Οι άμεσες μέθοδοι μπορούν να περιλαμβάνουν ένα payload που περιέχει δεδομένα για τη μέθοδο, και αυτό μπορεί να καθοριστεί στην παράμετρο method-payload
ως JSON.
Θα δείτε το ρελέ να ενεργοποιείται και την αντίστοιχη έξοδο από τη συσκευή IoT σας:
Direct method received - relay_on
```
1. Επαναλάβετε το παραπάνω βήμα, αλλά ορίστε το `--method-name` σε `relay_off`. Θα δείτε το ρελέ να απενεργοποιείται και την αντίστοιχη έξοδο από τη συσκευή IoT.
---
## 🚀 Πρόκληση
Η δωρεάν βαθμίδα του IoT Hub επιτρέπει 8.000 μηνύματα την ημέρα. Ο κώδικας που γράψατε στέλνει μηνύματα τηλεμετρίας κάθε 10 δευτερόλεπτα. Πόσα μηνύματα την ημέρα αντιστοιχούν σε ένα μήνυμα κάθε 10 δευτερόλεπτα;
Σκεφτείτε πόσο συχνά πρέπει να αποστέλλονται οι μετρήσεις υγρασίας του εδάφους. Πώς μπορείτε να αλλάξετε τον κώδικά σας ώστε να παραμείνετε εντός της δωρεάν βαθμίδας και να ελέγχετε όσο συχνά χρειάζεται αλλά όχι υπερβολικά συχνά; Τι θα γινόταν αν θέλατε να προσθέσετε μια δεύτερη συσκευή;
## Κουίζ μετά το μάθημα
[Κουίζ μετά το μάθημα](https://black-meadow-040d15503.1.azurestaticapps.net/quiz/16)
## Ανασκόπηση & Αυτομελέτη
Το IoT Hub SDK είναι ανοιχτού κώδικα τόσο για Arduino όσο και για Python. Στα αποθετήρια κώδικα στο GitHub υπάρχουν αρκετά παραδείγματα που δείχνουν πώς να δουλέψετε με διαφορετικές λειτουργίες του IoT Hub.
* Εάν χρησιμοποιείτε Wio Terminal, δείτε τα [παραδείγματα Arduino στο GitHub](https://github.com/Azure/azure-iot-pal-arduino/tree/master/pal/samples)
* Εάν χρησιμοποιείτε Raspberry Pi ή Εικονική συσκευή, δείτε τα [παραδείγματα Python στο GitHub](https://github.com/Azure/azure-iot-sdk-python/tree/master/azure-iot-hub/samples)
## Εργασία
[Μάθετε για τις υπηρεσίες cloud](assignment.md)
---
**Αποποίηση ευθύνης**:
Αυτό το έγγραφο έχει μεταφραστεί χρησιμοποιώντας την υπηρεσία αυτόματης μετάφρασης [Co-op Translator](https://github.com/Azure/co-op-translator). Παρόλο που καταβάλλουμε προσπάθειες για ακρίβεια, παρακαλούμε να έχετε υπόψη ότι οι αυτοματοποιημένες μεταφράσεις ενδέχεται να περιέχουν λάθη ή ανακρίβειες. Το πρωτότυπο έγγραφο στη μητρική του γλώσσα θα πρέπει να θεωρείται η αυθεντική πηγή. Για κρίσιμες πληροφορίες, συνιστάται επαγγελματική ανθρώπινη μετάφραση. Δεν φέρουμε ευθύνη για τυχόν παρεξηγήσεις ή εσφαλμένες ερμηνείες που προκύπτουν από τη χρήση αυτής της μετάφρασης.