Βασικά στοιχεία IoT: Σύνδεση του IoT σας στο Cloud χρησιμοποιώντας το Mongoose OS: 5 βήματα
Βασικά στοιχεία IoT: Σύνδεση του IoT σας στο Cloud χρησιμοποιώντας το Mongoose OS: 5 βήματα
Anonim
Βασικά στοιχεία IoT: Σύνδεση του IoT σας στο Cloud χρησιμοποιώντας λειτουργικό σύστημα Mongoose
Βασικά στοιχεία IoT: Σύνδεση του IoT σας στο Cloud χρησιμοποιώντας λειτουργικό σύστημα Mongoose
Βασικά στοιχεία IoT: Σύνδεση του IoT σας στο Cloud χρησιμοποιώντας λειτουργικό σύστημα Mongoose
Βασικά στοιχεία IoT: Σύνδεση του IoT σας στο Cloud χρησιμοποιώντας λειτουργικό σύστημα Mongoose

Εάν είστε άτομο που ασχολείται με το τσίμπημα και τα ηλεκτρονικά, τις περισσότερες φορές θα συναντήσετε τον όρο Internet of Things, συνήθως συντομογραφία ως IoT, και ότι αναφέρεται σε ένα σύνολο συσκευών που μπορούν να συνδεθούν στο διαδίκτυο! Όντας ένας τέτοιος άνθρωπος, γοητεύτηκα όταν έμαθα ότι τέτοιες υπέροχες συσκευές ήταν εύκολα προσβάσιμες σε μένα. Η απλή σκέψη ότι θα μπορούσα να συνδέσω τα έργα μου στο Διαδίκτυο χρησιμοποιώντας ένα μικρό κομμάτι υλικού και απλώς να σκεφτώ τις αμέτρητες πύλες που θα άνοιγε για τις ιδέες του έργου μου με είχε κάνει να ανανεωθώ.

Αλλά το να πεις στο IoT να συνδεθεί στο Διαδίκτυο δεν είναι τόσο απλό όσο να το αγοράσεις από το ράφι και να το ενεργοποιήσεις. Και εκτός από τη σύνδεση της συσκευής στο Διαδίκτυο, πρέπει επίσης να προωθήσουμε μερικά χρήσιμα δεδομένα στο Διαδίκτυο. Αυτό το Instructable ασχολείται με τη διαδικασία που απαιτείται για την επίτευξη του προαναφερθέντος στόχου και προορίζεται για αναγνώστες οποιουδήποτε επιπέδου εμπειρίας, από αρχάριους έως βετεράνους που είναι νέοι στο IoT.

Σε αυτό το Instructable, ως παράδειγμα, θα δείξω πώς να σχεδιάσετε το γράφημα των εσωτερικών μετρήσεων αισθητήρα θερμοκρασίας του πίνακα ανάπτυξης ESP32, το οποίο θα πρέπει να δώσει στους αναγνώστες μια καλή ιδέα για τη διαδικασία.

Αν και αυτό το Instructable χρησιμοποιεί ESP32 και Mongoose OS, ωστόσο η διαδικασία μπορεί να επεκταθεί σε όλα τα IoT και το υλικολογισμικό που υπάρχουν!

Προμήθειες

Για να μπορέσετε να εφαρμόσετε μόνοι σας αυτό το Instructable, θα χρειαστείτε μόνο ένα ελάχιστο ποσό υλικού, και είναι:

  • Ένα Internet of Thing (IoT): Έχω χρησιμοποιήσει έναν φτηνό κλώνο πλακέτας ανάπτυξης ESP32. Εάν σχεδιάζετε να αγοράσετε έναν νέο πίνακα ανάπτυξης ESP32, τότε πρέπει να ελέγξετε τον πίνακα ESP32 της DFRobot.
  • Καλώδιο δεδομένων: Χρησιμοποιήστε ένα καλώδιο που απαιτεί το IoT σας για αναβοσβήνει κ.λπ.
  • Μπαταρία (προαιρετικό): Αγοράστε αυτό μόνο εάν σκοπεύετε να ενεργοποιήσετε το IoT σας για μεγάλα χρονικά διαστήματα.
  • Μίνι Breadboard (προαιρετικό)

