You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
IoT-For-Beginners/translations/el/1-getting-started/lessons/2-deeper-dive/README.md

46 KiB

Μια βαθύτερη ματιά στο IoT

Μια επισκόπηση του μαθήματος σε σκίτσο

Σκίτσο από τη Nitya Narasimhan. Κάντε κλικ στην εικόνα για μεγαλύτερη έκδοση.

Αυτό το μάθημα διδάχθηκε ως μέρος της σειράς Hello IoT από το Microsoft Reactor. Το μάθημα παρουσιάστηκε σε 2 βίντεο - ένα μάθημα διάρκειας 1 ώρας και μία ώρα γραφείου για βαθύτερη ανάλυση και απαντήσεις σε ερωτήσεις.

Μάθημα 2: Μια βαθύτερη ματιά στο IoT

Μάθημα 2: Μια βαθύτερη ματιά στο IoT - Ώρες γραφείου

🎥 Κάντε κλικ στις παραπάνω εικόνες για να παρακολουθήσετε τα βίντεο

Ερωτηματολόγιο πριν το μάθημα

Ερωτηματολόγιο πριν το μάθημα

Εισαγωγή

Αυτό το μάθημα εμβαθύνει σε ορισμένες από τις έννοιες που καλύφθηκαν στο προηγούμενο μάθημα.

Σε αυτό το μάθημα θα καλύψουμε:

Συστατικά μιας εφαρμογής IoT

Τα δύο βασικά συστατικά μιας εφαρμογής IoT είναι το Διαδίκτυο και το πράγμα. Ας δούμε αυτά τα δύο συστατικά με περισσότερες λεπτομέρειες.

Το Πράγμα

Ένα Raspberry Pi 4

Το Πράγμα στο IoT αναφέρεται σε μια συσκευή που μπορεί να αλληλεπιδράσει με τον φυσικό κόσμο. Αυτές οι συσκευές είναι συνήθως μικροί, οικονομικοί υπολογιστές, που λειτουργούν σε χαμηλές ταχύτητες και καταναλώνουν λίγη ενέργεια - για παράδειγμα, απλοί μικροελεγκτές με λίγα kilobytes RAM (σε αντίθεση με τα gigabytes σε έναν υπολογιστή) που λειτουργούν σε μερικές εκατοντάδες megahertz (σε αντίθεση με τα gigahertz σε έναν υπολογιστή), αλλά καταναλώνουν τόσο λίγη ενέργεια που μπορούν να λειτουργούν για εβδομάδες, μήνες ή ακόμα και χρόνια με μπαταρίες.

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

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

Υπάρχει μια τεράστια ποικιλία διαφορετικών πραγμάτων που μπορούν να λειτουργήσουν ως συσκευές IoT, από εξειδικευμένο υλικό που ανιχνεύει ένα πράγμα, έως γενικής χρήσης συσκευές, ακόμα και το smartphone σας! Ένα smartphone μπορεί να χρησιμοποιήσει αισθητήρες για να ανιχνεύσει τον κόσμο γύρω του και ενεργοποιητές για να αλληλεπιδράσει με τον κόσμο - για παράδειγμα, χρησιμοποιώντας έναν αισθητήρα GPS για να ανιχνεύσει την τοποθεσία σας και ένα ηχείο για να σας δώσει οδηγίες πλοήγησης προς έναν προορισμό.

Σκεφτείτε άλλα συστήματα γύρω σας που διαβάζουν δεδομένα από έναν αισθητήρα και τα χρησιμοποιούν για να πάρουν αποφάσεις. Ένα παράδειγμα θα μπορούσε να είναι ο θερμοστάτης ενός φούρνου. Μπορείτε να βρείτε περισσότερα;

Το Διαδίκτυο

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

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

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

Στο παράδειγμα ενός έξυπνου θερμοστάτη, ο θερμοστάτης θα συνδεθεί χρησιμοποιώντας το WiFi του σπιτιού σε μια υπηρεσία cloud. Θα στείλει τα δεδομένα θερμοκρασίας σε αυτή την υπηρεσία cloud, και από εκεί θα γραφτούν σε μια βάση δεδομένων, επιτρέποντας στον ιδιοκτήτη του σπιτιού να ελέγξει τις τρέχουσες και παρελθούσες θερμοκρασίες μέσω μιας εφαρμογής στο τηλέφωνο. Μια άλλη υπηρεσία στο cloud θα γνωρίζει ποια θερμοκρασία θέλει ο ιδιοκτήτης και θα στέλνει μηνύματα πίσω στη συσκευή IoT μέσω της υπηρεσίας cloud για να πει στο σύστημα θέρμανσης να ενεργοποιηθεί ή να απενεργοποιηθεί.

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

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

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

