- Τι είναι το Microsoft Azure IoT Hub;
- Δημιουργία ενός Azure IoT Hub
- Απαιτούνται στοιχεία για τη δημιουργία του δοκιμαστικού κυκλώματος για Azure IoT με Raspberry Pi
- Azure IoT με Raspberry Pi - Σχηματικό υλικό
- Προγραμματισμός του Raspberry Pi για δημοσίευση δεδομένων στο Azure IoT Hub
- Δημοσίευση δεδομένων στο Azure IoT Hub - Δοκιμή
Το Azure IoT Hub, η υπηρεσία cloud computing από τη Microsoft επιτρέπει στους προγραμματιστές να συνδέονται, να παρακολουθούν και να διαχειρίζονται δισεκατομμύρια συσκευές IoT σε μία πλατφόρμα. Χρησιμοποιείται ήδη σε διάφορες εφαρμογές IoT όπως συστήματα οικιακού αυτοματισμού, ασφάλεια, συστήματα παρακολούθησης και παρακολούθησης. Για να αποδείξουμε τις δυνατότητες του κόμβου Azure IoT, πρόκειται να δημιουργήσουμε ένα μικρό κύκλωμα με το Raspberry Pi, έναν αισθητήρα θερμοκρασίας και υγρασίας DHT11, προκειμένου να επεξεργαστούμε τα δεδομένα του αισθητήρα με αυτό. Τέλος, θα δημοσιεύσουμε δεδομένα αισθητήρα στον διακομιστή Azure IoT χρησιμοποιώντας το πρωτόκολλο MQTT. Σε αυτό το σεμινάριο, θα μάθουμε πώς να ρυθμίζουμε και να ρυθμίζουμε έναν διακομιστή Azure και να στέλνουμε δεδομένα χρησιμοποιώντας ένα Raspberry Pi.
Τι είναι το Microsoft Azure IoT Hub;
Το Azure IoT Hub είναι μια συλλογή διαχειριζόμενων υπηρεσιών που μπορούν να συνδέσουν, να παρακολουθούν και να ελέγχουν συσκευές IoT. Περιλαμβάνει επίσης ασφαλή επικοινωνία για συσκευές, με οπτικοποίηση δεδομένων και αναλυτικά στοιχεία που βοηθούν τους κατασκευαστές συσκευών να δημιουργήσουν, να αναπτύξουν και να διαχειριστούν εφαρμογές IoT με τη βοήθεια του Azure cloud. Τα δεδομένα τηλεμετρίας Device-to-Cd του Azure IoT Hub μάς ενημερώνουν για την κατάσταση των συνδεδεμένων συσκευών IoT και τα μηνύματα Cloud-to-Device μας επιτρέπουν να στέλνουμε εντολές και ειδοποιήσεις στις συνδεδεμένες συσκευές. Ένα παράδειγμα θα μπορούσε να είναι, χρησιμοποιώντας ένα έξυπνο σύστημα οικιακού αυτοματισμού, μπορούμε να συλλέξουμε διάφορα δεδομένα αισθητήρα και να τα στείλουμε στο Azure IoT Hub για να τα απεικονίσουμε, να τα αποθηκεύσουμε και να τα διαχειριστούμε. Μπορούμε επίσης να ελέγξουμε τις συσκευές εξόδου από τη διασύνδεση Azure IoT Hub.
Ο κεντρικός κόμβος για αμφίδρομη επικοινωνία για εφαρμογή IoT και συσκευές υποστηρίζει επικοινωνία cloud-device και cloud-device, υποστηρίζει επίσης πολλά μοτίβα μηνυμάτων όπως συσκευή τηλεμετρίας cloud, μεταφόρτωση αρχείων από συσκευές και μεθόδους απάντησης αιτήσεων και τέλος, μπορούμε να χρησιμοποιήσουμε τη μέθοδο ελέγχου ταυτότητας ανά συσκευή που επιτρέπει σε κάθε συσκευή να συνδέεται με ασφάλεια στο IoT Hub. Τώρα, καθώς έχετε κατανοήσει τα βασικά στοιχεία του Azure IoT Hub, ας προχωρήσουμε στη ρύθμιση του συστήματος.
Δημιουργία ενός Azure IoT Hub
Είμαστε έτοιμοι να κάνουμε όλες τις απαραίτητες ρυθμίσεις που απαιτούνται για τη ρύθμιση των υπηρεσιών Microsoft Azure, αλλά πριν από αυτό, βεβαιωθείτε ότι έχετε λογαριασμό Microsoft. Εάν δεν το έχετε, μπορείτε απλά να εγγραφείτε. Στη συνέχεια, μεταβείτε στην πύλη Azure χρησιμοποιώντας το portal.azure.com και συνδεθείτε.
Μόλις συνδεθείτε, μεταβείτε στην αρχική σελίδα του Azure, επιλέξτε το κουμπί Δημιουργία πόρου και, στη συνέχεια, αναζητήστε το IoT Hub στο πεδίο Αναζήτηση στο Marketplace. Επιλέξτε IoT Hub από τα αποτελέσματα αναζήτησης και, στη συνέχεια, επιλέξτε Δημιουργία. Οι παρακάτω εικόνες θα σας δώσουν μια καλύτερη ιδέα για τη διαδικασία.
Συμπληρώστε τις απαραίτητες λεπτομέρειες για να δημιουργήσετε ένα IoT Hub.
Στην ενότητα Συνδρομή, πρέπει να επιλέξετε τη συνδρομή για να τη χρησιμοποιήσετε για το διανομέα σας. Στην περίπτωσή μας, επιλέγουμε έναν δοκιμαστικό λογαριασμό και επιλέξαμε " Δωρεάν δοκιμή" .
Στη συνέχεια, στην ενότητα Ομάδα πόρων, επιλέξτε την ομάδα πόρων σας . Εάν δεν έχετε, πρέπει να δημιουργήσετε ένα νέο κάνοντας κλικ στο Δημιουργία νέου και εισαγάγετε το όνομα του πόρου.
Στην Περιφέρεια ενότητα, μπορείτε να χρησιμοποιήσετε το αναπτυσσόμενο μενού για να επιλέξετε προτιμώμενη περιοχή σας.
Στο IoT Hub Όνομα τμήματος, θα πρέπει να ε nter ένα όνομα για το διανομέα σας. Αυτό πρέπει να είναι μοναδικό. Όλες οι απαραίτητες επικοινωνίες θα συμβούν με αυτό το όνομα.
Στην καρτέλα "Μέγεθος και κλίμακα", επιλέξτε " Δωρεάν βαθμίδα " και κάντε κλικ στο Επόμενο. Στη συνέχεια, κάντε κλικ στο "Κριτική + Δημιουργία". Θα χρειαστούν λίγα λεπτά για να δημιουργήσετε το IoT Hub. Κάντε κλικ στο όνομα του IoT Hub που δημιουργήσατε. Σημειώστε το όνομα κεντρικού υπολογιστή από το παράθυρο όπως φαίνεται στην παρακάτω εικόνα. Στη συνέχεια, κάντε κλικ στις Πολιτικές κοινής πρόσβασης στις Ρυθμίσεις. Οι πολιτικές κοινής πρόσβασης επισημαίνονται στην παρακάτω εικόνα. Κάντε κλικ στην επιλογή iothubowner στην Πολιτική. Σημειώστε το πρωτεύον κλειδί και το κλειδί συμβολοσειράς-πρωτεύον κλειδί για μελλοντικές αναφορές. Τώρα, για να εγγραφείτε μια νέα συσκευή στο IoT Hub, κάντε κλικ στο IoT Devices. Στο παράθυρο Εξερεύνηση συσκευών, κάντε κλικ στο Προσθήκη για να προσθέσετε μια συσκευή στο διανομέα.
Συμπληρώστε τις ακόλουθες πληροφορίες στην καρτέλα Νέες συσκευές.
- Αναγνωριστικό συσκευής: Εισαγάγετε αναγνωριστικό για τη συσκευή. Τα αναγνωριστικά συσκευής πρέπει να είναι μοναδικά.
- Τύπος ελέγχου ταυτότητας: Επιλέξτε ένα συμμετρικό κλειδί.
- Αυτόματη δημιουργία κλειδιών: Επιλέξτε αυτό το πλαίσιο ελέγχου.
- Σύνδεση συσκευής με IoT Hub: Κάντε κλικ στο Ενεργοποίηση.
Μόλις δημιουργηθεί η συσκευή, μπορείτε να βρείτε τη νέα σας συσκευή στην ενότητα "Εξερεύνηση συσκευών". Κάντε κλικ στο όνομα της συσκευής. Θα εμφανίσει τις λεπτομέρειες της συσκευής. Σημειώστε το πρωτεύον κλειδί και το κλειδί συμβολοσειράς-πρωτεύον κλειδί της συσκευής. Αυτό είναι σημαντικό καθώς το χρειαζόμαστε για επικοινωνία.
Τώρα, όταν γίνει αυτό, μπορούμε να προχωρήσουμε στην πλευρά του υλικού.
Απαιτούνται στοιχεία για τη δημιουργία του δοκιμαστικού κυκλώματος για Azure IoT με Raspberry Pi
Καθώς το τμήμα υλικού αυτού του κυκλώματος είναι πολύ απλό, η απαίτηση εξαρτήματος είναι επίσης πολύ απλή. Παρακάτω εμφανίζεται μια λίστα με τα απαιτούμενα στοιχεία.
- Raspberry Pi 3B (Μπορούμε επίσης να χρησιμοποιήσουμε άλλα μοντέλα Pi)
- Κάρτα Micro SD-16 GB
- Αισθητήρας DHT11
- Τροφοδοσία Micro USB 5V, 2.4A
Azure IoT με Raspberry Pi - Σχηματικό υλικό
Το πλήρες διάγραμμα κυκλώματος για το έργο Azure IoT με Raspberry Pi παρουσιάζεται παρακάτω, Κατασκευάστηκε με φινίρισμα. Ακολουθήστε το διάγραμμα κυκλώματος και τις συνδέσεις για να κάνετε το κύκλωμα μόνοι σας.
Το παραπάνω κύκλωμα στέλνει δεδομένα θερμοκρασίας και υγρασίας στο Microsoft IoT Hub. Σε αυτό το κύκλωμα, χρησιμοποιήσαμε έναν αισθητήρα DHT11 για τη συλλογή δεδομένων θερμοκρασίας και υγρασίας και χρησιμοποιούμε ένα Raspberry Pi 3B ως συσκευή επεξεργασίας δεδομένων. Ο αισθητήρας DHT11 έχει τρεις ακίδες. Οι ακίδες VCC και GND χρησιμοποιούνται για παροχή τροφοδοσίας 5V DC στον αισθητήρα και ο πείρος εξόδου δεδομένων του DHT11 συνδέεται με το GPIO4 του Raspberry Pi. Αν θέλετε να μάθετε πώς να διασυνδέετε τον αισθητήρα θερμοκρασίας και υγρασίας DHT11 με το Raspberry Pi, μπορείτε να δείτε το προηγούμενο άρθρο μας σχετικά με το θέμα. Χρησιμοποιήσαμε επίσης αυτόν τον αισθητήρα για την κατασκευή του IoT Raspberry Pi Weather Station.
Προγραμματισμός του Raspberry Pi για δημοσίευση δεδομένων στο Azure IoT Hub
Πριν ξεκινήσουμε την κωδικοποίηση για αυτό το έργο, πρέπει να δημιουργήσουμε ένα κέλυφος cloud Azure (CLI) στην πύλη Azure. Αυτό θα είναι χρήσιμο με πολλούς τρόπους. Για αυτό, κάντε κλικ στο κουμπί κελύφους cloud Azure στην πύλη όπως φαίνεται παρακάτω. Στη συνέχεια, κάντε κλικ στην επιλογή δημιουργία χώρου αποθήκευσης, με κόκκινο χρώμα.
Μόλις γίνει αυτό, μπορείτε να ανοίξετε το CLI, και εκτελέστε τις ακόλουθες εντολές για να εγκαταστήσετε το Azure add-on» s τα οποία θα χρησιμοποιηθούν για να δείξει τα δεδομένα του αισθητήρα.
προσθήκη επέκτασης az - όνομα azure-cli-iot-ext
Μόλις γίνει αυτό, πρέπει να εγκαταστήσουμε εξαρτήσεις στο Raspberry Pi για να επικοινωνήσουμε με τον αισθητήρα DHT11 και να κάνουμε τη διαδικασία επικοινωνίας εύκολη για τις υπηρεσίες Azure IoT. Για αυτό ανοίξτε ένα τερματικό Raspberry Pi για να εγκαταστήσετε τα εξαρτώμενα πακέτα που χρησιμοποιούνται στο έργο.
Αρχικά, πρέπει να πραγματοποιήσουμε λήψη της βιβλιοθήκης DHT για το Raspberry Pi και, στη συνέχεια, να την εξαγάγουμε από τον ριζικό φάκελο και να εκτελέσουμε την ακόλουθη εντολή για να την εγκαταστήσουμε.
sudo python setup.py εγκατάσταση
Μετά την επιτυχή εγκατάσταση, εκτελέστε τις ακόλουθες εντολές για να εγκαταστήσετε όλα τα εξαρτώμενα πακέτα στο Azure IoT Hub.
sudo pip3 εγκατάσταση azure-iot-συσκευή sudo pip3 εγκατάσταση azure-iot-hub sudo pip3 εγκατάσταση azure-iothub-service-client sudo pip3 εγκατάσταση azure-iothub-device-client
Μόλις ολοκληρώσουμε την εγκατάσταση όλων των προϋποθέσεων, ήρθε η ώρα να γράψετε τον κώδικα στο Python. Για να το κάνετε αυτό, εισαγάγετε πρώτα όλες τις βιβλιοθήκες:
εισαγωγή τυχαίας εισαγωγής Adafruit_DHT χρόνος εισαγωγής από azure.iot.device εισαγωγή IoTHubDeviceClient, μήνυμα
Σε αυτό το έργο, χρησιμοποιούμε τον ακροδέκτη 4 του Raspberry Pi για την επεξεργασία των δεδομένων από τα δεδομένα DHT11, οπότε πρέπει να δηλωθεί όπως φαίνεται.
αισθητήρας = Adafruit_DHT.DHT11 pin = 4
Στη συνέχεια, ορίζουμε τη συμβολοσειρά σύνδεσης του κώδικα. Αντικαταστήστε το με τη συμβολοσειρά σύνδεσης κύριας συσκευής που αποθηκεύσαμε νωρίτερα.
CONNECTION_STRING = "HostName = sensordata.azure-devices.net; DeviceId = ZZZZZ; SharedAccessKey = ZZZZZZZZZZZZZZZZZZ"
Στη συνέχεια, δημιουργούμε έναν πίνακα που θα χρησιμοποιηθεί για την αποστολή των δεδομένων στο Azure IoT Hub. Μπορεί να γίνει όπως φαίνεται παρακάτω.
MSG_SND = '{{"θερμοκρασία": {θερμοκρασία}, "υγρασία": {υγρασία}}}'
Στη συνέχεια, έχουμε ορίσει ένα loop loop, ενώ στο loop while, τα δεδομένα υγρασίας και θερμοκρασίας υποβάλλονται σε επεξεργασία χρησιμοποιώντας τη λειτουργία Adafruit_DHT.read_retry Επιπλέον, ορίζουμε δύο ειδικές μεταβλητές και εκχωρούμε τα δεδομένα εξόδου σε αυτές τις μεταβλητές.
ενώ είναι αληθινό: υγρασία, θερμοκρασία = Adafruit_DHT.read_retry (αισθητήρας, καρφίτσα)
Στη συνέχεια, γράφεται μια συνάρτηση για τη σύνδεση του IoT Hub χρησιμοποιώντας τις παραμέτρους σύνδεσης που έχουμε ορίσει προηγουμένως.
def iothub_client_init (): client = IoTHubDeviceClient.create_from_connection_string (CONNECTION_STRING) πελάτης επιστροφής
Τέλος, στο επόμενο βήμα, αποστέλλονται και τα δεδομένα θερμοκρασίας και υγρασίας στο Azure Hub, χρησιμοποιώντας τη μορφή όπως φαίνεται στον παρακάτω κώδικα. Επίσης, χρησιμοποιήσαμε μια μέθοδο δοκιμής και εντοπισμού για να προσδιορίσουμε εάν υπάρχει κάποιο σφάλμα στον κώδικα.
def iothub_client_telemetry_sample_run (): try: client = iothub_client_init () print ("Αποστολή δεδομένων στο IoT Hub, πατήστε Ctrl-C για έξοδο") ενώ True: msg_txt_formatted = MSG_SND.format (θερμοκρασία = θερμοκρασία, υγρασία = υγρασία) μήνυμα = Μήνυμα (msg_txt_formatted) print ("Αποστολή μηνύματος: {}". format (message)) client.send_message (message) print ("Το μήνυμα εστάλη επιτυχώς") time.sleep (3)
Δημοσίευση δεδομένων στο Azure IoT Hub - Δοκιμή
Αφού γράψετε με επιτυχία τον κώδικα, μεταγλωττίστε τον και ελέγξτε για τυχόν λάθη. Εάν το μπλοκ κώδικα μεταγλωττιστεί με επιτυχία, εκτελέστε τον κώδικα. Στο παράθυρο του τερματικού, θα πρέπει να δείτε το μήνυμα που λέει, "Το μήνυμα εστάλη επιτυχώς". Το στιγμιότυπο οθόνης του παραθύρου εμφανίζεται παρακάτω:
Τώρα, για να δείτε τα δεδομένα στο Azure IoT Hub, μεταβείτε στην πύλη και κάντε κλικ στο CLI Terminal και εκτελέστε τις ακόλουθες εντολές αντικαθιστώντας τα διαπιστευτήριά σας σε αυτό.
az iot hub monitor-events --hub-name XYZ --device-id XYZ
Σημείωση:
Αντικαταστήστε το XYZ με το όνομα Hub και το αναγνωριστικό συσκευής.
Αφού εκτελέσετε την παραπάνω εντολή, θα πρέπει να λάβετε τα δεδομένα όπως φαίνεται παρακάτω στην οθόνη. Αυτά είναι τα ίδια δεδομένα που εστάλησαν από το Raspberry Pi.
Αυτό σηματοδοτεί το τέλος αυτού του σεμιναρίου, ελπίζω να σας άρεσε το άρθρο και να μάθετε κάτι νέο. Εάν έχετε οποιεσδήποτε ερωτήσεις σχετικά με το άρθρο, μπορείτε να τις αφήσετε στην ενότητα σχολίων παρακάτω. Εναλλακτικά, μπορείτε να χρησιμοποιήσετε το Φόρουμ Ηλεκτρονικών για να λάβετε ταχύτερη και καλύτερη ανταπόκριση.