Προτείνω στον αναγνώστη να χρησιμοποιήσει ένα IoT διαφορετικό από το ESP32, ώστε να καταλάβει πραγματικά τι γίνεται εδώ, αντί απλώς να με μιμηθεί. Πιστέψτε με, θα απολαύσετε την εφαρμογή αυτής της διαδικασίας χρησιμοποιώντας το δικό σας μυαλό σε κάποιο άλλο IoT, για παράδειγμα, το ESP8266 θα ήταν μια καλή επιλογή.

Βήμα 1: Εισαγωγή στο MQTT

Εισαγωγή στο MQTT
Εισαγωγή στο MQTT

Τι είναι το MQTT;

"Το MQTT είναι ένα απλό πρωτόκολλο ανταλλαγής μηνυμάτων, σχεδιασμένο για περιορισμένες συσκευές με χαμηλό εύρος ζώνης. Έτσι, είναι η τέλεια λύση για εφαρμογές Internet of Things. Το MQTT σάς επιτρέπει να στέλνετε εντολές για τον έλεγχο εξόδων, την ανάγνωση και τη δημοσίευση δεδομένων από κόμβους αισθητήρων και πολλά άλλα. " (Από RandomNerdTutorials)

Πώς λειτουργεί το MQTT;

Πριν προχωρήσουμε τεχνικά, ας σκεφτούμε πρώτα τον πραγματικό μας κόσμο. Ας υποθέσουμε ότι σας ενδιαφέρει μια συλλογή καρτών που ανήκει στον φίλο του φίλου σας, ας πούμε, Laurel, τον οποίο προσωπικά δεν γνωρίζετε. Δεδομένου ότι είστε πολύ ιδιαίτεροι για τη συλλογή καρτών, θα ζητήσετε από τον φίλο σας, ας υποθέσουμε τον Τομ, να ρωτήσει εάν η Laurel είναι πρόθυμη να το πουλήσει ή όχι. Ενώ το κάνετε αυτό, θα ζητήσετε από τον Τομ να αγοράσει ο ίδιος τη συλλογή καρτών εάν η Laurel είναι πρόθυμη να πουλήσει, αφού δεν θέλετε κάποιο άλλο άτομο να πάρει στα χέρια του τη συλλογή που λαχταράτε! Καθώς περνάει ο καιρός, ο Τομ και η Λόρελ αλληλεπιδρούν και με αμοιβαία συμφωνία, η Λόρελ δίνει τη συλλογή καρτών της στον Τομ με αντάλλαγμα χρήματα. Μετά από αυτή την ανταλλαγή, ο Τομ κρατά τις κάρτες με τον εαυτό του μέχρι να σας ξανασυναντήσει, που είναι όταν σας δίνει τελικά τη συλλογή καρτών. Έτσι προχωρά μια κανονική ανταλλαγή στην καθημερινή μας ζωή.

Στο MQTT, τα βασικά στοιχεία που εμπλέκονται στην ανταλλαγή είναι ο εκδότης (Laurel), ένας συνδρομητής (You) και ο μεσίτης (Tom). Η ροή εργασίας του είναι επίσης παρόμοια με το παραπάνω παράδειγμα πραγματικού κόσμου, εκτός από μια τεράστια διαφορά! Στο MQTT, η ανταλλαγή ξεκινά από τον μεσίτη, δηλαδή η Laurel θα ήταν η πρώτη που θα έφτανε στον Tom για να πει ότι θέλει να πουλήσει τη συλλογή καρτών της. Αν συγκρίνουμε τη λειτουργία του MQTT με το πραγματικό μας παράδειγμα, τότε θα έχει ως εξής:

  1. Η Laurel λέει στον Tom ότι θέλει να πουλήσει τη συλλογή καρτών της (δεδομένα ή ωφέλιμο φορτίο) και του δίνει τις κάρτες.
  2. Ο Τομ παίρνει αυτές τις κάρτες στην κατοχή του και είναι ανοιχτός σε προσφορές για τη συλλογή καρτών. Όταν εσείς και ο Τομ συναντιέστε και ανακαλύπτει ότι σας ενδιαφέρουν οι κάρτες (εγγραφείτε σε ένα θέμα). Ο Τομ σου δίνει τότε τις κάρτες.