Ποια άλλα δεδομένα θα μπορούσαν να βοηθήσουν έναν θερμοστάτη συνδεδεμένο στο Διαδίκτυο να γίνει πιο έξυπνος;

IoT στο Edge

Παρόλο που το I στο IoT σημαίνει Διαδίκτυο, αυτές οι συσκευές δεν χρειάζεται να συνδέονται στο Διαδίκτυο. Σε ορισμένες περιπτώσεις, οι συσκευές μπορούν να συνδέονται σε συσκευές 'edge' - πύλες που λειτουργούν στο τοπικό σας δίκτυο, επιτρέποντας την επεξεργασία δεδομένων χωρίς να γίνεται κλήση μέσω του Διαδικτύου. Αυτό μπορεί να είναι ταχύτερο όταν έχετε πολλά δεδομένα ή αργή σύνδεση στο Διαδίκτυο, επιτρέπει τη λειτουργία εκτός σύνδεσης όπου η σύνδεση στο Διαδίκτυο δεν είναι δυνατή, όπως σε ένα πλοίο ή σε μια περιοχή καταστροφής κατά την ανταπόκριση σε ανθρωπιστική κρίση, και επιτρέπει τη διατήρηση της ιδιωτικότητας των δεδομένων. Ορισμένες συσκευές περιέχουν κώδικα επεξεργασίας που δημιουργείται με εργαλεία cloud και εκτελείται τοπικά για τη συλλογή και την απόκριση σε δεδομένα χωρίς τη χρήση σύνδεσης στο Διαδίκτυο για τη λήψη απόφασης.

Ένα παράδειγμα αυτού είναι μια έξυπνη οικιακή συσκευή όπως το Apple HomePod, το Amazon Alexa ή το Google Home, που ακούει τη φωνή σας χρησιμοποιώντας μοντέλα AI που έχουν εκπαιδευτεί στο cloud, αλλά εκτελούνται τοπικά στη συσκευή. Αυτές οι συσκευές 'ξυπνούν' όταν ακουστεί μια συγκεκριμένη λέξη ή φράση και μόνο τότε στέλνουν την ομιλία σας μέσω του Διαδικτύου για επεξεργασία. Η συσκευή σταματά να στέλνει ομιλία σε ένα κατάλληλο σημείο, όπως όταν ανιχνεύει μια παύση στην ομιλία σας. Ό,τι λέτε πριν ξυπνήσει η συσκευή με τη λέξη αφύπνισης και ό,τι λέτε αφού η συσκευή σταματήσει να ακούει δεν θα σταλεί μέσω του Διαδικτύου στον πάροχο της συσκευής και, επομένως, θα παραμείνει ιδιωτικό.

Σκεφτείτε άλλα σενάρια όπου η ιδιωτικότητα είναι σημαντική, ώστε η επεξεργασία δεδομένων να γίνεται καλύτερα στο edge παρά στο cloud. Υπόδειξη - σκεφτείτε συσκευές IoT με κάμερες ή άλλες συσκευές απεικόνισης.

Ασφάλεια στο IoT

Με οποιαδήποτε σύνδεση στο Διαδίκτυο, η ασφάλεια είναι μια σημαντική παράμετρος. Υπάρχει ένα παλιό αστείο που λέει ότι 'το S στο IoT σημαίνει Ασφάλεια' - δεν υπάρχει 'S' στο IoT, υπονοώντας ότι δεν είναι ασφαλές.

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

💁 Μερικές φορές οι συσκευές IoT και οι συσκευές edge λειτουργούν σε ένα δίκτυο εντελώς απομονωμένο από το Διαδίκτυο για να διατηρήσουν τα δεδομένα ιδιωτικά και ασφαλή. Αυτό είναι γνωστό ως air-gapping.

Βαθύτερη ανάλυση των μικροελεγκτών

Στο προηγούμενο μάθημα, παρουσιάσαμε τους μικροελεγκτές. Ας τους εξετάσουμε τώρα πιο αναλυτικά.

CPU

Η CPU είναι ο 'εγκέφαλος' του μικροελεγκτή. Είναι ο επεξεργαστής που εκτελεί τον κώδικά σας και μπορεί να στέλνει δεδομένα σε και να λαμβάνει δεδομένα από οποιαδήποτε συνδεδεμένη συσκευή. Οι CPU μπορούν να περιέχουν έναν ή περισσότερους πυρήνες - ουσιαστικά έναν ή περισσότερους επεξεργαστές που μπορούν να συνεργαστούν για να εκτελέσουν τον κώδικά σας.

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

Όσο πιο γρήγορος είναι ο κύκλος του ρολογιού, τόσες περισσότερες εντολές μπορούν να επεξεργαστούν ανά δευτερόλεπτο και, επομένως, τόσο πιο γρήγορη είναι η CPU. Οι ταχύτητες των CPU μετρώνται σε Hertz (Hz), μια τυπική μονάδα όπου 1 Hz σημαίνει έναν κύκλο ή χτύπο ρολογιού ανά δευτερόλεπτο.

🎓 Οι ταχύτητες των CPU συχνά δίνονται σε MHz ή GHz. 1MHz είναι 1 εκατομμύριο Hz, 1GHz είναι 1 δισεκατομμύριο Hz.

💁 Οι CPU εκτελούν προγράμματα χρησιμοποιώντας τον κύκλο fetch-decode-execute. Για κάθε χτύπο ρολογιού, η CPU θα ανακτήσει την επόμενη εντολή από τη μνήμη, θα την αποκωδικοποιήσει και στη συνέχεια θα την εκτελέσει, όπως χρησιμοποιώντας μια αριθμητική λογική μονάδα (ALU) για να προσθέσει 2 αριθμούς. Ορισμένες εκτελέσεις θα χρειαστούν πολλούς χτύπους για να ολοκληρωθούν, οπότε ο επόμενος κύκλος θα εκτελεστεί στον επόμενο χτύπο μετά την ολοκλήρωση της εντολής.

Οι κύκλοι fetch-decode-execute που δείχνουν την ανάκτηση μιας εντολής από το πρόγραμμα που είναι αποθηκευμένο στη RAM, την αποκωδικοποίησή της και την εκτέλεσή της σε μια CPU

Οι μικροελεγκτές έχουν πολύ χαμηλότερες ταχύτητες ρολογιού από τους επιτραπέζιους ή φορητούς υπολογιστές ή ακόμα και από τα περισσότερα smartphones. Για παράδειγμα, το Wio Terminal έχει μια CPU που λειτουργεί στα 120MHz ή 120 🎓 Η μνήμη προγράμματος αποθηκεύει τον κώδικά σας και παραμένει όταν δεν υπάρχει ρεύμα. 🎓 Η RAM χρησιμοποιείται για την εκτέλεση του προγράμματός σας και επαναφέρεται όταν δεν υπάρχει τροφοδοσία

Όπως και με την CPU, η μνήμη σε έναν μικροελεγκτή είναι κατά πολύ μικρότερη από αυτήν ενός PC ή Mac. Ένας τυπικός υπολογιστής μπορεί να έχει 8 Gigabytes (GB) RAM, ή 8.000.000.000 bytes, με κάθε byte να έχει αρκετό χώρο για να αποθηκεύσει ένα γράμμα ή έναν αριθμό από 0-255. Ένας μικροελεγκτής θα έχει μόνο Kilobytes (KB) RAM, με ένα kilobyte να είναι 1.000 bytes. Το Wio terminal που αναφέρθηκε παραπάνω έχει 192KB RAM, ή 192.000 bytes - πάνω από 40.000 φορές λιγότερο από έναν μέσο υπολογιστή!

Το παρακάτω διάγραμμα δείχνει τη σχετική διαφορά μεγέθους μεταξύ 192KB και 8GB - η μικρή κουκκίδα στο κέντρο αντιπροσωπεύει τα 192KB.

Σύγκριση μεταξύ 192KB και 8GB - πάνω από 40.000 φορές μεγαλύτερο

Ο χώρος αποθήκευσης προγραμμάτων είναι επίσης μικρότερος από έναν υπολογιστή. Ένας τυπικός υπολογιστής μπορεί να έχει σκληρό δίσκο 500GB για αποθήκευση προγραμμάτων, ενώ ένας μικροελεγκτής μπορεί να έχει μόνο kilobytes ή ίσως λίγα megabytes (MB) αποθηκευτικού χώρου (1MB είναι 1.000KB, ή 1.000.000 bytes). Το Wio terminal έχει 4MB αποθηκευτικού χώρου για προγράμματα.