Καθώς η όλη διαδικασία βασίζεται στον μεσίτη και δεν υπάρχει άμεση αλληλεπίδραση μεταξύ συνδρομητή και εκδότη, το MQTT καταργεί την ταλαιπωρία του συγχρονισμού τόσο του εκδότη όσο και του συνδρομητή. Η παρουσία ενός ενδιάμεσου μεσίτη είναι ένα πλεονέκτημα για συσκευές με περιορισμένους πόρους, όπως τα IoT και οι μικροεπεξεργαστές, καθώς η επεξεργαστική τους ισχύς είναι ανεπαρκής για να πραγματοποιήσει τη μεταφορά δεδομένων με τον κανονικό τρόπο, πράγμα που θα συνεπαγόταν επιπλέον γενικά έξοδα, όπως έλεγχος ταυτότητας, κρυπτογράφηση κλπ. Εκτός αυτού, Το MQTT έχει πολλές άλλες δυνατότητες, όπως είναι το ελαφρύ, η διανομή ενός προς πολλά και ούτω καθεξής, που το καθιστούν ιδανικό για περιορισμένα δίκτυα και πελάτες

Βήμα 2: Εισαγωγή στην πλατφόρμα IoT

Τι είναι η πλατφόρμα IoT;

"Σε υψηλό επίπεδο, μια πλατφόρμα Internet of Things (IoT) είναι το λογισμικό υποστήριξης που συνδέει άκρη υλικού, σημεία πρόσβασης και δίκτυα δεδομένων σε άλλα μέρη της αλυσίδας αξίας (που είναι γενικά οι εφαρμογές τελικού χρήστη). Τυπικά πλατφόρμες IoT χειρίζονται τρέχουσες εργασίες διαχείρισης και οπτικοποίηση δεδομένων, που επιτρέπουν στους χρήστες να αυτοματοποιούν το περιβάλλον τους. " (Από τα Link-Labs)

Αφηρημένα, μια πλατφόρμα IoT λειτουργεί ως μέσο μεταξύ του χρήστη και των παραγόντων συλλογής δεδομένων, το οποίο είναι υπεύθυνο για την αναπαράσταση των συλλεχθέντων δεδομένων.

Σε αυτό το Instructable, σχεδιάζουμε να προωθήσουμε τις μετρήσεις θερμοκρασίας του ESP32 στο διαδίκτυο. Το ESP32 θα λειτουργήσει ως εκδότης MQTT και ο μεσίτης MQTT θα είναι μια πλατφόρμα IoT της επιλογής μας. Σημειώστε ότι στο έργο μας, δεν υπάρχει κανένας συνδρομητής MQTT καθώς τα δεδομένα αντιπροσωπεύονται από την ίδια την πλατφόρμα από πρώτο χέρι. Η πλατφόρμα IoT θα είναι υπεύθυνη για την αποθήκευση των δημοσιευμένων δεδομένων μας και την όμορφη αναπαράστασή τους, εδώ, ως γραμμικό γράφημα. Θα χρησιμοποιήσω το Losant ως πλατφόρμα IoT εδώ, επειδή είναι δωρεάν στη χρήση και προσφέρει μερικούς καλούς τρόπους αναπαράστασης δεδομένων. Ορισμένα άλλα παραδείγματα πλατφορμών IoT είναι το Google Cloud, το Amazon AWS και το Adafruit, το Microsoft Azure κ.λπ. Θα ήθελα να συμβουλέψω τον αναγνώστη να ανατρέξει στην τεκμηρίωση της επιλεγμένης πλατφόρμας IoT.