Κάντε λίγη έρευνα: Πόση RAM και αποθηκευτικό χώρο έχει ο υπολογιστής που χρησιμοποιείτε για να διαβάσετε αυτό; Πώς συγκρίνεται με έναν μικροελεγκτή;

Είσοδος/Έξοδος

Οι μικροελεγκτές χρειάζονται συνδέσεις εισόδου και εξόδου (I/O) για να διαβάζουν δεδομένα από αισθητήρες και να στέλνουν σήματα ελέγχου σε ενεργοποιητές. Συνήθως περιέχουν έναν αριθμό γενικής χρήσης ακίδων εισόδου/εξόδου (GPIO). Αυτές οι ακίδες μπορούν να ρυθμιστούν μέσω λογισμικού ως είσοδος (δηλαδή λαμβάνουν ένα σήμα) ή έξοδος (στέλνουν ένα σήμα).

🧠⬅️ Οι ακίδες εισόδου χρησιμοποιούνται για να διαβάζουν τιμές από αισθητήρες

🧠➡️ Οι ακίδες εξόδου στέλνουν οδηγίες σε ενεργοποιητές

Θα μάθετε περισσότερα για αυτό σε επόμενο μάθημα.

Εργασία

Ερευνήστε το Wio Terminal.

Αν χρησιμοποιείτε το Wio Terminal για αυτά τα μαθήματα, βρείτε τις ακίδες GPIO. Βρείτε την ενότητα Pinout diagram στη σελίδα προϊόντος του Wio Terminal για να μάθετε ποιες ακίδες είναι ποιες. Το Wio Terminal συνοδεύεται από ένα αυτοκόλλητο που μπορείτε να τοποθετήσετε στο πίσω μέρος με αριθμούς ακίδων, οπότε προσθέστε το τώρα αν δεν το έχετε ήδη κάνει.

Φυσικό μέγεθος

Οι μικροελεγκτές είναι συνήθως μικροί σε μέγεθος, με τον μικρότερο, έναν Freescale Kinetis KL03 MCU να είναι αρκετά μικρός ώστε να χωράει στην εσοχή μιας μπάλας γκολφ. Μόνο η CPU σε έναν υπολογιστή μπορεί να έχει μέγεθος 40mm x 40mm, και αυτό δεν περιλαμβάνει τις ψύκτρες και τους ανεμιστήρες που χρειάζονται για να διασφαλίσουν ότι η CPU μπορεί να λειτουργεί για περισσότερα από λίγα δευτερόλεπτα χωρίς υπερθέρμανση, σημαντικά μεγαλύτερη από έναν πλήρη μικροελεγκτή. Το Wio terminal developer kit με μικροελεγκτή, θήκη, οθόνη και μια σειρά από συνδέσεις και εξαρτήματα δεν είναι πολύ μεγαλύτερο από μια γυμνή CPU Intel i9, και σημαντικά μικρότερο από την CPU με ψύκτρα και ανεμιστήρα!

Συσκευή Μέγεθος
Freescale Kinetis KL03 1.6mm x 2mm x 1mm
Wio terminal 72mm x 57mm x 12mm
Intel i9 CPU, Heat sink and fan 136mm x 145mm x 103mm

Πλατφόρμες και λειτουργικά συστήματα

Λόγω της χαμηλής ταχύτητας και του μικρού μεγέθους μνήμης, οι μικροελεγκτές δεν εκτελούν λειτουργικό σύστημα (OS) με την έννοια του desktop. Το λειτουργικό σύστημα που κάνει τον υπολογιστή σας να λειτουργεί (Windows, Linux ή macOS) χρειάζεται πολλή μνήμη και επεξεργαστική ισχύ για να εκτελεί εργασίες που είναι εντελώς περιττές για έναν μικροελεγκτή. Θυμηθείτε ότι οι μικροελεγκτές συνήθως προγραμματίζονται για να εκτελούν μία ή περισσότερες πολύ συγκεκριμένες εργασίες, σε αντίθεση με έναν γενικής χρήσης υπολογιστή όπως ένα PC ή Mac που πρέπει να υποστηρίζει ένα περιβάλλον χρήστη, να παίζει μουσική ή ταινίες, να παρέχει εργαλεία για τη συγγραφή εγγράφων ή κώδικα, να παίζει παιχνίδια ή να περιηγείται στο Διαδίκτυο.