Ρύθμιση του Losant:

  1. Συνδεθείτε στο Losant
  2. Δημιουργία συσκευής (αυτόνομος τύπος)
  3. Προσθέστε μερικούς τύπους δεδομένων στη συσκευή1. Όνομα: θερμοκρασία, Τύπος δεδομένων: Αριθμός2. Όνομα: μετατόπιση, Τύπος δεδομένων: Αριθμός3. Όνομα: μονάδα, Τύπος δεδομένων: Χορδή
  4. Δημιουργήστε ένα κλειδί πρόσβασης και σημειώστε το αναγνωριστικό συσκευής και το κλειδί πρόσβασης
  5. Δημιουργία γραφήματος 1. Δημιουργήστε έναν πίνακα ελέγχου. Προσθέστε το μπλοκ "Γράφημα χρονικών σειρών" σε αυτό χρησιμοποιώντας τη μεταβλητή θερμοκρασίας και τη συσκευή που δημιουργήσατε.

Το "Αναγνωριστικό συσκευής" εξυπηρετεί τον σκοπό να λειτουργήσει ως μοναδικό δακτυλικό αποτύπωμα για μια συσκευή. Τα "κλειδιά πρόσβασης", όπως υποδηλώνει το όνομα, επιτρέπουν στο IoT να δημοσιεύει στο Losant με την ταυτότητα της συσκευής.

Βήμα 3: Προετοιμάστε τον εκδότη MQTT

Image
Image

Τώρα που έχουμε προετοιμάσει την πλατφόρμα IoT για λήψη και αναπαράσταση των δεδομένων, πρέπει να προετοιμάσουμε έναν εκδότη MQTT ο οποίος θα είναι υπεύθυνος για τη συλλογή και την αποστολή των δεδομένων στην πλατφόρμα.

Το περίγραμμα της προετοιμασίας του εκδότη MQTT έχει ως εξής:

  • Γράψτε τον κωδικό: Για να δώσετε οδηγίες στον εκδότη (IoT) πώς να συλλέγει δεδομένα, να τα επεξεργαστείτε και να τα στείλετε στην πλατφόρμα IoT. Οι οδηγίες είναι γραμμένες σε αναγνώσιμες από τον άνθρωπο γλώσσες προγραμματισμού υψηλού επιπέδου, οι οποίες κανονικά αναφέρονται ως κώδικας.
  • Αναβοσβήνει το υλικολογισμικό: Το IoT δεν θα καταλάβει εύκολα αυτές τις οδηγίες καθώς δεν γνωρίζει αρχικά καμία γλώσσα. Για να γεφυρωθεί αυτό το γλωσσικό εμπόδιο μεταξύ του ανθρώπου και του μηχανήματος, ο κώδικας καταρτίζεται σε ένα ακατέργαστο σύνολο οδηγιών, βασικά σύνολα δεκαεξαδικών ή δυαδικών τιμών συγκεκριμένων για τις θέσεις μνήμης μέσα στο IoT, γνωστό ως υλικολογισμικό που στη συνέχεια αναβοσβήνει στο IoT.

Σε αυτό το Instructable, δεδομένου ότι χρησιμοποιώ το εύχρηστο ESP32, θα αναβοσβήνω το υλικολογισμικό Mongoose OS σε αυτό, το οποίο δέχεται προγράμματα γραμμένα C και JavaScript και τα δύο. Εκτός από τη συμβατότητα με JS, το λειτουργικό σύστημα Mongoose έχει ακόμα πολλά να προσφέρει, όπως ενημερώσεις μέσω του αέρα, για την προσαρμογή του προγράμματος στο διαδίκτυο και έναν ειδικό πίνακα ελέγχου για συσκευές (mDash) κ.λπ.