Για να προγραμματίσετε έναν μικροελεγκτή χωρίς OS χρειάζεστε κάποια εργαλεία που σας επιτρέπουν να δημιουργήσετε τον κώδικά σας με τρόπο που ο μικροελεγκτής μπορεί να εκτελέσει, χρησιμοποιώντας APIs που μπορούν να επικοινωνούν με οποιαδήποτε περιφερειακά. Κάθε μικροελεγκτής είναι διαφορετικός, οπότε οι κατασκευαστές συνήθως υποστηρίζουν τυπικές πλατφόρμες που σας επιτρέπουν να ακολουθήσετε μια τυπική 'συνταγή' για να δημιουργήσετε τον κώδικά σας και να τον εκτελέσετε σε οποιονδήποτε μικροελεγκτή που υποστηρίζει αυτήν την πλατφόρμα.

Μπορείτε να προγραμματίσετε μικροελεγκτές χρησιμοποιώντας ένα OS - συχνά αναφερόμενο ως λειτουργικό σύστημα πραγματικού χρόνου (RTOS), καθώς αυτά έχουν σχεδιαστεί για να χειρίζονται την αποστολή δεδομένων προς και από περιφερειακά σε πραγματικό χρόνο. Αυτά τα λειτουργικά συστήματα είναι πολύ ελαφριά και παρέχουν χαρακτηριστικά όπως:

  • Πολυνηματική λειτουργία, που επιτρέπει στον κώδικά σας να εκτελεί περισσότερα από ένα μπλοκ κώδικα ταυτόχρονα, είτε σε πολλούς πυρήνες είτε εναλλάξ σε έναν πυρήνα
  • Δικτύωση για ασφαλή επικοινωνία μέσω του Διαδικτύου
  • Στοιχεία γραφικού περιβάλλοντος χρήστη (GUI) για τη δημιουργία περιβαλλόντων χρήστη (UI) σε συσκευές που διαθέτουν οθόνες.

Διαβάστε για διαφορετικά RTOS: Azure RTOS, FreeRTOS, Zephyr

Arduino

Το λογότυπο του Arduino

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

Οι πλακέτες Arduino προγραμματίζονται σε C ή C++. Η χρήση της C/C++ επιτρέπει στον κώδικά σας να μεταγλωττίζεται πολύ μικρός και να εκτελείται γρήγορα, κάτι που είναι απαραίτητο σε μια περιορισμένη συσκευή όπως ένας μικροελεγκτής. Ο πυρήνας μιας εφαρμογής Arduino αναφέρεται ως sketch και είναι κώδικας C/C++ με 2 συναρτήσεις - setup και loop. Όταν η πλακέτα εκκινείται, ο κώδικας της πλατφόρμας Arduino θα εκτελέσει τη συνάρτηση setup μία φορά και στη συνέχεια θα εκτελέσει τη συνάρτηση loop ξανά και ξανά, εκτελώντας την συνεχώς μέχρι να απενεργοποιηθεί η τροφοδοσία.

Θα γράφατε τον κώδικα αρχικοποίησης στη συνάρτηση setup, όπως η σύνδεση σε WiFi και υπηρεσίες cloud ή η αρχικοποίηση ακίδων για είσοδο και έξοδο. Ο κώδικας της συνάρτησης loop θα περιείχε κώδικα επεξεργασίας, όπως η ανάγνωση από έναν αισθητήρα και η αποστολή της τιμής στο cloud. Συνήθως θα περιλαμβάνατε μια καθυστέρηση σε κάθε βρόχο, για παράδειγμα, αν θέλετε μόνο δεδομένα αισθητήρα να αποστέλλονται κάθε 10 δευτερόλεπτα, θα προσθέτατε μια καθυστέρηση 10 δευτερολέπτων στο τέλος του βρόχου, ώστε ο μικροελεγκτής να κοιμάται, εξοικονομώντας ενέργεια, και στη συνέχεια να εκτελεί ξανά τον βρόχο όταν χρειάζεται 10 δευτερόλεπτα αργότερα.

Ένα sketch Arduino που εκτελεί πρώτα το setup και στη συνέχεια εκτελεί επανειλημμένα το loop

Αυτή η αρχιτεκτονική προγράμματος είναι γνωστή ως event loop ή message loop. Πολλές εφαρμογές χρησιμοποιούν αυτό το μοντέλο και είναι το πρότυπο για τις περισσότερες εφαρμογές desktop που εκτελούνται σε λειτουργικά συστήματα όπως Windows, macOS ή Linux. Ο βρόχος loop ακούει για μηνύματα από στοιχεία περιβάλλοντος χρήστη όπως κουμπιά ή συσκευές όπως το πληκτρολόγιο και ανταποκρίνεται σε αυτά. Μπορείτε να διαβάσετε περισσότερα σε αυτό το άρθρο για το event loop.

Το Arduino παρέχει τυπικές βιβλιοθήκες για την αλληλεπίδραση με μικροελεγκτές και τις ακίδες I/O, με διαφορετικές υλοποιήσεις κάτω από την επιφάνεια για να εκτελούνται σε διαφορετικούς μικροελεγκτές. Για παράδειγμα, η συνάρτηση delay θα σταματήσει το πρόγραμμα για μια δεδομένη χρονική περίοδο, η συνάρτηση digitalRead θα διαβάσει μια τιμή HIGH ή LOW από τη δεδομένη ακίδα, ανεξάρτητα από την πλακέτα στην οποία εκτελείται ο κώδικας. Αυτές οι τυπικές βιβλιοθήκες σημαίνουν ότι ο κώδικας Arduino που γράφτηκε για μια πλακέτα μπορεί να μεταγλωττιστεί ξανά για οποιαδήποτε άλλη πλακέτα Arduino και να εκτελεστεί, υποθέτοντας ότι οι ακίδες είναι οι ίδιες και οι πλακέτες υποστηρίζουν τα ίδια χαρακτηριστικά.

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

Εργασία

Ερευνήστε το Wio Terminal.

Αν χρησιμοποιείτε το Wio Terminal για αυτά τα μαθήματα, ξαναδιαβάστε τον κώδικα που γράψατε στο προηγούμενο μάθημα. Βρείτε τις συναρτήσεις setup και loop. Παρακολουθήστε την σειριακή έξοδο για την επαναλαμβανόμενη κλήση της συνάρτησης loop. Δοκιμάστε να προσθέσετε κώδικα στη συνάρτηση setup για να γράψετε στη σειριακή θύρα και παρατηρήστε ότι αυτός ο κώδικας καλείται μόνο μία φορά κάθε φορά που κάνετε επανεκκίνηση. Δοκιμάστε να επανεκκινήσετε τη συσκευή σας με τον διακόπτη τροφοδοσίας στο πλάι για να δείξετε ότι αυτό καλείται κάθε φορά που η συσκευή επανεκκινείται.

Βαθύτερη ανάλυση στους υπολογιστές μονού πίνακα

Στο προηγούμενο μάθημα, παρουσιάσαμε τους υπολογιστές μονού πίνακα. Ας τους εξετάσουμε τώρα πιο βαθιά.

Raspberry Pi

Το λογότυπο του Raspberry Pi

Το Raspberry Pi Foundation είναι ένας φιλανθρωπικός οργανισμός από το Ηνωμένο Βασίλειο που ιδρύθηκε το 2009 για να προωθήσει τη μελέτη της επιστήμης των υπολογιστών, ειδικά σε σχολικό επίπεδο. Στο πλαίσιο αυτής της αποστολής, ανέπτυξαν έναν υπολογιστή μονού πίνακα, που ονομάζεται Raspberry Pi. Τα Raspberry Pi είναι διαθέσιμα σε 3 παραλλαγές - μια πλήρους μεγέθους έκδοση, το μικρότερο Pi Zero, και μια μονάδα υπολογισμού που μπορεί να ενσωματωθεί στην τελική σας συσκευή IoT.

Ένα Raspberry Pi 4

Η τελευταία έκδοση του πλήρους μεγέθους Raspberry Pi είναι το Raspberry Pi 4B. Αυτό διαθέτει έναν τετραπύρηνο (4 πυρήνες) επεξεργαστή που λειτουργεί στα 1.5GHz, 2, 4 ή 8GB RAM, gigabit ethernet, WiFi, 2 θύρες HDMI που υποστηρίζουν οθόνες 4k, μια θύρα ήχου και σύνθετης εξόδου βίντεο, θύρες USB (2 USB 2.0, 2 USB 3.0), 40 ακίδες GPIO, έναν σύνδεσμο κάμερας για μια μονάδα κάμερας Raspberry Pi, και μια υποδοχή κάρτας SD. Όλα αυτά σε μια πλακέτα που είναι 88mm x 58mm x 19.5mm και τροφοδοτείται από μια τροφοδοσία USB-C 3A. Αυτά ξεκινούν από US$35, πολύ φθηνότερα από έναν υπολογιστή ή Mac.