Έχω αναπτύξει μια εφαρμογή ανοιχτού κώδικα για το λειτουργικό σύστημα Mongoose για αυτό το Instructable. Είναι μια απλή εφαρμογή που ονομάζεται losant-temp-sensor, η οποία χρησιμοποιεί MQTT για την αποστολή των κατά προσέγγιση μετρήσεων θερμοκρασίας περιβάλλοντος, βάσει των εσωτερικών μετρήσεων θερμοκρασίας του ESP32, στο Losant (μια δωρεάν πλατφόρμα IoT). Συνιστάται να περάσετε από τον κώδικα της εφαρμογής για καλύτερη κατανόηση. Θα αναβοσβήνουμε αυτήν την εφαρμογή για αυτό το Instructable.

Εάν είστε του περιπετειώδους είδους, τότε μπορείτε να προσπαθήσετε να επιτύχετε τον ίδιο στόχο με το υλικολογισμικό Arduino-ESP32, το οποίο επιτρέπει τη χρήση του ESP32 ως Arduino (με δυνατότητα WiFi).

Μια γρήγορη περιγραφή για εφαρμογή που αναβοσβήνει με λειτουργικό σύστημα Mongoose:

  1. Εγκαταστήστε το εργαλείο mos για το λειτουργικό σας σύστημα.
  2. Ανοίξτε το εργαλείο και εκτελέστε τις ακόλουθες εντολές:

    1. mos clone
    2. cd losant-temp-sensor
    3. mos build --πλατφόρμα esp32
    4. αναβοσβήνει
  3. Μετά την επιτυχή αναβοσβήσιμο, αφήστε τη συσκευή να επανεκκινήσει και, στη συνέχεια, εκτελέστε τις ακόλουθες εντολές:

    1. mos wifi "το wifi σας ssid" "ο κωδικός πρόσβασης wifi σας" π.χ. mos wifi "Home" "home@123"
    2. mos config-set temperature.basis =

      temperature.unit ="

      "π.χ. mos config-set temperature.basis = 33 / temperature.unit =" κελσίου"

    3. mos config-set device.id = mqtt.client_id = mqtt.user = mqtt.pass =

Αφού ολοκληρώσετε σωστά όλα αυτά τα βήματα, θα καταλήξετε με ένα ESP32 που στέλνει τις ενδείξεις θερμοκρασίας στο Losant περιοδικά, μετά από κάθε 10 λεπτά. Η επιτυχής δημοσίευση υποδεικνύεται από το μπλε LED, όπως φαίνεται στο παραπάνω βίντεο.

Βήμα 4: Υποσημείωση

Image
Image
Υποσημείωση
Υποσημείωση

Εάν είστε σε θέση να επαναλάβετε σωστά τα προηγούμενα βήματα, τότε τώρα θα έχετε ένα έργο εργασίας με το οποίο μπορείτε να παρατηρήσετε τις τάσεις της θερμοκρασίας στο δωμάτιό σας ή οπουδήποτε σκοπεύετε να τοποθετήσετε το έργο. Δεδομένου ότι έχω κρατήσει αυτό το Instructable όσο πιο γενικό θα μπορούσα να το κάνω, επομένως μπορείτε να χρησιμοποιήσετε το IoT σας για να συλλέξετε δεδομένα όλων των ειδών και να προσπαθήσετε να συμπεράνετε κάτι χρήσιμο από αυτό, ή μπορείτε να το κάνετε μόνο για λόγους πειρασμού αν έχω καταλάβει σωστά αυτό το Οδηγίες.