💁 Υπάρχει επίσης ένα Pi400, ένας υπολογιστής όλα σε ένα με ένα Pi4 ενσωματωμένο σε πληκτρολόγιο.

Ένα Raspberry Pi Zero

Το Pi Zero είναι πολύ μικρότερο, με χαμηλότερη ισχύ. Διαθέτει έναν μονοπύρηνο επεξεργαστή 1GHz, 512MB RAM, WiFi (στο μοντέλο Zero W), μια θύρα HDMI, μια θύρα micro-USB, 40 ακίδες GPIO, έναν σύνδεσμο κάμερας για μια μονάδα κάμερας Raspberry Pi, και μια υποδοχή κάρτας SD. Έχει διαστάσεις 65mm x 30mm x 5mm και καταναλώνει πολύ λίγη ενέργεια. Το Zero κοστίζει US$5, ενώ η έκδοση W με WiFi κοστίζει US$10.

🎓 Οι επεξεργαστές και στα δύο αυτά είναι ARM, σε αντίθεση με τους επεξεργαστές Intel/AMD x86 ή x64 που βρίσκονται στους περισσότερους υπολογιστές και Mac. Αυτοί είναι παρόμοιοι με τους επεξεργαστές που βρίσκονται σε ορισμένους μικροελεγκτές, καθώς και σχεδόν σε όλα τα κινητά τηλέφωνα, το Microsoft Surface X και τους νέους υπολογιστές Mac με Apple Silicon.

Όλες οι παραλλαγές του Raspberry Pi εκτελούν μια έκδοση του Debian Linux που ονομάζεται Raspberry Pi OS. Αυτό είναι διαθέσιμο ως lite έκδοση χωρίς desktop, που είναι ιδανική για 'headless' έργα όπου δεν χρειάζεστε οθόνη, ή μια πλήρη έκδοση με πλήρες περιβάλλον desktop, με πρόγραμμα περιήγησης ιστού, εφαρμογές γραφείου, εργαλεία προγραμματισμού και παιχνίδια. Δεδομένου ότι το OS είναι μια έκδοση του

Χρήση μονοπλακέτων υπολογιστών σε επαγγελματικές αναπτύξεις IoT

Οι μονοπλακέτοι υπολογιστές χρησιμοποιούνται για επαγγελματικές αναπτύξεις IoT, όχι μόνο ως κιτ ανάπτυξης. Μπορούν να προσφέρουν έναν ισχυρό τρόπο ελέγχου του υλικού και εκτέλεσης σύνθετων εργασιών, όπως η εκτέλεση μοντέλων μηχανικής μάθησης. Για παράδειγμα, υπάρχει το Raspberry Pi 4 compute module που παρέχει όλη τη δύναμη ενός Raspberry Pi 4, αλλά σε μια πιο συμπαγή και οικονομική μορφή χωρίς τα περισσότερα από τα θύρα, σχεδιασμένο για εγκατάσταση σε προσαρμοσμένο υλικό.


🚀 Πρόκληση

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

Κουίζ μετά το μάθημα

Κουίζ μετά το μάθημα

Ανασκόπηση & Αυτομελέτη

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

Εργασία

Σύγκριση και αντίθεση μικροελεγκτών και μονοπλακέτων υπολογιστών


Αποποίηση ευθύνης:
Αυτό το έγγραφο έχει μεταφραστεί χρησιμοποιώντας την υπηρεσία αυτόματης μετάφρασης Co-op Translator. Παρόλο που καταβάλλουμε προσπάθειες για ακρίβεια, παρακαλούμε να έχετε υπόψη ότι οι αυτοματοποιημένες μεταφράσεις ενδέχεται να περιέχουν λάθη ή ανακρίβειες. Το πρωτότυπο έγγραφο στη μητρική του γλώσσα θα πρέπει να θεωρείται η αυθεντική πηγή. Για κρίσιμες πληροφορίες, συνιστάται επαγγελματική ανθρώπινη μετάφραση. Δεν φέρουμε ευθύνη για τυχόν παρεξηγήσεις ή εσφαλμένες ερμηνείες που προκύπτουν από τη χρήση αυτής της μετάφρασης.