Για μένα, το καλύτερο μέρος για το IoT είναι το γεγονός ότι μας επιτρέπει να συλλέγουμε τεράστια κομμάτια δεδομένων, ασαφή εάν ληφθούν μόνοι και να τα μετατρέψουμε σε κάτι καταληκτικό. Αυτό χτυπά πραγματικά το πνεύμα της επιστήμης. Για μένα, ήταν πολύ ικανοποιητικό και διαφωτιστικό να παρατηρήσω την πτώση της θερμοκρασίας μέσα στο δωμάτιό μου τις ώρες της βροχής μέσω του γραφήματος μου.

Η εφαρμογή-αισθητήρας χαλάρωσης έχει βελτιστοποιηθεί για κατανάλωση ενέργειας, καθώς χρησιμοποιεί τη λειτουργία βαθύ ύπνου του ESP32, επομένως μπορείτε να τη χρησιμοποιήσετε για μεγάλα χρονικά διαστήματα χωρίς να ανησυχείτε καθόλου για την μπαταρία. Μπορείτε να επεκτείνετε περαιτέρω την απόδοση ισχύος αφαιρώντας το LED στον πίνακα ανάπτυξης. Η τρέχουσα κλήρωση ολόκληρης της ρύθμισης εμφανίστηκε παραπάνω.

Ο στόχος αυτού του Instructable, από την αρχή ήταν απλώς να σας δώσει μια εισαγωγή στον κόσμο του IoT. Τελειώνοντας αυτό το Instructable, θα έχετε καλά στα χέρια σας τα βασικά που μπορείτε να ενισχύσετε ακόμη περισσότερο μέσω άλλων διαδικτυακών πόρων.

Αν και δεν θα μπορείτε να κάνετε πολύπλοκα έργα σε αυτό το στάδιο, ωστόσο θα πρέπει πάντα να έχετε κατά νου ότι εάν έχετε ένα αρκετά ισχυρό τούβλο και έναν τρόπο να τα συνδυάσετε, τότε μπορείτε να φτιάξετε οποιαδήποτε φανταστική δομή, από απλή στο σύνθετο. Ομοίως, το να έχεις καλή κατανόηση των βασικών και να ξέρεις πώς να τα εφαρμόζεις σωστά θα σου δώσει τη δυνατότητα να υποβάλλεις πληθώρα αντιπαραθέσεων. Επομένως, δώστε στον εαυτό σας ένα χτύπημα στην πλάτη για να κάνετε το πρώτο βήμα.

Βήμα 5: Πιστώσεις και υποστήριξη

Αυτό το Instructable αποτελείται από εικόνες, π.χ. αυτό που εξηγεί την ανταλλαγή MQTT, την οποία έχω κάνει προσωπικά. Αυτές οι εικόνες ήταν δυνατές μόνο χάρη στα ακόλουθα δωρεάν πακέτα SVG για χρήση:

  • Infographic διάνυσμα που δημιουργήθηκε από το freepik - www.freepik.com
  • Infographic διάνυσμα που δημιουργήθηκε από το starline - www.freepik.com
  • Άνθρωποι διάνυσμα δημιουργήθηκε από pikisuperstar - www.freepik.com
  • Αφηρημένο διάνυσμα που δημιουργήθηκε από macrovector - www.freepik.com
  • Αφηρημένο διάνυσμα που δημιουργήθηκε από macrovector - www.freepik.com
  • Infographic διάνυσμα που δημιουργήθηκε από pikisuperstar - www.freepik.com

Αυτό το Instructable έχει χορηγηθεί από την DFRobot. Το DFRobot διαθέτει μια φοβερή συλλογή ηλεκτρονικών συσκευών, οπότε φροντίστε να το ελέγξετε.

Εάν πιστεύετε ότι σας άρεσε αυτό το Instructable και θέλετε περισσότερα Instructables όπως αυτό, τότε μπορείτε να με υποστηρίξετε στο Patreon. Εάν δεν μπορείτε να πάτε τόσο μακριά, τότε μπορείτε να με ακολουθήσετε εδώ στο Instructables.